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

Project.Goals History

Hide minor edits - Show changes to output

2015-09-20 11:56 by trijezdci -
Changed line 43 from:
* Web Integration, possibly via [=ObjM2=] based [=WebObjects=] clone with coroutines replacing pthreads.
to:
* Web integration, possibly via [=ObjM2=] based [=WebObjects=] clone with coroutines replacing pthreads.
2015-09-20 11:55 by trijezdci -
Added line 35:
* Transliteration utility for common EBCDIC encodings.
2015-09-20 11:53 by trijezdci -
Changed line 14 from:
* Establishment a charitable non-profit organisation in Switzerland.
to:
* Establishment of a charitable non-profit organisation in Switzerland.
2015-09-19 15:48 by trijezdci -
Changed line 23 from:
* A summary of difference between classic and revised Modula-2.
to:
* A summary of differences between classic and revised Modula-2.
2015-09-19 15:48 by trijezdci -
Added line 23:
* A summary of difference between classic and revised Modula-2.
2015-09-19 15:47 by trijezdci -
Changed line 23 from:
* A Style Guide.
to:
* A style guide.
2015-09-19 15:46 by trijezdci -
Added line 23:
* A Style Guide.
Changed line 25 from:
* Project Wiki
to:
* Project Wiki.
2015-09-18 10:42 by trijezdci -
Changed line 40 from:
* Web Integration, possibly via [=ObjM2=] based [=WebObjects=] clone.
to:
* Web Integration, possibly via [=ObjM2=] based [=WebObjects=] clone with coroutines replacing pthreads.
2015-09-18 10:40 by trijezdci -
Changed line 40 from:
* Web Integration, possibly via ObjM2 based WebObjects clone.
to:
* Web Integration, possibly via [=ObjM2=] based [=WebObjects=] clone.
2015-09-18 10:40 by trijezdci -
Added line 40:
* Web Integration, possibly via ObjM2 based WebObjects clone.
2015-09-18 10:37 by trijezdci -
Changed lines 34-39 from:
* Compiler back-ends targeting JVM and CLR.
to:
* 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
.
2015-09-18 10:29 by trijezdci -
Added lines 12-18:

!!! Administrative Deliverables
* Establishment 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.
2015-09-18 10:06 by trijezdci -
Changed line 16 from:
* University courseware for introductory and advanced course in software engineering using Modula-2.
to:
* University courseware for introductory and advanced courses in software engineering using Modula-2.
2015-09-18 10:05 by trijezdci -
Changed lines 13-14 from:
!!! Deliverables
to:
!!! Documentation Deliverables
Deleted lines 15-16:
* Bootstrap compiler for a language subset generating C99 source output.
* Fully compliant reference compiler (post-bootstrap) generating C99 and LLVM IR.
Added lines 17-22:
* 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.
Changed line 27 from:
* Compiler back-ends targeting JVM and CLR.
to:
* Compiler back-ends targeting JVM and CLR.
2015-09-18 10:01 by trijezdci -
Added lines 12-24:

!!! Deliverables

* Authoritative specification of a modernised revision of the Modula-2 language following our [[Spec.DesignPrinciples|design principles]].
* Reference book that mirrors Niklaus Wirth's "Programming in Modula-2".
* Bootstrap compiler for a language subset generating C99 source output.
* Fully compliant reference compiler (post-bootstrap) generating C99 and LLVM IR.
* University courseware for introductory and advanced course in software engineering using Modula-2.
* 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.
* Supporting Gaius Mulley to add support to GCC.
* Compiler back-ends targeting JVM and CLR.
2015-09-18 09:50 by trijezdci -
Changed line 9 from:
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, along with associated training material to re-introduce, promote and apply sound engineering principles and best practises in software production.
to:
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.
2015-09-18 09:47 by trijezdci -
Changed lines 7-11 from:
Our mission is to make information technology safe and reliable by providing the design and implementation of a safe and literate software development environment free of charge along with associated training material to re-introduce, promote and apply sound engineering principles and best practises in the realm of software development in particular and information technology in general.
to:
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, 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
.
2015-09-18 09:32 by trijezdci -
Changed line 3 from:
Our vision is that of a future where we will be able to go online without concern that we might become victims of sabotage or theft; 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.
to:
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.
2015-09-18 09:30 by trijezdci -
Changed line 3 from:
Our vision is that of a future where we will be able to go online without concern that we might become victims of sabotage or theft; 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, where they 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.
to:
Our vision is that of a future where we will be able to go online without concern that we might become victims of sabotage or theft; 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.
2015-09-18 09:29 by trijezdci -
Changed lines 1-18 from:
!!!Design Goals
* '''Revision''' of the language in the general context of today’s programming requirements.
* Following the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”''
* Suitability as
a '''safe''' alternative to C in systems implementation and systems programming.
* '''Clarity'''
and '''maintainability''' of source code, specifically for readers other than the author.
* '''Orthogonality''' of syntax where possible, but not at the expense of simplicity and clarity.
* Non-interference of backwards compatibility concerns with any of the above principles.

