[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