Site Menu Project Specification Implementation Recommendations Reference Needs Updating Work in Progress Wastebasket Wiki Manual |
Home PageWelcome to the Modula-2 R10 Project Wiki. The project is about correctness, safety, reliability and readability of software without compromising utility. We aim to achieve these goals by providing free open source development tools and education materials for a revised and modernised version of Niklaus Wirth's classic Modula-2 programming notation. Latest News
Quick LinksSyntax & Language ReportBootstrap Compiler Sources (work in progress)Standard Library Definitions (update in progress)DonationsPlease help funding the Modula-2 R10 development work by making a donation. Our donation page is hosted at Paypal.com About Revised Modula-2 (2010-2015)Modula-2 R10 is a modern revision of N.Wirth's Modula-2 language undertaken by B.Kowarsch and R.Sutcliffe between 2009 and 2015. Primary design goals were type safety, consistency and utmost readability, further suitability as a core language for domain specific supersets. Targeted application areas are systems implementation, engineering and mathematics. Some inspiration was taken from Ada (strict name equivalence, readability) and Oberon (extensible record types). A particular strength of the design are first-class ADTs, making library defined abstract data types practically indistinguishable from built-in types, thereby eliminating one of the major causes of feature growth (complexity). About Classic Modula-2 (1978-1985)Modula-2 is a strongly typed, modular, imperative system and application programming language derived from Xerox' Mesa language. It was published in 1978 at the Swiss Federal Institute of Technology in Zurich (ETHZ) by Prof. Niklaus Wirth as a successor to his earlier language Pascal. Modula-2 enjoyed huge popularity throughout the 1980s until it was displaced by inferior designs. More information about the classic Modula-2 language and its history can be found at http://en.wikipedia.org/wiki/Modula-2. Compiler SupportC99 and LLVMWork on a bootstrap compiler has begun in April 2015. The bootstrap compiler is written in classic Modula-2. It will generate readable C99 source code for bootstrapping. Once bootstrapped, its sources will be converted to follow Modula-2 R10 syntax. It will then be gradually enhanced and an LLVM IR backend will be added. Other backends are being considered as well, in particular JVM and CLR. An earlier compiler written in C had been under development in 2010 but work had been suspended until the design was finalised. Sources of this work are being salvaged for the new compiler written in classic Modula-2. The intellectual property rights to the compiler and its library will be donated to a non-profit organisation charged with promoting the revival of the Modula-2 language in education and industry. The software will be licensed under a permissive BSD style open source license. GNU Compiler Collection (GCC)The developer of GNU Modula-2 has pledged to add support for Modula-2 R10 in GM2. The GM2 compiler is a Modula-2 front-end for the GNU Compiler Collection (GCC). This software is licensed under the GPL open source license. This Wiki is powered by Pm Wiki, available from http://www.pmwiki.org. |