|
Description:
|
This work begins development of a functional language , Easel , with declarative denotational semantics similar to human mathematical discourse . Practical advantages of this include established methods of representation and analysis . Well -founded Easel programs have denotational semantics , the formal analog of the informal mathematical notion of well -definedness .
Easel programs are rewrite systems with guard conditions and are genuinely denotational in that the algorithm for evaluation is explicitly not constrained . While this yields a number of potential optimizations unique to Easel it also requires methodological changes due to a shift in burden from the compiler to the programmer .
Easel semantics are constructively defined and shown to be Turing complete . The specification for an Easel implementation is given and a reference implementation for Java allows terms to be evaluated . As the syntax for Easel is primitive and side -effects are not allowed , it is expected Easel will act as a computation server or as a meta -language for more readable languages , such as SequenceL . Initial performance measurements are reported . |