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

Goals

Vision

Our vision is that of a future where we will be able to go online without concern that we might become victims of theft, sabotage or vandalism; a future where software controlled systems and devices are generally safe and reliable; a future where software developers will be true software engineers as they follow sound engineering principles and best practises in the manner today's electrical, mechanical and civil engineers do, professionals who do not exhibit the self-importance of "because we can" and the shortsightedness of "we fix it later", but the restraint and responsibility of serving safety and reliability first and foremost.

Mission

Our mission is to make future software safe and reliable. To achieve our mission, our aim is two-fold:

First, to offer a solution to the problem of unsafe and unreliable software through the design, implementation and provision of a safe and literate software development environment, free of charge under a permissive open source license, along with associated training material to re-introduce, promote and apply sound engineering principles and best practises in software production.

Second, to educate the general public about the dangers of the prevailing software production model and how it proliferates information security issues by creating vulnerabilities faster than can be identified, let alone fixed and how our solution can help solve the problem at its root cause by changing attitudes and practises.

Administrative Deliverables

  • Establishment of a charitable non-profit organisation in Switzerland.
  • Appointment of a secretary general to run the non-profit.
  • Appointment of a professional non-profit fundraiser.
  • Set up a first-year budget and start fundraising.
  • Recruitment of one or two compiler developers.

Documentation Deliverables

  • Authoritative specification of a modernised revision of the Modula-2 language following our design principles.
  • Reference book that mirrors Niklaus Wirth's "Programming in Modula-2".
  • A summary of differences between classic and revised Modula-2.
  • A style guide.
  • University courseware for introductory and advanced courses in software engineering using Modula-2.
  • Project Wiki.

Software Deliverables

  • Bootstrap compiler for a language subset generating C99 source output.
  • Fully compliant reference compiler (post-bootstrap) generating C99 and LLVM IR.
  • Complete standard library implementation.
  • Various Modula-2 plug-ins for rendering frameworks and source code editors.
  • IDE with syntax aware source code editor, instant virtual machine execution and debugging.
  • Source-to-source translator for migrating legacy code written in classic Modula-2.
  • Transliteration utility for common EBCDIC encodings.
  • Supporting Gaius Mulley to add support to GCC.
  • Compiler back-ends targeting JVM and CLR.
  • Open source showcase applications.

Long Term Outlook

  • Actor based concurrency support (Phase II).
  • Objective Modula-2 superset implementation.
  • Web integration, possibly via ObjM2 based WebObjects clone with coroutines replacing pthreads.