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.

Lektion lernen

  • 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