Deklaratiivista ohjelmointia

Deklaratiivinen ohjelmointi  on ohjelmointiparadigma , jossa määritellään ongelman ratkaisun määrittely eli kuvataan odotettu tulos, ei tapa saada se. Deklaratiivisen vastakohta on pakottava ohjelmointi , jossa vaaditaan jollakin yksityiskohtaisella tasolla kuvaus vaiheiden sarjasta ongelman ratkaisemiseksi. HTML ja SQL mainitaan yleisesti esimerkkeinä deklaratiivisista kielistä .

Deklaratiiviset ohjelmat eivät käytä tilan käsitettä, etenkään ne eivät sisällä muuttujia ja osoitusoperaattoreita , viitteellinen läpinäkyvyys tarjotaan . Lähin asia "puhtaasti deklaratiivista" ohjelmointia varten on suoritettavien spesifikaatioiden kirjoittaminen . Tässä tapauksessa ohjelma on muodollinen teoria ja sen suoritus on samalla automaattinen todistus tästä teoriasta.[ selventää ] ( Curry-Howard -kirjeenvaihto ) ja pakottavalle ohjelmoinnille ominaiset kehitysprosessin komponentit ( suunnittelu , uudelleenmuodostus , virheenkorjaus ja muut) jätetään tässä tapauksessa pois: ohjelma suunnittelee ja todistaa itsensä[ selventää ] .

Deklaratiiviseen ohjelmointiin kuuluu usein myös toiminnallista ja loogista ohjelmointia . Huolimatta siitä, että tällaisten kielten ohjelmat sisältävät usein algoritmisia komponentteja, niissä ei myöskään ole arkkitehtuuria pakottavassa merkityksessä (jotain erillään koodauksesta): ohjelmakaavio on suoraan osa suoritettavaa koodia [1] .

Kielisuuntautunut ohjelmointi pyrkii lisäämään deklaratiivisuuden tasoa .

"Puhtaasti deklaratiiviset" tietokonekielet ovat usein Turingin  epätäydellisiä, koska teoriassa ei aina ole mahdollista luoda suoritettavaa koodia deklaratiivisesta kuvauksesta. Tämä johtaa toisinaan kiistoihin termin "deklaratiivinen ohjelmointi" oikeellisuudesta (vähemmän kiistanalainen on "deklaratiivinen ratkaisun kuvaus" tai vastaavasti "ongelman deklaratiivinen kuvaus").

Muistiinpanot

  1. Simon Peyton Jonesin haastattelu . Haettu 9. tammikuuta 2016. Arkistoitu alkuperäisestä 12. tammikuuta 2016.

Kirjallisuus

Linkit