ManTa 3
FORMAL DESCRIPTION
|
The following description of ManTa is inspired in [Meyer90].
It´s used to describe programming languages, and it can be adapted
to ManTa.
The description goes from concrete to abstract and it's
composed of:
Concrete syntax |
The syntax available to user. |
Abstract syntax trees |
An abstract representation of the syntax. |
Static semantics |
Restrictions imposed on abstract syntax tree (and hence on user specifications)
that can´t be captured by the syntax. |
Dynamic semantics |
Intended behavior or meaning of language |
To specify the dynamic semantics there are different ways:
Operational semantics |
"which specifies the semantics by providing an abstract interpreter"
[Meyer90]. The rewriting algorithm is shown with some properties. |
Denotational semantics |
"Associates with every programming construct a set of mathematical
functions, defining its meaning" [Meyer90] |
Translational semantics |
Usually this semantics presents a translation to an easier language.
In our case, we present a general translation scheme from ManTa to any
programming language and as an example a OCaml code generator. |
Although this version of ManTa supports parametric types (or generic
ADT) they won't be fully described here, since the theory for those types
is still under development.