!!!Feature Omission Guidelines
In the context of modern programming practise, if
we found the omission of a feature to be reasonable and justified then we considered its removal. Conversely, if we found its omission to to be unreasonable and unjustified then we rejected its removal. We aimed to avoid oversimplification.

!!!Feature Addition Guidelines
We considered a new feature for adoption if a clear need could be demonstrated and if we found it to be reasonable and consistent with the overall design philosophy. We put a particular emphasis on suitability for systems implementation and systems programming as well as interfacing to C. We aimed for the ability to replace C as a systems implementation language.

When considering the addition of a feature, we looked at in the context of the weight of the entirety of features, not in isolation. We observed an imaginary baggage allowance, whereby items had to be removed to make space for others to be added. Our aim was to avoid feature creep.

!!!Backwards Compatibility Guidelines
If a certain practise is outdated, such as the use of octal numerals, then a feature that has no other use than to support that practise can no longer be justified and consequently we removed it without any regard for backwards compatibility of source code. Instead, a source to source translator tool should be seen as a suitable solution to backwards compatibility issues that arise from removal of outdated features
.
to:
!!! Vision

Our vision is that of a future where we will be able to go online without concern that we might become victims of sabotage or theft;
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, where they 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 information technology safe and reliable by providing the design and implementation of a safe and literate software development environment free of charge along with associated training material to re-introduce, promote and apply sound engineering principles and best practises in the realm of software development in particular and information technology in general
.
2015-09-14 07:38 by trijezdci -
Changed line 3 from:
* Compliance with the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”''
to:
* Following the Einsteinian '''simplicity''' principle ''“as simple as possible, not any simpler.”''
Changed lines 10-11 from:
In the context of modern programming practise, if the omission of a feature is found to be reasonable and justified it should be considered, if its omission is found to be unreasonable and unjustified it should be rejected. Oversimplification is to be avoided.
to:
In the context of modern programming practise, if we found the omission of a feature to be reasonable and justified then we considered its removal. Conversely, if we found its omission to to be unreasonable and unjustified then we rejected its removal. We aimed to avoid oversimplification.
Changed lines 13-16 from:
A new feature may be considered for adoption if a clear need can be demonstrated and if it is found to be reasonable and consistent with the minimalist design philosophy. Particular emphasis should be on suitability for systems implementation and systems programming as well as interfacing to C.

When considering the addition of a feature, it must be looked at in the context of
the weight of the entirety of features, not in isolation. An imaginary baggage allowance should be observed, items may have to be removed to make space for others to be added. Feature creep is to be avoided.
to:
We considered a new feature for adoption if a clear need could be demonstrated and if we found it to be reasonable and consistent with the overall design philosophy. We put a particular emphasis on suitability for systems implementation and systems programming as well as interfacing to C. We aimed for the ability to replace C as a systems implementation language.

When considering
the addition of a feature, we looked at in the context of the weight of the entirety of features, not in isolation. We observed an imaginary baggage allowance, whereby items had to be removed to make space for others to be added. Our aim was to avoid feature creep.
Changed line 18 from:
If a certain practise is outdated, such as the use of octal numerals, then a feature that has no other use than to support that practise can no longer be justified and it must be removed without any regard for backwards compatibility of source code. Instead, a source to source translator tool should be seen as a suitable solution to backwards compatibility issues that arise from removal of outdated features.
to:
If a certain practise is outdated, such as the use of octal numerals, then a feature that has no other use than to support that practise can no longer be justified and consequently we removed it without any regard for backwards compatibility of source code. Instead, a source to source translator tool should be seen as a suitable solution to backwards compatibility issues that arise from removal of outdated features.