[Oberon] 30th anniversary of Oberon

Joerg joerg.straube at iaeth.ch
Fri Jan 3 17:42:26 CET 2020


The first Oberon system on Ceres 1 was programmed in Oberon 87.
The Oberon compiler (and Oberon system) evolved gradually to Oberon 90.

Jörg

> Am 03.01.2020 um 09:44 schrieb "rochus.keller at bluewin.ch" <rochus.keller at bluewin.ch>:
> 
> @ 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
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon



More information about the Oberon mailing list