This paper summarises the outcome of the research developed in our laboratory during several years, in the form of a computational language. In this sense the merit is, if any, not only on the authors but on all the members of the laboratory. The focus of the paper content is the description of the language structure and its constructs, but not its logical semantics. In [22] you can find a complete description of the logical semantics underlying Milord II. The interested reader will find in the bibliography several references to Milord II papers that will help in the deepening of the theoretical grounding that is only mentioned here. This paper must not be understood as a user's manual but as a concise description of the language. The complete description of all the possibilities of usage, the environment facilities, and complex examples would deserve a much longer document.
When one focus on the job of writing down the definition of a language it
is always difficult to decide the starting point. Which construct is the
most primitive? Which explanation should go first to make the
understanding of the rest easier? Any construct of the Milord II language,
as of any other modular language, is difficult to grasp without, at least,
a superficial view of what the modular system is. Most constructs obtain a
full meaning when placed in the context of a module. Nonetheless, a module
is just a collection of those constructs. To avoid this circularity we
begin with the introduction of the basic modular system. Then we go
through all the constructs in the language, from the elementary facts to
the meta-rules and the generic modules. In this walk through the language
we will be guided by the syntax. To do so we rely on a syntactic
definition a-la-BNF in which the symbols ::=, [, ], ,
are
part of the BNF formalism, as follows:
Comparison of symbols is case-insensitive. Lines of comments can be written after two semicolons (;;). If the comment is larger that one line, two semicolons must be written at the beginning of each line. Several spaces and carry returns are ignored and considered only a space.