[Oberon] Null record fieldlists (was: Oberon Wiki)

Frans-Pieter Vonck fp at vonck.nl
Mon Jan 10 00:26:54 CET 2011

Thanks Chris,

your syntax diagrams are very hepfull. Brings back recollections of my
first introduction in programming in 1986 with the "Silver Book" of Wirth
and Jensen. Although at that time I found it quiet intimidating. In the
lectures the diagram was presented as something that you had to memorize
before you could make your first program. Gues computer time at the VAX
was still precious so they had to find ways to fill the curiculum.
Nowadays we have a shorter EBNF thanks to Niklaus efforts. Unluckely for
Oberon computer time has become to inexpensive.


> It is true that the additional semicolon is superfluous in Oberon-2 but it
> is not an error. Oberon-2 allows null fieldlists (i.e. ";") similarly to
> the
> way null statements are allowed.
>>Actually the Oberon07 compiler of Astrobe rendered the following error.
>> 5   36:  ident missing
> That error results because the compiler is expecting the start of another
> fieldlist which is an 'ident'.
> As well as some obvious syntax changes from Oberon to Oberon-07 there are
> some much more subtle ones. This error report results from one of those.
> Oberon-07 no longer allows null fieldlists in records. This is a
> consequence
> of this syntax rule in the EBNF:
> The EBNF for Oberon is:
>   FieldList = [IdentList : type]
> Now in Oberon it is:
>   FieldList = IdentList : type
> where the [] in EBNF indicate that an item is optional.
> I find issues like this easier to understand by following the trail
> through
> syntax diagrams rather than EBNF. The syntax diagrams for Oberon-07 are on
> my website at:
> http://www.cfbsoftware.com/astrobe/Oberon-07.aspx
> Regards,
> Chris Burrows
> CFB Software
> Astrobe v3.2: ARM Oberon-07 Development System
> http://www.astrobe.com
> --
> 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