next up previous contents index
Weiter: 12.4.2 Die Fuzzy-Logik Hinauf: 12.4 Ein allgemeines Zurück: 12.4 Ein allgemeines

12.4.1 Die Standard-Logik

Im folgenden Paket wird eine Instanz der zweiwertigen Standard-Logik geschaffen.

with General_Boolean;

package Standard_Boolean is

type stand_bool is new General_Boolean.gen_bool with private;

true_value: constant stand_bool;
false_value: constant stand_bool;

function "and"(left,right: stand_bool) return stand_bool;
function "or" (left,right: stand_bool) return stand_bool;
function "not"(val: stand_bool) return stand_bool;

private

type stand_bool is new General_Boolean.gen_bool with
record
b: boolean;
end record;

true_value: constant stand_bool := (General_Boolean.gen_bool with true);
false_value: constant stand_bool := (General_Boolean.gen_bool with false);

end Standard_Boolean;

package body Standard_Boolean is

function "and"(left,right: stand_bool) return stand_bool
is
h: stand_bool;
begin
h.b := left.b and right.b;
return h;
end "and";

function "or" (left,right: stand_bool) return stand_bool
is
h: stand_bool;
begin
h.b := left.b or right.b;
return h;
end "or";

function "not"(val: stand_bool) return stand_bool
is
h: stand_bool;
begin
h.b := not val.b;
return h;
end "not";

end Standard_Boolean;

Zusätzlich zu den Operationen wurden auch noch Konstanten für true und false definiert. Die Implementierung folgt den bekannten booleschen Operationen.



Johann Blieberger
Wed Feb 11 09:58:52 MET 1998