100 likes | 320 Views
Prolog. PROgramming LOGic ( programmation en logique ). Introduktion. Prolog är ett logikspråk Utvecklat av Alain Colmerauer, Phillippe Roussel och Robert Kowalski Första kommandotolken 1972 Prolog är ett regelbaserat, deklarativt språk Ett huvudmål var hantering av naturligt språk
E N D
Prolog PROgramming LOGic (programmation en logique)
Introduktion • Prolog är ett logikspråk • Utvecklat av Alain Colmerauer, Phillippe Roussel och Robert Kowalski • Första kommandotolken 1972 • Prolog är ett regelbaserat, deklarativt språk • Ett huvudmål var hantering av naturligt språk • Stöd för GUI Programspråktteori - Mikael Åkesson - 2009
Beskrivning av Prolog (1) • Prologprogram är en samling uttryck • En datatyp: Term • Atom • Nummer • Variabel • Sammansatt term Programspråktteori - Mikael Åkesson - 2009
Beskrivning av Prolog (2) • Typer av uttryck • Fakta • Regler • Frågor ställs till programmet som mål • Kan programmet bevisa mål -> Yes • Iterativa algoritmer görs med rekursion Programspråktteori - Mikael Åkesson - 2009
Utvärdering av Prolog (1) Läslighet • Enkelhet: Prolog har få operatorer • Ortogonalitet: Regelbundet och få datatyper • Kontrollkommandon: Dåligt • Datastrukturer: Få, lätt att göra listor • Syntaxdesign: Beskrivande specialord men inte som folk är vana vid Programspråktteori - Mikael Åkesson - 2009
Utvärdering av Prolog (2) Skrivbarhet • Enkelhet och ortogonalitet: Ja och nja • Stöd för abstraktion: • Uttryck: Ganska enkla dock ovana Programspråktteori - Mikael Åkesson - 2009
Utvärdering av Prolog (3) Pålitlighet • Typkontroll: Finns bara termer • Undantagshantering: Oändlig loop • Alias: Nej • Läslighet och skrivbarhet: Nja Programspråktteori - Mikael Åkesson - 2009
Utvärdering av Prolog (4) • Kostnad • Andra faktorer • Portabilitet: Ibland • Generalisering: Nej • Väl definierat: Ja Programspråktteori - Mikael Åkesson - 2009
Slutsats • Två saker emot Prolog och logikspråk • Oeffektiva jämfört med imperativa språk • Få riktigt bra tillämpningsområden Programspråktteori - Mikael Åkesson - 2009
OO-Prolog • OO-Prolog • Prolog++ • Visual Prolog • P# • Java och Prologbroar utvecklas Programspråktteori - Mikael Åkesson - 2009