[Oberon] Case statements containing base type labels

August Karlstrom fusionfile at gmail.com
Mon Aug 28 18:47:33 CEST 2023

On 2023-08-28 14:19, Paul Reed wrote:
> So I think the answer to the original question is that *in the reference 
> implementation, not the report* it is well-defined, and the order does 
> matter: it's a cascaded if...then...else of type tests;
> However that's perhaps against the original spirit of CASE, and what it 
> *should* be in general is perhaps what Joerg said, the base type case is 
> effectively ELSE, and might even preferably be implemented that way...

"NO, NO!

He should look only at the Oberon-Report. This is the definitive 
document. But never the compiler! Oberon-Users do not have access to the 
compiler source.

The very idea of a high-level language was that it must not be defined 
with reference to a computer (or compiler), but be clearly defined as an 
abstract machine, the language report. I am afraid that this notion got 
lost over the past decades, where in case of doubt one does not analyze 
the situation, but simply, due to interactive usage, try and try again. 
Also, the  "open source" is a terrible promoter of deserting this most 
useful idea. Another consequence is that "everyone" creates his own 
compiler (language?) version, compromising the very idea of a common 
language serving communication.

Please do not consider my compiler as the definition of Oberon, and in 
case of doubt read the Report. It is the privilege of a report to leave 
certain constructs undefined. In this case a user should simply avoid 
using the (undefined) feature."

(Words of wisdom from Niklaus Wirth)



More information about the Oberon mailing list