[Oberon] IMPORT Modules: why does order matter?
chris at cfbsoftware.com
Sun Mar 3 05:40:12 CET 2019
> -----Original Message-----
> From: Oberon [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of
> Andreas Pirklbauer
> Sent: Sunday, 3 March 2019 10:41 AM
> To: ETH Oberon and related systems
> Subject: [Oberon] IMPORT Modules: why does order matter?
> Now that the main Oberon-2 features are implemented, one could
> (relatively) easily create a version of the EO compiler that is
> *fully* backward compatible with the official Oberon-2 language
> spec, i.e. such that any legacy Oberon-2 program can be compiled
> without *any* change. Such a compiler would of course also have to
> add back the code that allows modules to be imported in any order.
> Most of it is done, but it s just not a high-priority item..
I admire your optimism but feel it is not justified, depending on what you mean by 'relatively' easily. While you might have implemented the main features that distinguished Oberon-2 from Oberon there are quite a few subtle differences that remain between Oberon and Oberon-07 (and consequently Oberon-2 which was a superset of Oberon). Many of these are summarised in the documents:
1. "Oberon at a Glance"
2. "Differences between Revised Oberon and Oberon"
3. "Porting the Oberon Compiler from Oberon to Oberon-07"
In my experience with Oberon-07 the statements in the latter document:
"... corrections of unsatisfactory properties of the original Oberon"
"All changes were made in the interest of regularity, simplicity, completeness, and well-structuredness"
has proven to be true. Consequently, IMO time would be better spent on refactoring the legacy apps to improve their quality rather than working on retrogressing to the original Oberon characteristics of Oberon-2. If (unlikely) there was a need to bring a large number of legacy apps up to date, then it would be worth developing a conversion tool to perform at least the more mundane modifications. This would be similar to what was done in earlier times with the development of various Pascal to Modula-2 and, later, Modula-2 to Oberon convertors.
More information about the Oberon