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

Main.HomePage History

Hide minor edits - Show changes to output

2015-10-05 06:47 by trijezdci -
Changed line 32 from:
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.
to:
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).
2015-10-05 06:44 by trijezdci -
Changed line 4 from:
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 version of Niklaus Wirth's classic Modula-2 programming notation.
to:
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.
2015-10-05 06:44 by trijezdci -
Changed line 4 from:
The project is about correctness, safety, reliability and readability of software. We aim to achieve these goals by providing free open source development tools and education materials for a revised version of Niklaus Wirth's classic Modula-2 programming notation.
to:
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 version of Niklaus Wirth's classic Modula-2 programming notation.
2015-10-05 06:43 by trijezdci -
Changed lines 4-6 from:
The project is about correctness, safety, reliability and readability of software.

We aim to achieve these goals by providing free open source development tools and education materials for a revised version of Niklaus Wirth's classic Modula-2 programming notation.
to:
The project is about correctness, safety, reliability and readability of software. We aim to achieve these goals by providing free open source development tools and education materials for a revised version of Niklaus Wirth's classic Modula-2 programming notation.
2015-10-05 06:42 by trijezdci -
Added lines 5-6:

We aim to achieve these goals by providing free open source development tools and education materials for a revised version of Niklaus Wirth's classic Modula-2 programming notation.
2015-10-05 06:39 by trijezdci -
Added lines 3-4:

The project is about correctness, safety, reliability and readability of software.
2015-10-05 06:34 by trijezdci -
Changed line 28 from:
!!!!! About Modernised Modula-2 (2010-2015)
to:
!!!!! About Revised Modula-2 (2010-2015)
2015-10-05 06:34 by trijezdci -
Changed lines 27-28 from:
!!!!! About Classic Modula-2
to:

!!!!! About Modernised 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.

!!!!! About Classic Modula-2 (1978-1985)

Deleted lines 34-37:

