A deklaratív programozás egy olyan programozási paradigma , amelyben egy probléma megoldásának specifikációját adják meg, vagyis a várt eredményt írják le, nem pedig annak megszerzésének módját. A deklaratív ellentéte az imperatív programozás , amelyben a részletek egyik vagy másik szintjén szükség van a probléma megoldásához szükséges lépések sorrendjének leírására. A HTML -t és az SQL -t általában a deklaratív nyelvek példájaként említik .
A deklaratív programok nem használják az állapot fogalmát, különösen nem tartalmaznak változókat és hozzárendelési operátorokat , a hivatkozási átláthatóság biztosított . A "pusztán deklaratív" programozáshoz legközelebb álló dolog a végrehajtható specifikációk írása . Ebben az esetben a program egy formális elmélet , és a végrehajtása egyben ennek az elméletnek az automatikus bizonyítása is.[ pontosítás ] ( Curry-Howard levelezés ), és az imperatív programozásra jellemző fejlesztési folyamat komponensei ( tervezés , újrafeldolgozás , hibakeresés és egyebek ) ebben az esetben ki vannak zárva: a program megtervezi és bizonyítja magát[ pontosítás ] .
A deklaratív programozás gyakran magában foglalja a funkcionális és logikai programozást is . Annak ellenére, hogy az ilyen nyelvű programok gyakran tartalmaznak algoritmikus összetevőket, az imperatív értelemben vett architektúra (mint a kódolástól különálló dolog) szintén hiányzik belőlük: a programséma közvetlenül a végrehajtható kód része [1] .
A nyelvorientált programozás célja a deklarativitás szintjének növelése .
A "tisztán deklaratív" számítógépes nyelvek gyakran Turing -hiányosak, mivel elméletileg nem mindig lehet végrehajtható kódot generálni deklaratív leírásból. Ez néha vitákhoz vezet a "deklaratív programozás" kifejezés helyességével kapcsolatban (kevésbé ellentmondásos a "megoldás deklaratív leírása" vagy ezzel egyenértékű a "probléma deklaratív leírása").