32
Institute for Software Technology SWP: Zusammenfassung Bernhard Aichernig und Alexander Felfernig Institut für Softwaretechnologie [email protected]

SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

SWP: Zusammenfassung

Bernhard Aichernig und Alexander Felfernig

Institut für Softwaretechnologie [email protected]

Page 2: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

SYNTAX

2

Page 3: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Syntax

§  Struktur einer Sprache §  Werkzeug zur Beschreibung aller

möglichen Sätze: Grammatik §  Tupel (VN,VT,S,Φ)

§  Einsatz: §  Überprüfung von Sätzen §  Ableitung möglicher Sätze der Sprache

3

Page 4: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Sprachhierarchie

§  Unrestricted Grammars G Keine Restriktionen bezgl. α→β

§  Context-sensitive Grammars Gsens |α| ≤ |β|

§  Context-free Grammars Gfree |α| ≤ |β| , α ∈ VN

§  Regular Grammars Greg |α| ≤ |β| , α ∈ VN

β hat Form aA oder a, mit a ∈ VT∪{ε}, A ∈ VN

4

Page 5: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Compiler-Zyklus

5

Lexikalische Analyse

Syntax- Analyse

Code- Generierung

Programm (Ausgangssprache)

Tokens (Keywords, Identifier, Konstante, …)

Parse Tree

Programm (Zielsprache)

i.d.R. reguläre Grammatiken (Greg)

i.d.R. kontextfreie Grammatiken (bspw. LL(1))

Page 6: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Parser §  Parsing durch Breitensuche

§  Anwendung der Ableitung bis das gesuchte Wort gefunden wird

§  hohe Zeit- und Speicherkomplexität §  terminiert nicht, wenn Satz ∉ Grammatik §  Überprüfung „label size“ und „redundancy“

§  Top-Down Parsing §  LL(1)-Grammatiken §  schnell, ausdrucksstark, einfach

6

Page 7: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

LL(1)-Parsing

§  Recursive Descend Parser (Alt. 1) §  Tabellengestützes Parsing (Alt. 2)

§  LL(1)-Tabelle erzeugen §  First-Mengen (FIRST(α))

§  Erste Terminale in Ableitungen von α

§  Follow-Mengen (FOLLOW(A)) §  Terminale, die direkt rechts neben A in einer

Ableitung stehen können

7

Page 8: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology 8

LL(1) Parser §  Tabellengestützter Parser §  Idee: Stack speichert Stand der Ableitung,

oberstes Element=$ à Satz erkannt.

Satz a a b $ $ S

Stack (Stand der Ableitung)

Tabelle

S→aA

Page 9: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology 9

Page 10: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

SEMANTIK

10

Page 11: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Semantik

§  Bedeutung von Sprachen §  Semantikfunktionen ordnen den

syntaktischen Konstrukten einer Sprache eine Semantik zu

§  Environments beinhalten Abbildungen §  Sprachen sind meist über Datentypen

(auf semantischer Ebene) definiert

11

Page 12: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Datentypen

§  Ein Datentyp ist ein Tupel ℜ = (A, f1,..,fn, p1,..,pm, c1,..,ck)

§  A: Menge §  fi: Funktionen von Aki → Ali

(für bestimmte ki und li) §  pi: Prädikate Aki → { T,F }

(für bestimmtes ki) §  ci: Konstanten (ausgewählte Elemente von A)

12

Page 13: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Sprachen über Datentypen

§  Datentypen sind Beschreibungen auf Semantikebene

§  Verbindung mit Syntaxebene §  über Symbolmengen SYM bestehend aus:

§  Individuen-Variablen Symbole (IVS) §  Funktionssymbole §  Prädikatensymbole §  Konstantensymbole §  Sondersymbole (if, then, …) und (, ) bzw. ,

13

Page 14: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

FUNKTIONALE PROGRAMME

14

Page 15: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Sprachen: T §  Sprache der Terme über beliebige

Datentypen §  ENV = Menge aller Abbildungen IVS→A §  Induktive Definition der Syntax §  Semantikfunktion Iτ: ENV × T → A

§  Iτ(ω,c) = c0 für c∈Γ (Konstanten) und ω∈ENV §  Iτ(ω,v) = ω(v) für v∈IVS §  Iτ(ω,f(t1,..,tn)) = f0(Iτ(ω,t1),..,Iτ(ω,tn)) für ti∈T

15

Page 16: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Sprachen: COND

§  Erweiterung von T um Konditionale §  Syntaktische Erweiterung §  Erweiterung der Semantik:

§  Sei po das Prädikat zu Prädikatensymbol p: §  Falls po(Iγ(ω,u1),..,Iγ(ω,un))=T, dann

Iγ(ω,if p(u1,..,un) then t1 else t2) = Iγ(ω,t1 ) §  Falls po(Iγ(ω,u1),..,Iγ(ω,un))=F, dann

Iγ(ω,if p(u1,..,un) then t1 else t2) = Iγ(ω, t2 )

16

Page 17: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Sprachen: EXP

§  Erweiterung um programmdefinierte Funktionen und iterative Konstrukte

§  FVS .. Menge der Funktionsvariablen §  zum Zugriff auf die Funktionsdefinition §  δ: FVS → EXP wobei δ∈FENV §  δX .. Body der Funktion X §  Variablen x1,..,xn im Body: formale

Parameter (keine Funktionsdeklaration)

17

Page 18: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Funktionsaufrufe (Semantik)

§  Interpretation von F(t1,..,tn) §  Call-by-Value

