мови програмування, на відміну від процедурних, не визначають послідовність дій явно, а фокусуються на описі того, що потрібно отримати (логічне програмування, декларативні мови) або як це зробити (функціональне програмування) через вбудовані механізми мови.