Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

WS 97/98 || Entwicklung objekt-orientierter Bibliotheken || Übungen || Lösung 2

DEFINITION BooleanExpressions


(*
 *	Entwicklung objekt-orientierter Bibliotheken, Aufgabe 4
 *
 *	Definition eines abstrakten Datentyps fuer Boolesche Ausdruecke.
 *)
DEFINITION BooleanExpressions;

   TYPE
      Expression = POINTER TO ExpressionRec;
      ExpressionRec = RECORD END;

   (* --- Constructors --- *)

   PROCEDURE Const(value: BOOLEAN): Expression;
   PROCEDURE Var(index: INTEGER): Expression;
   PROCEDURE Not(op: Expression): Expression;
   PROCEDURE And(op1, op2: Expression): Expression;
   PROCEDURE Or(op1, op2: Expression): Expression;
   PROCEDURE Xor(op1, op2: Expression): Expression;

   (* --- Parsing --- *)

   PROCEDURE Eval(expr: Expression; parm: SET): BOOLEAN;

   (*
    *	Return set of variables expr depends on.
    *)
   PROCEDURE Parameters(expr: Expression): SET;

END BooleanExpressions.

WS 97/98 || Entwicklung objekt-orientierter Bibliotheken || Übungen || Lösung 2

Andreas Borchert, 26. November 1997