M2R10 /

Filename Size Date modified Message
3.7 KB
## ** Modula-2 Revision 2010 ** ##

### M2 R10 Repository ###

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

Quick links:

** o  Finalised Grammar (up-to-date) **

** o  Technical Specification (needs updating) **

** o  Source Tree (needs updating) **

** o  Library Definition Modules **

** o  Summary of Changes **

** o  Design Journal **

### Donations ###

Please help funding the Modula-2 R10 development work by making a donation.

Our [donation page]( is hosted at

### 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 Design was  refined and polished in 2013.  Extensive work
was done on blueprints and templates for the standard library in 2014. The language
report is  currently under editorial review  and will be published in book form in 2015.

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.

### Compiler Support ###

A reference compiler  for Modula-2 R10 has been  under development  since 2010
but work had been suspended until the design is finalised. Initially, the compiler will
generate C99 source code,  and eventually it will generate LLVM IR. Some updates
were done in 2013 and 2014.  Development will fully resume after finalising the
manuscripts for the book. 

The developer of GNU Modula-2 has pledged to add support for Modula-2 R10 in
GM2 when the specification is final. The GM2 compiler is a front-end for GCC.

### Development Schedule ###

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 believe that
quality design  and proper specification are prerequisites for a quality
implementation and cannot be rushed.  The finalisation  of the  manuscripts
for the book and library - currently estimated for Jan/Feb of 2015 - will allow
shifting of focus to the compiler implementation,  but at present there is
*no fixed schedule* for the completion of the compiler.

Please consider [making a donation]( to speed up the development work.

[Status: Dec 31, 2014]