Prolog ( Programmering i Logic ) är en unik programmeringsspråk . Den utvecklades i Frankrike av forskare som var intresserade av automatisk naturligt språk översättning . Det var fulländat i Skottland av forskare som var intresserade av automatiska bevisverktyg . Det kom till världens uppmärksamhet när japanerna valde det som bas språk för sin " femte generationens " artificiell intelligens ( AI ) -projektet . Det finns många goda skäl att använda Prolog . Använda Prolog
En av de bästa skäl att använda Prolog är att du inte behöver tala om för datorn hur man löser ett problem --- du bara måste ge datorn reglerna involverade i att lösa problem. Prolog program består av en noga ordnad uppsättning av regler som ser ut så här : Om X och Y och Z därefter W. Denna uppsättning regler kan vara grammatiska regler ( om du arbetar på naturliga språk ) eller regler om matematik ( om du arbetar på automatiska bevisverktyg ) eller regler om någon domän av intresse . Reglerna måste ha denna form : " Om ( valfritt antal föregångare --- inklusive noll föregångare ) sedan ( slutsats ) . " Föregångarna måste anslutas till " och " tillsammans . När reglerna är på plats kan du ställa en fråga och programmet kommer att svara " ja ", " nej " eller " vet inte. "
Kvantifiering
En annan anledning till att använda Prolog , är att det är väldigt lätt att uttrycka saker i Prolog som är svår att uttrycka i andra språk . Det är lätt att uttrycka fakta i Prolog , men det är också lätt att uttrycka komplexa relationer eftersom Prolog använder kvantifiering logik i stället för enklare logik som används av andra språk . Kvantifiering betyder bara att en variabel kan ha attribut --- med andra ord , är det inte bara " Om A och B sedan C " det kan också vara " Om A ( a , b , c ) och B ( m , n ) sedan C ( a , b , n ) " där a, b , c , m och n är attribut av A , B och C. till exempel : Om Between ( x , y , z ) och Mellan ( x , k , y ) då mellan ( x , k , z ) " skulle vara svårt att uttrycka på något annat språk --- det skulle säkert ta mer än en rad i något annat språk .
enhetliga
orsaken till att många människor väljer Prolog är att det automatiskt kommer att söka efter ett svar . Detta kan göras på andra språk , men det är inte automatisk och skulle innebära hundratals eller tusentals rader kod . Prolog verkligen får sin ström från logiska verktyg som kvantifiering och enande . Unification betyder bara att två saker inte behöver vara lika för att matcha så länge de kan göras lika genom att använda en lista med substitutioner . exempelvis är P ( j , g ) inte är lika till P ( k , g ) men de kan göras lika if ( j = k ) är på substitut listan . Unification gör det enkelt att söka efter något eftersom när Prolog svarar " ja " eller " nej " kommer det också tillbaka substitution listan som behövs för att få saker att fungera . om exempelvis det faktum Hund ( rik , benji ) finns i din databas och du ställer frågan " Dog ( rik , x ) " . Prolog kommer tillbaka " ja " och substitution listan ( x = benji ) .