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.
 

Concrete Syntax