M2R10 /

Filename Size Date modified Message
2.7 KB
Modula-2 Revision 2010

* M2 R10 Repository *

Welcome to the  development repository of Modula-2 Revision 2010, its language
report, reference compiler and standard library.

Quick links:

o  Source Tree


o  EBNF Grammar


o  Syntax Diagrams


o  Library Definition Modules


o  Specification


* About Classic Modula-2 *

Modula-2 is a modular, imperative programming language designed in 1978 at the
Swiss Federal Institute of Technology in Zurich (ETHZ)  by Prof. Niklaus Wirth
as a successor  to his earlier language  Pascal.  More information  about  the
classic Modula-2 language and its history can be found at:


* About Modula-2 Revision 2010 *

Modula-2 R10 is a modern revision of N.Wirth's Modula-2 language undertaken by
B.Kowarsch  and R.Sutcliffe  in 2009  and 2010.  A pragma system  was added in
in 2011 and 2012.  The language report is currently under editorial review and
is due to be published as a book in 2013.

The primary design goals of the revision were type safety,  utmost readability
and consistency,  and  suitability  as a  core language   for domain  specific
supersets.   Targeted  areas   of  application   are  systems  implementation,
engineering and mathematics.  Some inspiration was taken from Ada and Oberon.

A particular strength  of the design  is  a set of facilities  to make library
defined abstract data types  practically indistinguishable from built-in types
and thereby eliminate one of the major causes of feature growth.

A reference compiler  for Modula-2 R10 has been  under development  since 2010
but work had been suspended  until the design has been finalised.  Work on the
compiler  is scheduled to resume  mid-December 2012.  Initially,  the compiler
will generate C99 source code.  Eventually, it will also generate LLVM IR.

* Development Schedule *

The authors endeavour to have a working syntax and type checker around the end
of Q1,  and a bootstrap compiler  around Q2-Q3 in 2013.  However, it should be
noted that this project is a *private* and *self-funded* effort by the authors
who are doing this work in their own *spare* *time*.  Further, the authors be-
lieve that  quality design  and  proper specification  are prerequisites for a
quality implementation and cannot be rushed.  Consequently,  there is no fixed
schedule for the completion of the project.  It will take as long as it takes.

(status: Dec 15, 2012)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.