Sie sind auf Seite 1von 28

Programmierung und Softwareentwicklung

bung 12

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 1: Allgemeine Fragen zu Syntax und Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 1: Allgemeine Fragen zu Syntax und Semantik

a) The syntax of program is the structure and form of its text Die Syntax (einer Programmiersprache) bezeichnet die Regeln, welche die Korrektheit einer Zeichenkette festlegen. Also ob ein Programm bspw. von einem Compiler akzeptiert und bersetzt warden kann. Oft wird die Syntax durch eine Grammatik (bspw. EBNF) skizziert. Eine solche Grammatik beschreibt allerdings meist eine Obermenge, da dieser weitere Kriterien erforden kann. b) The semantics of a program is the set of properties of its potential executions Die Semantik legt die Bedeutung syntaktisch korrekter Stze fest. Ohne Semantik wissen wir nur, ob eine Zeichenkette ein Programm ist, aber nicht, welche Bedeutung es besitzt. c) bersetzersemantik, Operationale Semantik, Denotationale Semantik, Axiomatische Semantik (mehr dazu auf den nchsten Seiten)

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 1: Allgemeine Fragen zu Syntax und Semantik
bersetzersemantik
Bedeutung einer Programmiersprache wird auf die Bedeutung einer bereits bekannten Programmiersprache zurckgefhrt bersetzer (Compiler) kann diese bersetzung durchfhren Verlagerung der Problematik (Henne-Ei-Problem) Es existiert eine groe Abhngigkeit von einem konkreten Maschinenmodell mit gegebener Assemblersprache

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 1: Allgemeine Fragen zu Syntax und Semantik
Operationale Semantik
Mathematische Maschine M (Interpreter) wird definiert und erzeugt aus Eingabedaten durch schrittweises Abarbeiten des Programms die Ausgabedaten Konkretes Verfahren existiert um aus Eingabe einen Ausgabewert zu erzeugen Rckfhrung auf Zustandsautomat (Zustnde durch Inhalt der Variablen festgelegt)


Schrittweise Verarbeitung des Codes Speicherinhalt Spiegel Zustand wider

a b


Slot 15

05.02.2014

Programmierung und Softwareentwicklung bungen

12. bungsaufgabenblatt
Aufgabe 1: Allgemeine Fragen zu Syntax und Semantik
Denotationale Semantik
Abstraktion vom konkreten Maschinenmodell Untersuchung der Wirkung von Anweisungen auf die Belegung der Variablen Semantische Funktion F[c] : Z Z ordnet einem Zustand z1 nach Ausfhrung von c einen Folgezustand z2 zu

Gesucht: : , F nimmt den Speicherzustand vor der Ausfhrung als Parameter und berechnet ihn nach der Ausfhrung

[ ] [ ]

[ <= ]

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 1: Allgemeine Fragen zu Syntax und Semantik
Axiomatische Semantik
Axiomatische Semantik ist eine Abstraktionsebene ber den denotationalen Semantik

Aussagen ber Eigenschaften von Zustnden Gegeben sei P = Vorbedingung; S = Programm; Q = Nachbedingung P {S} Q wenn P gilt und S vollstndig ausgefhrt wird, dann muss anschlieend Q gelten (partielle Korrektheit)

in a steht in b steht

in a steht in b steht Max( , ) wird zurckgegeben

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

Intuitive Vermutung: S1 vertauscht die in den Variablen x und y gespeicherten Werte miteinander. Hierfr kommt eine temporre Hilfsvariable t zum Einsatz.

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Startkonfiguration: (t := x; x:=y; y:=t; ; z1) Zustand z1: z1(t) = 0, z1(x) = 3, z1(y) = 6 Folgekonfiguration (x:=y; y:=t; ; z2) Zustand z2: z2(t) = 3, z2(x) = 3, z2(y) = 6 Folgekonfiguration (y:=t; ; z3) Zustand z3: z3(t) = 3, z3(x) = 6, z3(y) = 6 Folgekonfiguration (; z4) Zustand z4: z4(t) = 3, z4(x) = 6, z4(y) = 3
05.02.2014 Programmierung und Softwareentwicklung bungen Slot 15

Aufgabe 2: Semantik

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 2: Semantik

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 3: Spezifikation und Verifikation von Programmen

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 3: Spezifikation und Verifikation von Programmen

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 3: Spezifikation und Verifikation von Programmen

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 3: Spezifikation und Verifikation von Programmen

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 3: Spezifikation und Verifikation von Programmen

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15

12. bungsaufgabenblatt
Aufgabe 3: Spezifikation und Verifikation von Programmen

05.02.2014

Programmierung und Softwareentwicklung bungen

Slot 15