syntax, semantik, spezifikation - grundlagen der informatik r. hartwig kapitel 9 / 1...

5
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 1 Gleichungsspezifikation abstrakter Datentypen Definition "Spezifikation" Eine (Gleichungs-)Spezifikation ist ein Paar SPEC SPEC = (, E), wobei eine Signatur und E ein - Gleichungssystem ist. Die Spezifikation wird erfüllt von allen - Algebren, in denen das Gleichungssystem E gültig ist, also von allen (, E)-Algebren. Damit bestimmt eine Spezifikation SPEC SPEC eine ganze Klasse von Algebren: Alg ,E bzw. Alg SPEC SPEC . Zur Angabe von Spezifikationen benutzen wir eine einfache sich selbst erklärende Kapitel 9

Upload: irmingild-lapp

Post on 05-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 1 Gleichungsspezifikation abstrakter Datentypen Definition "Spezifikation"

Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 1

Gleichungsspezifikation abstrakter Datentypen Definition "Spezifikation"

Eine (Gleichungs-)Spezifikation ist ein PaarSPECSPEC = (, E),

wobei eine Signatur und E ein -Gleichungssystem ist.

Die Spezifikation wird erfüllt von allen -Algebren, in denen das Gleichungssystem E gültig ist, also von allen (, E)-Algebren. Damit bestimmt eine Spezifikation SPECSPEC eine ganze Klasse von Algebren: Alg,E bzw. AlgSPECSPEC . Zur Angabe von Spezifikationen benutzen wir eine einfache sich selbst erklärende Sprache.

Kapitel 9

Page 2: Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 1 Gleichungsspezifikation abstrakter Datentypen Definition "Spezifikation"

Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 2

Beispiele für Spezifikationen

1.) groupgroup = sorts G oprs : G, G G e : G i : G G var x, y, z : G eqns (x y) z = x (y z ) e x = x i(x) x = e end groupgroup

Modelle dieser Spezifikation sind alle Gruppen. Diese Spezifikation beschreibt die Klasse Alg group group .

Page 3: Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 1 Gleichungsspezifikation abstrakter Datentypen Definition "Spezifikation"

Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 3

Beispiele für Spezifikationen (Forts.) 2.) stackstack = sorts stack, char, bool oprs push : stack, char stack top : stack char pop : stack stack clear : stack empty: stack bool true : bool

false : bool var s : stack ; x : char eqns empty(push(s, x)) = false

empty(clear) = truetop(push(s, x)) = x

pop(push(s, x)) = s end stackstack

Page 4: Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 1 Gleichungsspezifikation abstrakter Datentypen Definition "Spezifikation"

Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 4

Das 1. Beispiel zeigt, daß mit Gleichungsspezifikationen auf direkte Weise i.a. nur polymorphe Datentypen spezifiziert werden können. Denn die Klasse Alg group group enthält sehr verschiedene nichtisomorphe Gruppen.Auch zur Klasse Alg stack gehören Modelle, die man wohl nicht meint: sog. Nichtstandardmodelle. Man betrachte etwa ein Modell, das als Keller unendliche Folgen von Elementen enthält. Auch dies wäre eine stackstack-Algebra. Sie enthält viel zu viele Elemente (!), nicht alle sind von der Konstanten clear aus durch endlichmalige Anwendung der Operationen erreichbar. Ausschluß solcher zu großer Modelle nicht durch Formeln des PK 1. Stufe möglich! Vgl. vorn Axiom iv. und auch das sog. Induktionsaxiom in den PEANO-Axiomen sind Formeln 2. Stufe.

Page 5: Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 1 Gleichungsspezifikation abstrakter Datentypen Definition "Spezifikation"

Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 9 / 5

Durch Gleichungsspezifikationen werden also i.a. zu große Klassen von Algebren beschrieben.

Frage:

Wie kann man diese bequemen, einfachen Ausdrucksmittel der Gleichungsspezifikation trotzdem nutzen?

Wie kann man die oft gebrauchten monomorphen Datentypen

evtl. doch mittels Gleichungen spezifizieren?