Prolog ( Programmering i Logic ) utvecklades i Frankrike för att skapa naturliga översättare . Det var perfekt i Skottland för att skriva automatiska bevisverktyg för matematik och logik . Det kom till internationell uppmärksamhet när den valdes för den japanska " femte generationens " projektet . Prolog program består av en noga ordnad lista av regler (skrivna som horn klausuler ) . Användaren ställer en fråga och svaren program - i fråga om reglerna . Det är ett anmärkningsvärt bra paradigm . The Standard Horn klausuler
Horn klausuler uppfanns 1951 av den amerikanske matematikern Alfred Horn . I hans ord , är ett horn klausul " en disjunktion av literaler som har högst en positiv bokstavliga . " En typisk horn klausul ser ut så här : ( ej A ) eller ( ej B ) eller C. Den positiva bokstavliga är C , både A och B är " negativa". Om hornet klausulen har exakt en positiv bokstavlig - som Prolog horn klausuler gör - det kallas en bestämd horn klausul . Horn klausuler skrivs vanligen i en förenklad men motsvarande format . Den disjunktiva uttalande ( ej A ) eller ( ej B ) eller C är logiskt ekvivalent med uttalandet ( A och B ) antyder C. Detta förenklas till : A , B - : C ( där " - : " representerar implikationen pilen). Den enklaste hornet klausulen är en enda positiv bokstavlig (i vilket det inte finns någon pil ) - detta är samma för båda horn klausuler och Prolog
De Prolog Horn Clauses
< . p> Prolog reglerna ser ut som horn klausuler , förutom pilen pekar åt andra hållet . Grammatiken regeln att en mening består av en nominalfras och en verbfras skrivs S : - NP , VP . Den uppsättning regler även skulle innehålla uttalande att ett substantiv frasen består av en artikel och ett substantiv , skriven NP : - A , N. Om det finns en annan regel som säger att en nominalfras är ett substantiv i plural , kan det skrivas NP : - PN . När alla regler är på plats , kan användaren skicka ett " straff " till programmet och programmet kommer att försöka matcha den " meningen " med reglerna . Prolog arbetar baklänges genom reglerna - om frågan matchar slutsats ( positiv bokstavlig ) i regel föregångarna ( negativa literals ) blir de nya frågorna . Om alla frågor så småningom matcha upp med fakta , är det " meningen " en giltig mening . Detta matchningsprocessen fungerar för matematik , logik och andra regel - baserade system, samt det fungerar för grammatik .
The Cut klausul
p Det finns tre typer horn klausuler som används i Prolog : den ( ingen pil ) konstaterande av faktum , regeln ( med en pil , en positiv bokstavliga och minst en negativ bokstavlig ) och snittet . Cut klausuler innehåller symbolen "! " symbol. När Prolog tolken ser snittet symbolen ( uttalas " bang " ) , tas det övriga regler som har samma positiva bokstavlig som den regel som innehåller Bang. Detta kan ha flera effekter på programmen - det kan representera vissa negativa resultat , kan den undvika eller hantera smidigt med misslyckanden , eller det kan helt enkelt eliminera en del av sökningen utrymme och påskynda program