Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 1 Syntax und Semantik Die Syntax einer formalen Sprache kann als eine.

Ähnliche Präsentationen


Präsentation zum Thema: "Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 1 Syntax und Semantik Die Syntax einer formalen Sprache kann als eine."—  Präsentation transkript:

1 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 1 Syntax und Semantik Die Syntax einer formalen Sprache kann als eine i.a. mehrsortige Algebra angesehen werden: SYN = [(L s ) s S, (f ) ] SYN wird syntaktische Algebra genannt. L s - Teilsprachen, Menge der syntaktischen Objekte der Sorte s, grammatikalische Einheit, Elemente gleichen Typs f - syntaktische Operationen, bildet aus syntaktischen Objekten neue syntaktische Objekte Vergleiche Beispiele vorn: logische Ausdrücke, arithmetische Terme, Typ-2- Sprachen ~~~~~~~~~~~~ ? Grammatik Orthographie ? Kapitel 5

2 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 2 Zwei Niveaustufen der Syntax Ebene der Sprachstruktur = Grammatik der Sprache Ebene der Rechtschreibung oder Orthographie Beispiel Entwurf einer Programmiersprache Entscheidung über Varianten bedingter Anweisungen zu treffen: Ja-Nein-Verzweigung: eine Bedingung, zwei Anweisungen unvollständige bedingte Anweisung: eine Bedingung, eine Anweisung n-zweigige Fallunterscheidung ( DIJKSTRAsche guarded commands) : beliebige Anzahl Paare Bedingung - Anweisung = rein grammatikalische bzw. strukturelle Ebene

3 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 3 Varianten für Notationen der Ja-Nein-Verzweigung: Cond ::= if Exp then Com else Com fi Cond ::= case Exp true Com false Com Cond ::= Exp Com, Com Cond ::= ( Exp Com Com ) = Rechtschreibungsebene Die üblichen Methoden der Syntaxdefinition von Programmier- sprachen wie BACKUS-NAUR-Form, Syntaxdiagramm, CHOMSKY-Grammatik erlauben es nicht, die strukturelle Ebene unabhängig von der Orthographie zu definieren.

4 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 4 Abstrakte Syntax Vergleiche vorn 7. Beispiel Durch die Signatur der syntaktischen Algebra SYN wird die initiale Termalgebra ( = irgendwie ausgezeichnete variablenfreie Standardtermalgebra = Algebra der Ableitungsbäume ) bestimmt. Diese heißt auch abstrakte Syntax ABS. Sie trägt die Bedeutung der Sprachelemente. Die abstrakte Syntax repräsentiert also die strukturelle Ebene der Syntax. Die orthographische Ebene, die in SYN ausgedrückt wird, ist von erheblicher pragmatischer Bedeutung.

5 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 5 Semantik FREGEsches Prinzip: Gottlob Frege ( ) Die Bedeutung des Ganzen ist eine Funktion der Bedeutung seiner Teile. M [ g (t 1,t 2,...,t n ) ] = ( M [t 1 ], M [t 2 ],..., M [t n ] ) Bedeutung Teilkonstrukte Bedeutung der Teile von Konstruktion g entsprechende eines Ganzen semantische Zusammensetzungs- funktion

6 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 6 Entsprechend den Eigenschaften der Termalgebren (Initialität !) existiert zu jeder beliebigen Algebra gleicher Signatur genau ein Homomorphismus von der abstrakten Syntax in die gegebene Algebra. Kerngedanke der Algebraischen Semantik. Jede Algebra mit derselben Signatur wie die syntaktische Algebra SYN (und die abstrakte Syntax ABS) kann damit als semantische Algebra SEM fungieren. Der durch SEM eindeutig festgelegte Homomorphismus von ABS in SEM heißt semantischer Homomorphismus und vermittelt die Semantik der Sprache. Durch ihn werden den syntaktischen Objekten aus SYN Bedeutungen zugeordnet.

7 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 7 SYN SEM semantischer Homomorphismus ABS vermittelt die Semantik! Es ist = sollte Funktion, d.h. eindeutig sein, damit eindeutig ist. Bei Eindeutigkeit der Sprache ist auch SYN PEANO-Algebra und damit isomorph zu ABS, d.h. -1 auch Homomorphis- mus. Rolle der Rechtschreibung!

8 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 8 SYN SEM (a 1 ) = b 1 (a 2 ) = b 2 (a 1 ) = (a 2 ) = e a 1 ABS a 2 Mehrdeutigkeit (e) = b 1 und (e) = b 2 e b 1 b 2 allgemeiner Fall : für Programmier- sprachen untragbar!

9 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 9 Rolle der Rechtschreibung: Pragmatische Aspekte: Verständlichkeit (für den Menschen) durch Lesbarkeit, Übersichtlichkeit, Anknüpfen an Erfahrungen Sicherung der syntaktischen Eindeutigkeit: geeigneter Einsatz von Klammern, Trennzeichen usw. Semantische Eindeutigkeit: Einzige Ausnahme der Zulassung von Mehrdeutigkeit! Wenn in SEM für (e) = b 1 und (e) = b 2 stets gilt: b 1 = b 2 Beispiel: Assoziativität der Verkettung von Anweisungen A 1 ; A 2 ;... ; A n

10 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 10 Fortsetzung des 7. Beispiels Kontextfreie Grammatik, syntaktische Algebra, abstrakte Syntax T G war die abstrakte Syntax der durch die kontextfreie Grammatik G gegebenen Signatur G, sie ist initial und zugleich die Algebra der Ableitungsbäume. Jede weitere G -Algebra kann als semantische Algebra dienen. Zu dieser Algebra muß dann ein eindeutig bestimmter Homomorphismus in diese existieren. Wir konstruieren nun im folgenden zu gegebener Signatur G eine konkrete G -Algebra und betrachten den zugehörigen semantischen Homomorphismus.

11 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 11 Fortsetzung des 7. Beispiels Als Trägermengen wähle (alle gleich!) T* - Wortmenge über Terminalalphabet und die Operationen f p seien wie oben über (L A ) A N definiert, aber nun erweitert auf ganz T*. D.h., zu Regel p P der Gestalt A u 1 A 1 u 2 A 2...u n A n u n+1 mit A, A i N, u j T* definiere Operation f p : T* T*... T* T* mit f p (x 1, x 2,..., x n ) = u 1 x 1 u 2 x 2...u n x n u n+1. Die sich ergebende Algebra sei mit D G bezeichnet: D G = [(T*) A N, (f p ) p P ].

12 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 12 Fortsetzung des 7. Beispiels D G = [(T*) A N, (f p ) p P ]. Von T G in D G existiert der eindeutig bestimmte Homomorphis- mus h D : T G D G. Er ordnet jedem Ableitungsbaum aus T G eine Zeichenreihe aus T* zu, und zwar einem Ableitungsbaum der Sorte A i ( Wurzel ist A i ) das durch die zugehörige Linksableitung erzeugte Wort aus, d.h. das abgeleitete Wort aus L A i. Als homomorphes Bild h D (T G ) erhalten wir also gerade SYN G. Die Zeichenreihenerzeugung kann also auch als Semantik der durch die Grammatik G festgelegten abstrakten Syntax T G ange- sehen werden!

13 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 13 Fortsetzung des 7. Beispiels Beispiel (vergleiche vorn): T = { +, ), (, a, b } Terminalzeichen rot! Regelnamen Regeln Operationen f p (p) = (w,s) +A (A+B) f + (x 1, x 2 ) = (x 1 +x 2 ) (AB, A) aA a f a = a (A) bB b f b = b (B) Betrachte aus T G,A : ++abb h D,A (++abb) = f + (h D,A (+ab), h D,B (b)) = f + (f + (h D,A (a), h D,B (b)), f b ) = f + (f + (f a, f b ), b ) = f + (f + (a, b), b ) = f + ((a+b), b ) = ((a+b) +b)

14 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 14 Die Algebraische Semantik Methode der Semantikdefinition oft auch denotationale Semantik genannt Durch geeignete Beschreibung der gemeinten semantischen Algebra SEM wird die beabsichtigte Semantik festgelegt. Die sog. denotationale Semantik entwickelt u.a. spezifische Begriffe und Hilfsmittel zur Beschreibung der semantischen Operationen und Bereiche. Durch geeignete Wahl der semantischen Bereiche (vollständige Halbordnungen) wird die Existenz benötigter semantischer Konstruktionen (z.B. Fixpunkte) zur Beherrschung komplizier- terer Programmkonstrukte (z.B. Iterationen) gesichert.

