Presentation laddar. Vänta.

Presentation laddar. Vänta.

2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.

Liknande presentationer


En presentation över ämnet: "2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk."— Presentationens avskrift:

1 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk semantik: inferensregler och korrekthetsbevis

2 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 2 Statisk semantik Semantik = programmens betydelse Statisk semantik = semantiska aspekter som inte direkt har att göra med programmets exekvering  oftast frågor i samband med deklarationer: typkontroller, (icke) deklarerade identifierare, …  innefattar ”icke kontextfri syntax” int i; i = 3.3; // typfel! Typkontroll i Java: procedure p is end q; -- fel namn! Namnupprepning i Ada:

3 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 3 Attributgrammatiker Attributgrammatiker (Knuth 1968) är används ofta för att beskriva statisk semantik men kan t.o.m. användas för att översätta program helt och hållet. Idé: Härledningsträdets noder förses med attribut varje attribut har ett värde (tal, sträng, graf, …) värdet beror på  förälderns och syskonens attributvärden (ärvt attribut) eller  barnens attributvärden (syntetiserat attribut) attributvärden utvärderas rekursivt

4 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 4 Attributgrammatiker (2) Typer av attribut i överblick Syntetiserat  värde beror på barnens attributvärden informationsflöde uppåt Ärvt  värde beror på förälderns och syskonens attributvärden informationsflöde nedåt Inneboende (eng. intrinsic)  syntetiserade attribut på trädens löv som är definierade ”på något annat ställe än i attributgrammatiken”  finns inte i ”rena” attributgrammatiker

5 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 5 Attributgrammatiker – exempel Attribut: syntaktiska regler  assign    var  =  expr   expr  0   expr  1 +  expr  2  expr    integer   expr    real   expr    var  Krav:  expr  0. actual   expr  0. expected ´expected´typen som ett uttryck väntas ha(ärvt) ´actual´typen som ett uttryck faktiskt har(syntetiserat) ´type´variablens typ enligt deklarationen(inneboende)  expr . actual =  var . type  expr . actual = real  expr . actual = int  expr  i. expected =  expr  0. expected där i  {1,2}  expr  0. actual = intom  expr  1. actual   expr  2. actual  int = realannars  expr . expected =  var . type semantiska regler

6 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 6 Dynamisk semantik Dynamisk semantik är den delen av semantiken som är nära relaterad till programexekveringen Det finns många sätt att definiera den dynamiska semantiken för ett programspråk, bl a  operationell semantik  denotationell semantik  axiomatisk semantik

7 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 7 Operationell semantik Definiera en abstrakt maskin med enkla primitiva operationer Definiera olika språkkonstruktioners betydelse genom att använda den abstrakta maskinens operationer Fördel: konkret och intuitivt begriplig Nackdelar  Ej lämplig för att bevisa egenskaper (ex korrekthet)  Måste definiera den abstrakta maskinen otvetydigt  Tenderar att föreslå en viss implementation

8 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 8 Denotationssemantik Syntaktiska konstruktioner avbildas på matematiska objekt m.h.a semantiska funktioner Dessa matematiska objekt är satsernas/uttryckens värde/betydelse, kan behandlas matematiskt Beskriver hur ett abstrakt tillstånd förändras Ett uttrycks värde definieras m.h.a deluttryckens värde Klarar alla sekvensiella p-språkskonstruktioner (men vissa är komplicerade att beskriva!) Kan vara för detaljerad

9 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 9 Axiomatisk semantik Ligger nära programspråket självt Användbar för att bevisa saker om program, men säger bara indirekt något om betydelsen Omständliga bevis, kräver datorstöd Klarar ej komplicerade konstruktioner, t ex sidoeffekter

10 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 10 Axiomatisk semantik Satsernas semantisk innebörd beskrivs mha inferensregler som tillåter att härleda logiska formler på formen { P } S { Q } Om P är sant direkt före att S exekveras så är Q sant direkt efteråt. förhandsvillkor predikatlogisk formel som antas vara sann innan S exekveras satsen som det handlar om efterhandsvillkor predikatlogisk formel som är sann efter att S exekverats

11 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 11 De viktigaste inferensreglerna Q där varje förekomst av x ersätts med E { Q x  E } x  E { Q } Tilldelningsaxiomet { P } S { Q } P  P', { P' } S { Q' }, Q'  Q Konsekvensregeln

12 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 12 De viktigaste inferensreglerna (2) Sekvensregeln { P } S 1; S 2 { Q } { P } S 1 { P' }, { P' } S 2 { Q } Urvalsregeln { P } if B then S 1 else S 2 { Q } { P  B } S 1 { Q }, { P   B } S 2 { Q }

13 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 13 De viktigaste inferensreglerna Loopregeln (endast partiell korrekthet) { I } while B do S end {  B  I } { B  I } S { I } loopinvarianten I är sann såväl före loopen som efter varje exekvering av S, dvs även efter loopen invarianten brukar beskriva förhållandet mellan variablerna som förekommer i S total korrekthet =partiell korrekthet + loopen kommer att avslutas

14 2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 14 Ett korrekthetsbevis { x  0 } a  0; b  0; while b  x do a  a + y; b  b + 1 end { a = x  y } { x  0  a  0 } { x  0  a  b  0 } tilldelningsaxiom (+konsekvensregel)  { b  x  a  b  y }  I { b  x  a – y  b  y }{ b + 1  x  a  (b + 1)  y } { b  x  a  b  y }  B  I { b  x  a  b  y }  I {  (b  x)  b  x  a  b  y }   B  I { b  x  a  b  y }


Ladda ner ppt "2003-11-18Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk."

Liknande presentationer


Google-annonser