[Oberon] 30th anniversary of Oberon
rochus.keller at bluewin.ch
rochus.keller at bluewin.ch
Fri Jan 3 15:43:43 CET 2020
@ Joerg Straube
Very interesting, thank you.
>From your findings I conclude that these languages are not compatible, i.e. source code written in Oberon 87 cannot simply be recompiled with an Oberon 90 compiler; there are different key words, statements, built-in procedures and import/export concepts.
I wonder whether the Oberon system was first implemented in Oberon 87 and then migrated to Oberon 90, or whether the authors gradualy modified the language during implementation and the result was an Oberon system implemented in what later was specified as Oberon 90. Does anyone have information about this? The HOPL-3 paper gives no indication besides that the first Oberon system was released in 1989 and took about two years development time, and it was used for courses from 1990.
Oberon 90 was officially published here https://doi.org/10.3929/ethz-a-000561428. Didn's find an official English publication so far (just the copy from Wirth's homepage).
Best
R.
_______________________________
From: Joerg
Sent on: Fri, 03 Jan 2020 14:40:47 +0100
To: ETH Oberon and related systems
Cc:
Subject: Re: [Oberon] 30th anniversary of Oberon
I tried to quickly collect the differences of Oberon87 and Oberon90. Perhaps I missed some:
1) What is exported?
87: mentioned in DEFINITION
90: declaration marked with *
2) What is a string?
87: enclosed by “ “ or ‘ ‘
90: enclosed by “ “
3) reserved words
87: 31+CLOSE, DEFINITION, IMPLEMENTATION
90: 31+MODULE
4) predefined identifier
87: 29 + BYTE, ADR, LSH, ROT
90: 29 + BYTE (this is a typo in the report!!)
5) Module SYSTEM
87: no
90: yes (ADR, LSH, ROT, BYTE, BIT, VAL, NEW)
6) WHILE with ELSIF
87: yes
90: no
7) formal parameter for any actual parameter
87: ARRAY OF BYTE
90: ARRAY OF SYSTEM.BYTE
8) LEN(v) equivalent to LEN(v, 0)
87: no
90: yes
9) alias import
87: IMPORT M : M0;
90: IMPORT M := M0;
br
Jörg
More information about the Oberon
mailing list