Last available version: 1.5-20110205
M2 is a new language for everyday programming: a clean syntax, simple as a scripting language, severe as a strong typed language, efficient like C. Those who know Modula-2 (from whom the name), Oberon or Pascal will find in M2 many similarities. Basically, M2 is a cross compiler from the M2 language to C. Array and dynamic structures are allocated automatically and deallocated when no more needed. The run-time checking prevent array index overflow and null-pointer dereferencing, so improving the robustness of the program. All the programmer must take care of is the algorithm, all the rest is in charge of the language. Features:
f(a,b,c)may be rewritten as
window->Open()does not require the name of the function to be qualified as
M2 is still a young project, and it lacks on many areas. M2 is a procedural language, but its "postfix" functional notation open the way to the object oriented programming paradigm. Unicode isn't supported, but the iconv library lets to convert strings between any charset representation.
Currently tested on: Red Hat Linux 7.3; Slackware 10.0; MS Windows 98 + Cygwin 1.5.
Suppose we have this source program in the file
MODULE hello IMPORT m2 VAR name: STRING BEGIN print("Please, enter your name: ") name = input() print("Hello " + name + ", your first program is working!\n") END
then, to compile and execute the program we give this command (bolded characters are those you have to type-in):
$ m2 -r hello.mod Please, enter your name: Umberto Hello Umberto, your first program is working!
The M2 language and the M2 developing system are released under a BSD-style
license (see the file LICENSE for details).
The M2 compiler generates C source compilable with the "gcc" compiler, released under the GNU GPL license.
Some of the C libraries used by gcc are part of the GNU operating system and are released under the GNU GPL license.
The conservative garbage collector "gc" and the developing system "Cygwin" are released with their own license, but basically they can be used freely.
Some of the libraries provided with the M2 developing system are interfaces to other software that can or can not be installed in your system: if you plan to use that software, please read the respective license.
|Umberto Salsi||Contact||Site map||Home/|