Úvodní stránka | Tato stránka v originále

Prolog

Prolog je vedoucí logické programování jazyk. To bylo vytvořeno Alain Colmerauer kolem sedmdesátá léta. To byl pokus dělat programovací jazyk, který umožní vyjádřit logiku místo toho opatrně specifikovat instrukce na počítači.

Prolog je používán v mnoho umělá inteligence programy, ale jeho syntax a sémantika jsou velmi jednoduchý a jasný (původní cíl měl poskytovat nástroj k počítači-lingvisté analfabeta). Jméno prolog je zkratka pro programování v logice.

Prolog je umístěný na počet predikátu (více přesně nejprve-objednávat počet predikátu); nicméně to je omezeno dovolit jediné Horn klauzule. Poprava Prolog program je účinně aplikace teoréma ukazovat se jako nejprve objednávat rozhodnutí. Základní pojmy jsou sjednocení, rekurze ocasu a ústupek.

Tabulka s obsahem
1 datové typy
2 fakty
3 pravidla
4 implementace
5 odkazů

Datové typy

Prolog nezaměstná datové typy v cestě obvyklý v obyčejných programovacích jazycích. My můžeme spíše mluvit o Prolog lexikální elementy instead datových typů.

Atomy

Textové konstanty jsou představeny prostředky k atomům. Atom sekvence sestává z dopisů, počítá a zdůrazňuje, který začne malým písmenem. Obvykle, jestliže non-alfanumerický atom je potřebován, to je obklopené apostrofy (e. g. ' + ' je atom, + je operátor).

Čísla

Nejvíce Prolog implementace se neliší mezi základními a skutečnými čísly.

Proměnné

Proměnné jsou označovány řetězcem sestávat z dopisů, čísla a podtrhnout charaktery, a začínat upper-dopis případu. V Prolog prostředí, proměnná není nádoba, který může být zadal (unlike procedurální programovací jazyky). Jeho chování je blíže ke vzoru, který je zvýšeně specifikovaný sjednocení.

Tak nazvaný anomymní proměnná je psán jak jeden podtrhnout (_).

Podmínky

Podmínky jsou jediná cesta Prolog moci reprezentovat komplexní data. Termín sestává z hlavy, také volal functor (který musí být atom) a parametry (neomezené typy). Množství parametrů, tak nazvaný arity termínu, je significiant. Termín je poznán jeho hlavou a arity, obvykle psaný jak functor / arity.

Seznamy

Seznam není samostatný datový typ, protože to je definováno rekurzivní stavbou (používat termín '. ' / 2):

  1. atom [] je prázdný seznam
  2. jestliže L je seznam a X je element pak termín '. ' (X, L) je seznam. První element je X, který je následovaný obsahem L. Syntaktická zkratka je [X | L].

Pro programátorskou výhodu, seznamy mohou být budovány a deconstructed v paletě cest.

Řetězce

Řetězce jsou obvykle psány jako sled charakterů obklopených citacemi. Oni jsou často vnitřně reprezentoval jako seznamy ASCII kódů.

Fakty

Programovací v Prolog je velmi odlišný od programování v procedurálním jazyce. V Prolog vy dodáváte databázi faktů a pravidla; vy můžete pak vykonáváte dotazy na databázi. Základní jednotka Prolog je predikát, který je definován být pravdivý. Predikát sestává z hlavy a množství argumentů. Například:

kočka (tom).

Tady ' kočka ' je hlava, a ' tom ' je argument. Tady jsou některé dotazy vzorku vy jste mohli se zeptat Prolog interpret založit na tomto faktu:

? - kočka (tom). 
      ano.

? - kočka (X). X = tom; ne.

Predikáty jsou obvykle definované vyjádřit nějaký fakt program ví o světě. Ve většině případů, použití predikátů vyžaduje jistou konvenci. Tak, která verze dva dole by znamenal, že poklepání je otec Sally?

otec (bonmot, hbitý).  
 otec (hbitý, bonmot). 

V obou případech ' otec ' je hlava a ' bonmot ' a ' hbitý ' jsou argumenty. Nicméně v prvním případě, Sally přijde nejprve v seznamu argumentu, a v sekundě, poklepání přijde nejprve (objednávka v argumentových seznamových záležitostech). První případ je příklad definice v Slovesný podřízený objekt objednat, a druhý Slovesný objektový předmět objednat. Protože Prolog nerozumí angličtině, obě verze jsou jemné tak daleko, zatímco to je zaujaté; nicméně to je dobrý programovací styl se držet jedné konvence během psaní jediného programu, tak to vyhýbat se psát něco jako

otec (hbitý, bonmot). 
 otec (jessica, james).

Některé predikáty jsou vestavěny do jazyka, a dovolit Prolog program vykonávat aktivity rutiny (takový jako vstup / výstup, používat grafiku a jinak komunikovat s operačním systémem). Pro příklad, predikát psát moci být užitý na výstup k obrazovce. Tak,

  psát (' ahoj ') 

bude zobrazovat slovo ' ahoj ' na obrazovce.

Pravidla

Druhý druh sdělení v Prolog je pravidla. Příklad pravidla je

lehký (na): - přepínač (na). 

": - " prostředky " jestliže "; toto pravidlo znamená světlo (na) je pravdivý jestliže přepínač (na) je pravdivý. Pravidla mohou také přimět k používání proměnné; proměnné začnou velkými písmeny, zatímco konstanty začnou dopisy malých písmen. Pro příklad,

otec (X, Y): - mateřský (X, Y), muž (Y). 

Toto znamená " jestliže někdo je rodič někdo a on je muž, on je otec ". Ancedent a následující být v obráceném pořadí k tomu normálně nalezený v logice. To je možné umístit rozmanité predikáty v následující, přidal se k souvislosti, pro příklad:

, b, c: - d.

který je jednoduše ekvivalentní ke třem odděleným pravidlům:

: - d.  
 b: - d.  
 c: - d.

Co není povolené jsou pravidla jako:

; b: - c.

to je " jestliže c pak nebo b ". Toto je protože omezení k klauzulím rohu.

Implementace

Odkazy