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.