!!!!! 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 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.
2015-10-05 06:22 by trijezdci -
Changed line 12 from:
*[[Spec/Modula-2Syntax|Syntax]]
to:
*[[Spec/Modula-2Syntax|Modula-2 Syntax]]
2015-10-05 06:16 by trijezdci -
Changed lines 12-13 from:
*[[Spec/Modula-2Syntax]]
*[[Spec/LanguageReport]]
to:
*[[Spec/Modula-2Syntax|Syntax]]
*[[Spec/LanguageReport|Language Report]]
2015-10-05 06:02 by trijezdci -
Changed lines 11-12 from:
!!!!!! Finalised Grammar (up-to-date)
*[[https://bitbucket.org/trijezdci/m2r10/downloads/SyntaxDiagrams.pdf]]
to:
!!!!!! Syntax & Language Report
*[[Spec/Modula-2Syntax]]
*[[Spec
/LanguageReport]]
2015-09-21 10:41 by trijezdci -
Changed line 28 from:
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 ([[Reference.Abbreviations#ETHZ|ETHZ]]) by Prof. Niklaus Wirth as a successor to his earlier language Pascal. Modula-2 enjoyed huge popularity throughout the 1980s. More information about the classic Modula-2 language and its history can be found at [[http://en.wikipedia.org/wiki/Modula-2]].
to:
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 ([[Reference.Abbreviations#ETHZ|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]].
2015-09-21 10:39 by trijezdci -
Changed line 28 from:
Modula-2 is a strongly typed, modular, imperative programming language derived from Xerox' Mesa language. It was published in 1978 at the Swiss Federal Institute of Technology in Zurich ([[Reference.Abbreviations#ETHZ|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 [[http://en.wikipedia.org/wiki/Modula-2]].
to:
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 ([[Reference.Abbreviations#ETHZ|ETHZ]]) by Prof. Niklaus Wirth as a successor to his earlier language Pascal. Modula-2 enjoyed huge popularity throughout the 1980s. More information about the classic Modula-2 language and its history can be found at [[http://en.wikipedia.org/wiki/Modula-2]].
2015-09-21 10:27 by trijezdci -
Changed line 32 from:
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. 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 (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.
to:
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.
2015-09-21 10:24 by trijezdci -
Changed lines 32-34 from:
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 and 2015. The language report is under editorial review and will be published in a book in 2016.

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 (strict name equivalence, readability) and Oberon (extensible record types). 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.
to:
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. 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 (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.
2015-09-20 07:23 by trijezdci -
Changed line 39 from:
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 may be considered as well.
to:
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.
2015-09-17 10:13 by trijezdci -
Changed line 28 from:
Modula-2 is a strongly typed, modular, imperative 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. More information about the classic Modula-2 language and its history can be found at [[http://en.wikipedia.org/wiki/Modula-2]].
to:
Modula-2 is a strongly typed, modular, imperative programming language derived from Xerox' Mesa language. It was published in 1978 at the Swiss Federal Institute of Technology in Zurich ([[Reference.Abbreviations#ETHZ|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 [[http://en.wikipedia.org/wiki/Modula-2]].
2015-09-17 05:50 by trijezdci -
Changed line 4 from:
!!!!! Latest news:
to:
!!!!! Latest News
Changed lines 9-10 from:
!!!!! Quick links:
to:
!!!!! Quick Links
Changed lines 28-30 from:
Modula-2 is a strongly typed, modular, imperative 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. More information about the classic Modula-2 language and its history can be found at:

[[http:
//en.wikipedia.org/wiki/Modula-2]]
to:
Modula-2 is a strongly typed, modular, imperative 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. More information about the classic Modula-2 language and its history can be found at [[http://en.wikipedia.org/wiki/Modula-2]].
2015-09-17 05:49 by trijezdci -
Changed lines 9-21 from:
Quick links:

'''Finalised Grammar (up-to-date)'''

[[https://bitbucket.org/trijezdci/m2r10/downloads/SyntaxDiagrams.pdf]]

'''Bootstrap Compiler Sources (work in progress)'''

[[https://bitbucket.org/trijezdci/m2r10/src/tip/bootstrap/m2bst]]

'''Standard Library Definitions (update in progress)'''

[[https://bitbucket.org/trijezdci/m2r10/src/tip/_STANDARD_LIBRARY]]
to:
!!!!! Quick links:

!!!!!! Finalised Grammar (up-to-date)
*[[https://bitbucket.org/trijezdci/m2r10/downloads/SyntaxDiagrams.pdf]]

!!!!!! Bootstrap Compiler Sources (work in progress)
*[[https://bitbucket.org/trijezdci/m2r10/src/tip/bootstrap/m2bst]]

!!!!!! Standard Library Definitions (update in progress)
*[[https://bitbucket.org/trijezdci/m2r10/src/tip/_STANDARD_LIBRARY]]
2015-09-15 20:58 by trijezdci -
Changed line 4 from:
Latest news:
to:
!!!!! Latest news:
Changed lines 23-24 from:
'''Donations'''
to:
!!!!! Donations
Changed lines 29-30 from:
'''About Classic Modula-2'''
to:
!!!!! About Classic Modula-2
Changed line 35 from:
'''About Modula-2 Revision 2010'''
to:
!!!!! About Modula-2 Revision 2010
2015-09-15 20:55 by trijezdci -
Changed lines 41-46 from:
'''Compiler Support'''

A reference compiler for Modula-2 R10 has been under development since 2010 but work had been suspended until the design was finalised. Initially, the compiler will generate C99 source code, and eventually it
will generate LLVM IR.
Work on a bootstrap compiler has begun in April 2015.

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).
to:
!!!!! 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 may be considered as well.

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
.
2015-09-15 20:36 by trijezdci -
Changed line 39 from:
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.
to:
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 (strict name equivalence, readability) and Oberon (extensible record types). 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.
2015-09-15 11:13 by trijezdci -
Changed line 43 from:
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.
to:
A reference compiler for Modula-2 R10 has been under development since 2010 but work had been suspended until the design was finalised. Initially, the compiler will generate C99 source code, and eventually it will generate LLVM IR.
2015-09-14 19:22 by trijezdci -
Changed lines 11-12 from:
'''Finalised Grammar (up-to-date)'''
to:
'''Finalised Grammar (up-to-date)'''
Changed lines 15-16 from:
'''Bootstrap Compiler Sources (work in progress)'''
to:
'''Bootstrap Compiler Sources (work in progress)'''
Changed line 19 from:
'''Standard Library Definitions (update in progress)'''
to:
'''Standard Library Definitions (update in progress)'''
2015-09-14 00:27 by trijezdci - New home page
Changed lines 1-13 from:
(:Summary:The default home page for the PmWiki distribution:)
Welcome to PmWiki!

A local copy of PmWiki's
documentation has been installed along with the software,
and is available via the [[PmWiki/documentation index]]. 

To continue setting up PmWiki, see [[PmWiki/initial setup tasks]].

The [[PmWiki/basic editing]] page describes how to create pages
in PmWiki.  You can practice editing in the [[wiki sandbox]].

More information about PmWiki is available from [[http://www.pmwiki.org]].
to:
(:Summary:M2R10 home page:)
Welcome to the Modula-2 R10 Project Wiki.

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:

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

[[https://bitbucket.org/trijezdci/m2r10/downloads/SyntaxDiagrams.pdf]]

'''o  Bootstrap Compiler Sources (work in progress)'''

[[https://bitbucket.org/trijezdci/m2r10/src/tip/bootstrap/m2bst]]

'''o  Standard Library Definitions (update in progress)'''

[[https://bitbucket.org/trijezdci/m2r10/src/tip/_STANDARD_LIBRARY]]

'''Donations'''

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

Our [[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QA4WRY9TW7GT4|donation page]] is hosted at Paypal.com

'''About Classic Modula-2'''

Modula-2 is a strongly typed, modular, imperative 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. More information about the classic Modula-2 language and its history can be found at:

[[http://en.wikipedia.org/wiki/Modula-2]]

'''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 and 2015. The language report is under editorial review and will be published in a book in 2016.

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.
Work on a bootstrap compiler has begun in April 2015.

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 Wiki is powered by PmWiki, available from [[http://www.pmwiki.org]].--]