Definiere neues ω‘ als ω‘(xi)=I(δ,ω,ti) für i=1..n wobei x1,..,xn die formalen Parameter in δF sind. I(δ,ω, F(t1,..,tn)) = I(δ, ω‘, δF)

§  Call-by-Name I(δ,ω, F(t1,..,tn)) = I(δ,ω, δF[x1|t1,..,xn|tn]) (Die Ausdrücke ti werden statt xi in den Body eingesetzt)

18

Page 19: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Kodierungen §  Im Grunde kann jeder Datentyp mit

abzählbarem Bereich in L repräsentiert werden. §  π: A1 → A2

§  z.B. π: N → L §  π(3) = [1 1 1] §  π(+(2,1)) = union(π(x), π(y))

19

A

L

A

L

fi

π[fi]

π π

Page 20: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

PRÄDIKATENAUSDRÜCKE

20

Page 21: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology 21

Prädikatenlogik

§  Symbole: Variablen, Konstanten, Prädikate, Quantoren (∀,∃), Junktoren (¬,∧,∨), Sonderzeichen

§  Grundaufbau:

Page 22: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology 22

Semantik (Junktoren)

§  Semantikfunktion I: ENV×PL(ℜ)→{T,F} §  Ist p Prädikatensymbol zum n-stelligen

Prädikat pi: I(ω,p(t1,..,tn))=pi(I(ω,t1),..,I(ω,tn)) §  I(ω, p∨q)=T, wenn I(ω,p)=T oder I(ω,q)=T. §  I(ω, p∧q)=T, wenn I(ω,p)=T und I(ω,q)=T. §  I(ω, p→q)=T, wenn I(ω,p)=F oder wenn

I(ω,p)=T und I(ω,q)=T. §  I(ω, ¬p)=T, wenn I(ω,p)=F.

Page 23: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology 23

Semantik (Quantoren)

§  Definition (Äquivalenz modulo v) Sind ω, ω‘ ∈ ENV, dann heißen ω und ω‘

äquivalent modulo v∈IVS, wenn für alle w∈IVS mit v≠w gilt: ω(w)=ω‘(w). Wir schreiben dann ω ~v ω‘ (äquivalent bis auf v).

§  In anderen Worten: ω darf sich von ω‘ nur in höchstens v unterscheiden.

Page 24: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology 24

Semantik (Quantoren)

§  binden Variablen, d.h. wir benötigen Freiheit in der Zuweisung innerhalb des Environments §  Allquantor: I(ω,(∀v)p)=T ⇔ Für alle ω‘ mit ω ~v ω‘ gilt I(ω‘,p)=T

§  Existenzquantor: I(ω,(∃v)p)=T ⇔ Für mind. ein ω‘ mit ω ~v ω‘ gilt I(ω‘,p)=T

Page 25: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology 25

Definitionen

§  Ist p∈PL(ℜ), so heißt p gültig in ℜ, wenn für alle ω∈ENV gilt I(ω,p)=T.

§  Ist p∈PL(ℜ), so heißt p erfüllbar in ℜ, wenn es ein ω∈ENV gibt mit I(ω,p)=T.

§  Ist p∈PL(ℜ), so heißt p unerfüllbar in ℜ, wenn für alle ω∈ENV gilt I(ω,p)=F.

§  Beachte quantorgebundene vs. freie Variablen!

Page 26: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

ASSIGNMENTSPRACHEN

26

Page 27: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Besonderheiten

§  Zuordnungen v := t §  d.h. Variablen werden Termen zugeordnet,

die deren Wert verändern §  Variablenenvironment kann sich mit der

Interpretation jeder Zeile ändern §  IAL: ENV×AL → ENV

§  weitere neue syntaktische Elemente: §  Blöcke begin a1;a2 end §  Schleifen while B do a1

27

Page 28: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Semantikfunktion

§  Bereits definiert für §  Prädikatenlogischen Ausdrücke

§  IPL : ENV×PL(ℜ) → {T,F}

§  Terme §  IT: ENV×T(ℜ) → A

§  Erweiterungen (beispielhaft): §  IAL(ω,v := t) = ω‘

mit ω‘(v)=IT(ω,t) und ω‘(w)= ω(w) für w≠v §  IAL(ω, begin a1;a2 end ) = IAL(IAL(ω,a1),a2)

28

Page 29: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

LOGISCHE PROGRAMME

29

Page 30: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Sprache LP

§  Syntaktische Elemente §  Atomformeln: p(t1,..,tn) §  Fakten: p(t1,..,tn) := . §  Regeln: A := A1,..,Ak.

§  Programm = Reihe von Fakten und Regeln

§  Berechnung = Beweis einer Anfrage := A1,..,Ak.

30

Page 31: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

Grundlagen

§  Transformationen: §  A1 ∧ .. ∧ Ak → A |= ¬A1 ∨ .. ∨ ¬Ak ∨ A §  A1 ∧ .. ∧ Ak → ⊥ |= ¬A1 ∨ .. ∨ ¬Ak

§  Aufbau aus Hornklauseln: §  Disjunktionen von Literalen (Klauseln) §  mit maximal einem positiven Literal

§  Anwendung der Resolution §  Widerspruchsbeweis

31

Page 32: SWP: Zusammenfassung · 2019-07-25 · Anwendung der Ableitung bis das gesuchte Wort gefunden wird ! hohe Zeit- und Speicherkomplexität ! terminiert nicht, wenn Satz ∉ Grammatik

Institute for Software Technology

DANKE!

32