EDEN: An Engine for Definitive Notations
Abstract
This thesis concerns the ideas and experiences of programming in EDEN which is an experimental language designed to be a general-purpose definitive (definition-based) language with some imperative features. EDEN supports a very simple form of definition - an uni-directional relationship among variables. In this thesis, we present the fundamental philosophy of the design of this language and the methods of implementing such an interpreter. We investigate the advantages and drawbacks of the current definitive approach by using EDEN as a prototyping language; we describe how a subset of DoNaLD - a definitive notation for line drawing - is implemented using the EDEN interpreter as the underlying computing engine. We compare the approach of definitive programming with those of other programming paradigms, including functional programming and constraint-based programming. The possibility of using definitive languages for software specification is investigated. We also explore the potential for developing definitive programming into a concurrent programming paradigm. Finally, we propose some possible ways of improving the current design of EDEN through introducing other programming concepts, such as object-oriented programming techniques.