Montag, 25. Februar 2008

Erster Blick auf Cassandra

Es wird Zeit Cassandra vorzustellen, ein Projekt, das im Januar 2008 seine erste Version 0.2 erreicht hat.
Cassandra ist der Versuch eine logische Programmiersprache zu gestalten, die in einer objekt-orientierten Umgebung anwendbar ist. Logische Programmiersprachen wie Prolog folgen der Prädikatenlogik, wodurch das Prädikat im Vordergrund steht:

human(socrates).
parents(child, father, mother).


In Cassandra soll nach wie vor, das Objekt im Vordergrund stehen, das Prädikat hat eine ähnliche Stellung wie Objektattribute:

socrates.human!
child.parents!(father, mother)


Cassandra besteht ebenfalls wie Prolog aus Fakten, die mit einem Ausrufezeichen gekennzeichnet werden, Regeln und Abfragen (Queries), die mit einem Fragezeichen gekennzeichnet werden:

socrates.human? # => true
:x.mortal!.if :x.human # => x = socrates


Cassandra wurde als DSL (Domain Specific Language) in Ruby implementiert. Symbole dienen hier als Variablen.

Cassandra kann bereits aus Regeln und Fakten logische Schlüsse ziehen, wie die oben erwähnten Beispiele zeigen. Der nächste Schritt besteht nun darin Datenstrukturen einzubinden und Vererbung zu ermöglichen.

Keine Kommentare: