1. Einleitung / Abgrenzung

Literatur:


1.1. Algorithmen und Datenstrukturen


1.2. Paradigmen und Konzepte

Verbindungen und Einflüsse

Anforderungen

Konzepte

Paradigmen


1.3. Syntax und Semantik

1.3.1. Erweitere Backus-Naur-Form EBNF

Beispiel:
program      = block"."
block        = { "VAR" identlist  ":" ident [string] ";"
               | "PROCEDURE" ident ["( "[identlist]
                                   [";" "VAR" identlist] ")"]
                             [":" ident]";" block ident ";"
               }
               statement
statement    = [ident ":=" listexpr |
               ident [ "(" [actualparms] ")" ] |
               "RETURN" [ "(" [ expression ] ")" ]
               "BEGIN" statementseq "END" |
               "IF" condition "THEN" statementseq 
                             ["ELSE" statementseq] "END" |
               "WHILE" condition "DO" statementseq "END" |
               "REPEAT" statementseq "UNTIL" condition ]
listexpr     = "{" expression {"," expression} "}" | expression
identlist    = ident {"," ident}
actualparms  = listexpr {"," listexpr}
statementseq = statement {";" statement}
condition    = "NOT" condition |
               "(" condition ")" ("AND"|"OR") "(" condition ")" 
               expression ("="|"#"|"<"|"<="|">"|">=") expression
expression   = ["+"|"-"] term {("+"|"-") term}
term         = power {("*"|"/"|"%") power}
power        = factor [ ("^"|"**") number ]
factor       = ident ["("[actualparms]")"] |
               number | string [ ":" typeexpr ] |
               "(" expression ")"
string       = ('"' {character} '"' | "'" {character} "'")
ident        = letter {letter|digit}
number       = digit {digit}
Fragen

Beispiel Fragment:
statement    = [ ident ":=" expression |
               "WHILE" condition "DO" statements "END" ]

1.3.2. informelle Semantik

Beschreibung der Speicherveränderungen und des Ein-/Ausgabeverhaltens eines Programmes.
Variablen bezeichnen Speicheradressen.

syntaktische Einheit semantische Einheit
ident I
condition B
expression T
statement C
statements {C} = C;...;C

Semantik
Problem sind mehrdeutige Beschreibungen

1.3.3. operationale Semantik

Beschreibung von Zustandsänderungen einer abstrakten Maschine.

zum Beispiel: Prozessor Definition, Java Virtual Machine, P-code Machine

  1. Zustandsmenge Z = ( Stack, Speicher, Programmteile, Eingabe, Ausgabe )

  2. Anfangszustand z0 = ( leer, leerer Speicher, Programm, Eingabe, leer )

    für die Kombination (Programm, Eingabe)

  3. Funktion der Zustandsänderungen F : Z --> Z

mit den folgenden Bezeichnungen:

Semantik

1.3.4. denotationelle Semantik

Semantik Funktionen:
Semantik

1.3.5. axiomatische Semantik

Prädikate beschreiben die Bedeutung.

Prädikatenlogik erster Stufe

Axiomenschema: { Q } C { R }

Q ist die Vorbedingung (Precondition) R ist die Nachbedingung (Postcondition).

Falls Q für einen Zustand z erfüllt ist und C im Zustand z mit z' terminiert, dann gilt R im Zustand z'.

1.3.6. Pragmatik


1.4. Ausblick


H. Kredel, 25. 4. 1998