Modula-2 Reloaded

A Modern Typesafe & Literate Programming Notation

Site Menu

Project

Specification

Implementation

Recommendations

Reference

Needs Updating

Work in Progress

Wastebasket

Wiki Manual

edit SideBar

Home Page

Welcome 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
  • 2015-08-31: Necessary grammar fixes have been finalised.
  • 2015-04-05: Work on a new bootstrap compiler has begun.
  • 2015-03-31: The revised language design has been finalised.
Quick Links
Syntax & Language Report
Bootstrap Compiler Sources (work in progress)
Standard Library Definitions (update in progress)
Donations

Please 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 Support
C99 and LLVM

Work 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.