Datorstödd inlärning av grammatik och språkteori - Stp
Datorstödd inlärning av grammatik och språkteori - Stp
Datorstödd inlärning av grammatik och språkteori - Stp
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2 Grammatikmodellen<br />
I det här kapitlet kommer jag att ge en beskrivning <strong>av</strong><br />
<strong>grammatik</strong>modellen <strong>och</strong> dess byggstenar: objektorientering,<br />
dependens<strong>grammatik</strong> <strong>och</strong> unifiering. Låt mig först presentera<br />
<strong>grammatik</strong>modellens byggstenar, sedan <strong>grammatik</strong>modellen.<br />
2.1 Objektorientering<br />
Objektorienterad programmering är en metodik för<br />
datorprogrammering <strong>och</strong> systemutveckling där ett program betraktas som<br />
en modell <strong>av</strong> en verklig eller imaginär fysisk värld <strong>av</strong> objekt.<br />
Objektorientering har fått stor användning för grafiska arbetsstationer<br />
<strong>och</strong> persondatorer där det är naturligt att beskriva det som syns på<br />
skärmen som objekt. Simula, som publicerades 1973 <strong>och</strong> som fick stor<br />
spridning inom Norden, var det första programspråk som rymde<br />
objektorienterade begrepp. Termen objektorientering kom dock först<br />
kring 1980 med programspråket Smalltalk. Sedan dess har<br />
objektorienterade programspråk ökat i popularitet <strong>och</strong> antal (NE, 1994).<br />
Exempel på moderna objektorienterade programspråk är C++ <strong>och</strong><br />
Prolog++ i vilka <strong>grammatik</strong>modellen är skriven.<br />
2.1.1 Centrala begrepp<br />
Centrala begrepp i objektorienterad programmering är: klass, objekt,<br />
instans, metod, nedärvning, överskrivning samt inkapsling.<br />
En klass är en abstrakt datatyp som kan ses som en beskrivning <strong>av</strong> (en<br />
mall för) konkreta objekt, s.k. instanser <strong>av</strong> klassen. Klasserna innehåller<br />
en beskrivning <strong>av</strong> vilka data (attribut) <strong>och</strong> vilka metoder instanserna skall<br />
ha. En metod hos ett objekt är en procedur/funktion, som endast opererar<br />
på objektets egna data.<br />
Klasserna bildar en hierarki genom att varje ny klass definieras som en<br />
underklass till noll, en eller flera tidigare definierade klasser. Utöver sina<br />
egna attribut <strong>och</strong> metoder ärver en klass alla attribut <strong>och</strong> metoder från<br />
sina överordnade klasser vilka i sin tur har ärvt alla attribut <strong>och</strong> metoder<br />
från sina överordnade klasser... Detta kallas för nedärvning. En instans <strong>av</strong><br />
en klass får klassens egna <strong>och</strong> alla dess nedärvda egenskaper.<br />
Om klassen A har en metod, vars namn är M, <strong>och</strong> B är en underordnad<br />
klass till A, medför arvsmekanismen att B får en metod vars namn är M.<br />
Om inget annat anges är det metoden som är definierad i A som 'knyts'<br />
till namnet M. Det finns en möjlighet att definiera om (specialisera) M i<br />
B. Detta kallas för att överskriva M i B. Om C i sin tur är en<br />
3