dbpedia-owl:abstract
|
- Logické programování je v širším významu použití matematické logiky jako prostředku pro programování. Jeho počátky můžeme vystopovat až k návrhu Johna McCarthyho advice taker (rádce) [1958]. V tomto návrhu slouží logika pro čistě deklarativní reprezentaci jazyka a dokazovač vět (theorem-prover) nebo generátor modelů (model-generator) se používá jako řešitel problémů (problem-solver). Řešení problému se tak dělí mezi programátora (ručí za správnost programu vyjádřené v logické formě) a dokazovač vět nebo generátor modelů (odpovídá za efektivní řešení problému).Častěji se však logické programování chápe v užším smyslu, kdy se logika používá na deklarativní i procedurální reprezentaci jazyka. Vychází z faktu, že zpětně usuzující dokazovač vět (backwards reasoning theorem-prover) použitý na deklarativní větu ve tvaru implikace:B1 a … a Bn implies Hzachází s touto implikací jako s cíl redukující (goal-reduction) procedurou.ukaž/vyřeš H, ukaž/vyřeš B1 a … a Bn.Programátor neručí pouze za správnost programu, ale i za jeho efektivitu. Často je pro dosažení efektivity nezbytné, aby se programátor seznámil se způsobem, jakým dokazovač vět řeší problém a uměl jej využívat. Tím, že logické programovaní používá program k řízení chování vykonavatele programu (program executor) se podobá tradičnímu imperativnímu programování. Od imperativních programů s pouze procedurální interpretací se však logické programy liší existencí deklarativní logické interpretace, která pomáhá zajistit jejich korektnost. Díky tomu, že jsou tyto programy deklarativní (tedy deklarují, co je vstupem a výstupem, a nezabývají se tím, jak výpočet probíhá), jsou na mnohem vyšší konceptuální úrovni než čistě imperativní programy, a jejich vykonavatelé, kteří jsou vlastně dokazovači vět, operují na konceptuálně vyšší úrovni než běžné překladače a interprety.
|