This paper describes the implementation of FDL. In FDL, all functions are updated incrementally by the insertion and deletion of equations and an integrity sub-system verifies updates against the declared semantic integrity constraints. We show how a binary relational storage structure is used to support all of FDL's persistent data. We also show how the technique of graph reduction from functional programming languages is modified for the evaluation of FDL queries and the validation of FDL's integrity constraints.
We begin this paper with an overview of FDL in Section 2. In Section 3 we consider the storage level underlying FDL and the operations it supports. In Section 4 we introduce the architecture of FDL itself, describing each component and the operations it provides. We consider in particular the storage and update of functions, the evaluation of queries, and the enforcement of semantic integrity constraints. Finally, in Section 5 we compare our implementation with that of related database languages and give our concluding remarks.