15 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 15 Beispiel zur algebraischen Semantik Vergleiche vorn Beispiel für heterogene Algebra: einfache Programmiersprache SYN = [Ide, Exp, Com; (f p ) p P ] P ist dabei die Menge der Namen, die den Produktionsregeln der definierenden BNF zugeordnet wurden. siehe vorn Wir setzen nun SEM = [Ide, Ed, Cd; (g p ) p P ]. Ide erste Trägermenge in SYN wie in SEM, d. h. die Identifier sollen sich selbst bezeichnen! Ed steht für expression denotations Cd steht für command denotations g p - semantische Operationen Zur Definition der Mengen Ed, Cd und der Funktionen g p werden zunächst Hilfsoperationen und Hilfsbereiche eingeführt:

16 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 16 Beispiel zur algebraischen Semantik (Forts.) Wertemengen: V = Nz Bool, Nz = {0,1,2,...}, Bool = {T, F} Hilfsfunktionen: + - Addition in Nz, - Negation in Bool, auf V erweiterte Funktionen: v 1 + v 2, falls v 1,v 2 Nz plus: V V V mit plus(v 1,v 2 ) = err sonst v, falls v Bool non: V V mit non(v) = err sonst ! Generell alle Funktionen bzgl. err strikt erweitern!

17 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 17 Beispiel zur algebraischen Semantik (Forts.) Es wird festgelegt S = Ide (V {err}) als Zustands- bzw. Belegungsmenge, auch für unbestimmt, kein Wert zugewiesen F = M N Menge aller Funktionen von M in N Semantische Bereiche: Ed = S (V {err}) Ausdrucksbedeutungen Cd = S (S {err}) Anweisungsbedeutungen Für die folgende Definition der semantischen Operationen seien immer s S, I Ide, e, e', e 1, e 2 Ed, c, c 1, c 2 Cd.

18 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 18 Beispiel zur algebraischen Semantik (Forts.) Semantische Operationen g p (p P) g 0 : Ed( d.h. g 0 Ed )mit g 0 (s) = 0 g 1 : Ed( d.h. g 1 Ed )mit g 1 (s) = 1 g true : Ed ( d.h. g true Ed )mitg true (s) = T g false : Ed ( d.h. g false Ed )mitg false (s) = F g I : Ed( d.h. g I Ed )mit g I (s) = s(I) g : Ed Ed mit g (e) = e', wobei e'(s) = non(e(s)) g = : Ed Ed Ed mit g = (e 1, e 2 ) = e, T, falls e 1 (s) = e 2 (s) V, wobei e(s) = F, falls e 1 (s), e 2 (s) V, e 1 (s) e 2 (s), err sonst. konstante Funktionen!

19 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 19 Beispiel zur algebraischen Semantik (Forts.) g + : Ed Ed Ed mit g + (e 1, e 2 ) = e, wobei e(s) = plus(e 1 (s),e 2 (s)) g := : Ide Ed Cd mit g := (I, e) = c, wobei c(s) = s[e(s) I] Funktionsabänderung an genau einer Stelle g if : Ed Cd Cd Cd mit g if (e, c 1, c 2 ) = c, c 1 (s), falls e(s) = T, wobei c(s) = c 2 (s), falls e(s) = F, err sonst. g ; : Cd Cd Cd mit g ; (c 1, c 2 ) = c, wobei c(s) = c 2 (c 1 (s)).

20 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 20 Beispiel zur algebraischen Semantik (Forts.) Damit haben wir SYN = [Ide, Exp, Com; (f p ) p P ] als syntaktische Algebra. Sie ergibt sich mit der allgemeinen Methode der Zuordnung der syntaktischen Algebra zur definierenden kontext- freien Grammatik. Wir erkennen, daß SYN wegen der syntaktischen Eindeutigkeit der Sprache selbst PEANO-Algebra ist. Und wir haben nun SEM = [Ide, Ed, Cd; (g p ) p P ] als semantische Algebra. Der eindeutig bestimmte Homomorphismus h : SYN SEM mit h = (h I, h e, h c ), wobei h I = Ide (Identität über Ide) h e : Exp Ed h c : Com Cd, legt die Semantik der Sprache fest.

21 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 21 Beispiel zur algebraischen Semantik (Forts.) Beispiel zur Berechnung der Semantik: Syntax grün, Semantik blau Programm x := 1 ; a := (a + x) ( a, x Ide vorausgesetzt) Wir wenden den Homomorphismus h : SYN SEM an: h( x := 1 ; a := (a + x) ) = h c ( f ; (x := 1, a := (a + x)) ) = h c ( f ; ( f := (x, 1), f := (a, (a + x))) ) = h c ( f ; ( f := (x, f 1 ), f := (a, f + (a, x) )) ) = g ; ( h c ( f := (x, f 1 ) ), h c ( f := (a, f + (a, x) ) ) ) = g ; ( g := ( h I (x), h e (f 1 ) ), g := ( h I (a), h e ( f + (a, x) )) ) = g ; ( g := ( x, g 1 ), g := ( a, g + ( h e (a), h e (x) ) ) ) = g ; ( g := ( x, g 1 ), g := ( a, g + ( h e (f a ), h e (f x ) ) ) ) = g ; ( g := ( x, g 1 ), g := ( a, g + ( g a, g x ) ) ) = c Cd

