N. Bassiliades, P. Gray, “CoLan: A Functional Constraint Language and Its Implementation”, Data and Knowledge Engineering, Vol. 14, No. 3, pp. 203-249, 1995. (42)
This paper is about the definition of CoLan, a high-level declarative Constraint Descrip-tion Language, for use with an Object-Oriented Database (OODB). CoLan has features of both first-order logic and functional programming and is based on Daplex. CoLan expres-sions are tran-slated into Prolog code that implements the operational semantics of the con-straint. Pieces of generated code are cached inside the class descriptor of the “host” class attached to appropriate slots. The pieces of code are retrieved along an inheritance path when an update on the data-ba-se is attempted. If the update violates any of the re-trieved constraints then it is re-jected with an info-rmative message. Thus constraints are ex-pressed declaratively and they can even be retracted individually. However, they are im-plemented efficiently as code-gene-rated methods, triggered selectively by an update. The implementation is described for the ADAM OODB, which uses meta-classes of the CoLan system to generate class descriptions.