? Grammatik  Orthographie ?

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Vorlesung Compilertechnik Sommersemester 2008
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Eine dynamische Menge, die diese Operationen unterstützt,
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Frame-Logik Eine Einführung Andreas Glausch.
Prof. Dr. W. Conen 15. November 2004
8. Formale Sprachen und Grammatiken
Es sei SPEC = (, E) eine Spezifikation mit einer
Finale Semantik und beobachtbares Verhalten
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
Kapitel 4 Datenstrukturen
Marco Barz Seminar über Algorithmen SoSe2007
Imperative Programmierung
Syntax der Aussagenlogik
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Java: Objektorientierte Programmierung
Algorithmentheorie 04 –Hashing
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Kapitel 1 Die natürlichen und die ganze Zahlen. Kapitel 1: Die natürlichen und die ganzen Zahlen © Beutelspacher/Zschiegner April 2005 Seite 2 Inhalt.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Fakten, Regeln und Anfragen
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
d.h. für alle  mit () = (s1,s2 ,...,sn,s) gilt: wenn
Beispiele für Ausdrucksalgebren
Eine (Gleichungs-)Spezifikation ist ein Paar SPEC = (, E),
Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,
Gleichungskalkül und Induktion
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Folie 1 Kapitel II. Vom Raumbegriff zu algebraischen Strukturen Neubeginn: Herleitung des Begriffs Vektorraum aus intuitiven Vorstellungen über den Raumbegriff.
§9 Der affine Raum – Teil 2: Geraden
§9 Der affine Raum – Teil 2: Geraden
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Grundkurs Theoretische Informatik, Folie 7.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 7 Gottfried Vossen Kurt-Ulrich Witt.
§24 Affine Koordinatensysteme
Grenzen der Regularität
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
§3 Allgemeine lineare Gleichungssysteme
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Noam CHOMSKY, Sheila GREIBACH
Noam CHOMSKY, Sheila GREIBACH
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik Formale Sprachen 1.2 Grammatiken formaler Sprachen
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Kapitel 4:Die Chomsky Hierarchie
Folie 1 §21 Das Produkt von Matrizen (21.1) Definition: Für eine (m,n)-Matrix A und eine (n,s)-Matrix B ist das (Matrizen-) Produkt AB definiert als (21.2)
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 10 / 1 Kapitel 10 Initialität Eine beliebige gleichungsdefinierbare Klasse.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
? definierende Gleichungen  gültige Gleichungen ?
 Sortigkeit oder Arität
Folie 1 §8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
 Präsentation transkript:

? Grammatik  Orthographie ? Kapitel 5 Syntax und Semantik Die Syntax einer formalen Sprache kann als eine i.a. mehrsortige Algebra angesehen werden: SYN = [(Ls)sS , (f)] SYN wird syntaktische Algebra genannt. Ls - 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 ?

= rein grammatikalische bzw. strukturelle Ebene 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

= Rechtschreibungsebene 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.

Durch die Signatur  der syntaktischen Algebra SYN 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.

Die Bedeutung des Ganzen ist eine Funktion der Bedeutung seiner Teile. Semantik FREGEsches Prinzip: Gottlob Frege (1848-1925) Die Bedeutung des Ganzen ist eine Funktion der Bedeutung seiner Teile. M [ g (t1,t2 ,...,tn) ] =  ( M [t1],M [t2],...,M [tn] )   Bedeutung Teilkonstrukte Bedeutung der Teile von Konstruktion g entsprechende eines Ganzen semantische Zusammensetzungs- funktion

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.

 vermittelt die Semantik! Es ist  =   -1. SYN SEM   semantischer Homomorphismus ABS  vermittelt die Semantik! Es ist  =   -1. -1 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!

 SYN SEM   (a1) = b1 (a2) = b2 (a1) = (a2) = e b1  e  b2  allgemeiner Fall:  SYN SEM   (a1) = b1 (a2) = b2 (a1) = (a2) = e a1  ABS a2  b1  e  b2  für Programmier- sprachen untragbar! Mehrdeutigkeit (e) = b1 und (e) = b2

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) = b1 und (e) = b2 stets gilt: b1= b2 Beispiel: Assoziativität der Verkettung von Anweisungen A1 ; A2 ; . . . ; An

Fortsetzung des 7. Beispiels Kontextfreie Grammatik, syntaktische Algebra, abstrakte Syntax TG 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.

Fortsetzung des 7. Beispiels Als Trägermengen wähle (alle gleich!) T* - Wortmenge über Terminalalphabet und die Operationen fp seien wie oben über (LA)AN definiert, aber nun erweitert auf ganz T*. D.h., zu Regel p  P der Gestalt A  u1A1u2A2...unAnun+1 mit A, Ai  N , uj  T* definiere Operation fp : T*  T*  ...  T*  T* mit fp (x1, x2, ... , xn ) = u1x1u2x2...unxnun+1 . Die sich ergebende Algebra sei mit DG bezeichnet: DG = [(T*)AN , (fp)pP].

Fortsetzung des 7. Beispiels DG = [(T*)AN , (fp)pP]. Von TG in DG existiert der eindeutig bestimmte Homomorphis- mus hD : TG  DG . Er ordnet jedem „Ableitungsbaum“ aus TG eine Zeichenreihe aus T* zu, und zwar einem Ableitungsbaum der Sorte Ai (Wurzel ist Ai) das durch die zugehörige Linksableitung erzeugte Wort aus, d.h. das abgeleitete Wort aus LAi . Als homomorphes Bild hD (TG ) erhalten wir also gerade SYNG . Die „Zeichenreihenerzeugung“ kann also auch als Semantik der durch die Grammatik G festgelegten abstrakten Syntax TG ange- sehen werden!

Fortsetzung des 7. Beispiels Beispiel (vergleiche vorn): T = { +, ), (, a, b } Terminalzeichen rot! Regelnamen Regeln Operationen fp (p) = (w,s) + A  (A+B) f+ (x1, x2) = (x1+x2) (AB, A) a A  a fa = a (A) b B  b fb = b (B) Betrachte aus TG,A : ++abb hD,A (++abb) = f+ (hD,A (+ab), hD,B (b)) = f+ (f+ (hD,A (a), hD,B (b)), fb ) = f+ (f+ (fa, fb), b ) = f+ (f+ (a, b), b ) = f+ ((a+b) , b ) = ((a+b) +b)

Methode der Semantikdefinition oft auch denotationale Semantik genannt 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.

Beispiel zur „algebraischen Semantik“ Vergleiche vorn Beispiel für heterogene Algebra: einfache Programmiersprache SYN = [Ide, Exp, Com; (fp)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; (gp)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“ gp - semantische Operationen Zur Definition der Mengen Ed, Cd und der Funktionen gp werden zunächst Hilfsoperationen und Hilfsbereiche eingeführt:

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:  v1 + v2, falls v1,v2Nz plus: V  V  V mit plus(v1,v2) =   err sonst   v, falls vBool non: V  V mit non(v) =  ! Generell alle Funktionen bzgl. err strikt erweitern!

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', e1, e2  Ed, c, c1, c2  Cd.

Beispiel zur „algebraischen Semantik“ (Forts.) Semantische Operationen gp (pP) g0 :  Ed ( d.h. g0 Ed ) mit g0 (s) = 0 g1 :  Ed ( d.h. g1 Ed ) mit g1 (s) = 1 gtrue :  Ed ( d.h. gtrue Ed ) mit gtrue (s) = T gfalse:  Ed ( d.h. gfalse Ed ) mit gfalse (s) = F gI :  Ed ( d.h. gI Ed ) mit gI(s) = s(I) g : Ed  Ed mit g (e) = e' , wobei e'(s) = non(e(s)) g= : Ed  Ed  Ed mit g= (e1, e2) = e ,  T , falls e1(s) = e2(s) V, wobei e(s) =  F , falls e1(s), e2(s) V, e1(s)  e2(s),  err sonst. konstante Funktionen!    

Beispiel zur „algebraischen Semantik“ (Forts.) g+: Ed  Ed  Ed mit g+ (e1, e2) = e , wobei e(s) = plus(e1(s),e2(s)) g:= : Ide  Ed  Cd mit g:= (I, e) = c , wobei c(s) = s[e(s)  I] Funktionsabänderung an genau einer Stelle gif : Ed  Cd  Cd  Cd mit gif (e, c1, c2) = c ,  c1(s) , falls e(s) = T, wobei c(s) =  c2(s) , falls e(s) = F,  err sonst. g; : Cd  Cd  Cd mit g; (c1, c2) = c , wobei c(s) = c2(c1(s)).

Beispiel zur „algebraischen Semantik“ (Forts.) Damit haben wir SYN = [Ide, Exp, Com; (fp)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; (gp)pP] als semantische Algebra. Der eindeutig bestimmte Homomorphismus h : SYN  SEM mit h = (hI, he, hc), wobei hI = Ide (Identität über Ide) he : Exp  Ed hc : Com  Cd , legt die Semantik der Sprache fest.

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) ) = hc( f; (x := 1, a := (a + x)) ) = hc( f; ( f:= (x , 1), f:= (a, (a + x))) ) = hc( f; ( f:= (x , f1 ), f:= (a, f+(a, x) )) ) = g; ( hc( f:= (x , f1 ) ), hc( f:= (a, f+(a, x) ) ) ) = g; ( g:= ( hI(x), he(f1 ) ), g:= ( hI(a) , he( f+(a, x) )) ) = g; ( g:= ( x, g1), g:= ( a , g+ ( he(a), he(x) ) ) ) = g; ( g:= ( x, g1), g:= ( a , g+ ( he(fa), he(fx ) ) ) ) = g; ( g:= ( x, g1), g:= ( a , g+ ( ga, gx) ) ) = c  Cd

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, g1), g:= ( a , g+ ( ga, gx) ) )](s)   = g;( c1 , c2) (s) = c2 (c1(s)) mit c1(s) = g:= ( x, g1)(s) = s[g1(s)  x] = s[1  x] =df s1, d.h. s1(x) = 1 , s1(a) = n, c(s) = c2(s1) = g:= (a , g+ ( ga, gx))(s1) = s1[ w  a] mit w = g+ ( ga, gx)(s1) = plus(ga(s1),gx(s1)) = plus(s1(a), s1(x)) = plus(n, 1) = n + 1, d.h. c(s) = s1[ w  a] = s1[ n + 1  a] =df s2 , d.h. s2(x) = 1 , s2(a) = n + 1.

b* = wert(--, b) = wertb , d.h. b*(e) = wert(e, b) = wertb(e) für eE Wertberechnung und Substitution Wir betrachten eine beliebige Ausdrucksalgebra E = [(Es)sS , (f)   ] über dem Alphabet X als gegebene syntaktische Algebra, z.B. eine Algebra logischer Ausdrücke. Zu einer vorgegebenen semantischen Algebra A = [(As)sS , (g)   ] und jeder A-Belegung b von X, d.h. bs: Xs  As , 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) = wertb , d.h. b*(e) = wert(e, b) = wertb(e) für eE

Substitution ist ein Spezialfall der Semantik! Nun wählen wir als „semantische Algebra“ wieder die Ausdrucksalgebra E = [(Es)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) = subs , d.h. s*(e) = sub(e, s) = subs(e) für eE Substitution ist ein Spezialfall der Semantik!

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.