22 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 22 Beispiel zur algebraischen Semantik (Forts.) Die Bedeutung des gegebenen Programms ist also die erhaltene Belegungsänderungsfunktion c aus Cd. Wegen Cd = S (S {err}) kann man die Wirkung auf eine gegebene Belegung s ausrechnen. Z.B. sei s(x) = 0, s(a) = n. c(s) = [g ; ( g := ( x, g 1 ), g := ( a, g + ( g a, g x ) ) )](s) = g ; ( c 1, c 2 ) (s) = c 2 (c 1 (s)) mit c 1 (s) = g := ( x, g 1 )(s) = s[g 1 (s) x] = s[1 x] = df s 1, d.h. s 1 (x) = 1, s 1 (a) = n, c(s) = c 2 (s 1 ) = g := (a, g + ( g a, g x ))(s 1 ) = s 1 [ w a] mit w = g + ( g a, g x )(s 1 ) = plus(g a (s 1 ),g x (s 1 )) = plus(s 1 (a), s 1 (x)) = plus(n, 1) = n + 1, d.h. c(s) = s 1 [ w a] = s 1 [ n + 1 a] = df s 2, d.h. s 2 (x) = 1, s 2 (a) = n + 1.

23 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 23 Wertberechnung und Substitution Wir betrachten eine beliebige Ausdrucksalgebra E = [(E s ) s S, (f ) ] über dem Alphabet X als gegebene syntaktische Algebra, z.B. eine Algebra logischer Ausdrücke. Zu einer vorgegebenen semantischen Algebra A = [(A s ) s S, (g ) ] und jeder A -Belegung b von X, d.h. b s : X s A s, existiert nach dem Fortsetzungssatz eindeutig ein Homomorphismus b*, der b fortsetzt. b stellt eine Belegung der Variablen von X mit Werten aus A dar, b* damit die Auswertung der Ausdrücke in dem semanti- schen Bereich A bei der Belegung b : semantischer Homomorphismus b* = wert(--, b) = wert b, d.h. b*(e) = wert(e, b) = wert b (e) für e E

24 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 24 Nun wählen wir als semantische Algebra wieder die Ausdrucksalgebra E = [(E s ) s S, (f ) ] selber. Damit haben wir einen Spezialfall: Jede E -Belegung s von X, s : X E, ordnet den Variablen sortenrein Ausdrücke zu, stellt damit also eine sog. simultane Einsetzung von Ausdrücken für Variablen dar, die Auswertung der Ausdrücke bei einer solchen Einsetzung ist durch deren homomorphe Fortsetzung s* : E E gegeben! s* beschreibt die Wirkung der Einsetzung s auf Ausdrücke und heißt deshalb Substitutionsendomorphismus oder nur kurz Substitution. Substitutionsendomorphismus s* = sub(--, s) = sub s, d.h. s*(e) = sub(e, s) = sub s (e) für e E Substitution ist ein Spezialfall der Semantik!

25 Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 25 Wertänderung bei Substitution: E = [E, F] sei eine -Ausdrucksalgebra über X und A = [A, G] eine beliebige -Algebra. b : X A sei eine A -Belegung von X und s : X E bezeichne eine Einsetzung. Ist dann b' : X A die wie folgt durch die Einsetzung s festgelegte A -Belegung mit b'(x) = wert(s(x), b) für alle x X, so gilt für alle e E: wert(sub(e, s), b) = wert(e, b'). Beweis: Nach Voraussetzung ist b' = b* s. Außerdem ist b* s* Homomorphismus von E in A und es gilt (b* s*)| X = b* s*| X = b* s = b'. Wegen der Eindeutigkeit der homomorphen Fortsetzung von b' ist damit b'* = b* s*, was behauptet wurde.


Herunterladen ppt "Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 5 / 1 Syntax und Semantik Die Syntax einer formalen Sprache kann als eine."

Ähnliche Präsentationen


Google-Anzeigen