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ů |
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ů.
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).
Nejvíce Prolog implementace se neliší mezi základními a skutečnými čísly.
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 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.
Seznam není samostatný datový typ, protože to je definováno rekurzivní stavbou (používat termín '. ' / 2):
- atom [] je prázdný seznam
- 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].
- Výčet elementu: [abc, 1, f (x), Y, g (, rst )]
- Prepending jediný element: [abc | L1]
- Prepending rozmanité elementy: [abc, 1, f (x) | L2]
- Expanze termínu: '. ' (abc, '. ' (1, '. ' (f (x), '. ' (Y, '. ' (g (, rst), [])))))
Ř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ů.
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.
- Turbo Prolog Borland, nyní nepodložený
- Otevřený Prolog (http: / / www. cs. tcd. ie / otevřený-prolog /)
- Ahoj Prolog (http: / / www. svorka. dia. fi. upm. es / software / ahoj)
- GNU Prolog (http: / / gnu-prolog. inria. fr)
- Yap Prolog (http: / / www. ncc. nahoru. pt / ~ vsc / Yap)
- SWI Prolog (http: / / www. swi-prolog. org)
- Vizuální Prolog (http: / / www. vizuální-prolog. com)
- SICStus Prolog (http: / / www. sics. se / sicstus /)
- Amzi! Prolog (http: / / www. amzi. com /)
Odkazy
- Krátký intro - se učit jednotku s exercices
- Další úplný kurs
- Runnable příklady
- Prolog interpret, který vběhne prohlížeč
- Prolog: ISO standard
- Vizuální Prolog: Evoluce Turbo Prolog rozvinutý Prolog centrum vývoje u Dánsko.