Objektorientierte Programmierung und Modellierung (Fach) / Spezifikation abstrakter Datentypen (Lektion)
In dieser Lektion befinden sich 6 Karteikarten
WS 15/16
Diese Lektion wurde von RouHim erstellt.
- Welche Typen gibt es bei der Spezifikation abstrakter Datentypen? Imports Sorts Constructors (Methoden die sich selber zurückgeben, konstruieren) Functions Variables Equations (Beschreiben die Besonderheiten, Eigenschaften einer Spezifikation)
- Welche Datentypen können z.B. importiert werden? bool nat Stack Queue ... Alle Typen zu denen uns eine ASL bekannt ist.
- Wie werden Constructors spezifiziert? Constructors sind Functions, die immer die zu spezifizierende Sort z.B.: LimitedStack zurückgeben. Beispiel: empty : --> LimitedStackpush : Element x LimitedStack x Nat --> LimitedStack
- Wie werden Functions spezifiziert? Functions sind gleich zur Algebraischen Spezifikation, nur ohne das function davor. Bsp.: top : Stack --> Element? pop: Stack --> Stack? isEmpty : Stack --> bool length : Stack --> Nat isFull : Stack --> bool
- Wie werden Variables spezifiziert? Variables sind Variablen welche in den darauffolgenden Equations verwendet werden können. Bsp.: Element eLimitedStack lsNat n
- Wie werden Equations spezifiziert? Equations beschreiben wie functions im Detail zu funktionieren haben.Es muss, wie der Name schon sagt, immer eine Gleichheit zwischen beiden Seiten herrschen. Bsp.: isEmpty(empty) = trueisEmpty(push(e,ls,n)) = falselength(empty) = zerolength(push(e,ls,n)) = succ(length(ls)) Aufpassen muss man bei komplizierteren Equations wie hier:isFull(push(e, ls, limit)) = if greater(limit, length(ls)) then false else true
