[Oberon] Easter eggs in Oberon

Chris Burrows chris at cfbsoftware.com
Tue Apr 14 00:28:04 CEST 2020

> -----Original Message-----
> From: Oberon [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of
> Wojciech
> Sent: Tuesday, 14 April 2020 7:06 AM
> To: ETH Oberon and related systems
> Subject: Re: [Oberon] Easter eggs in Oberon
> Joerg:
> >you could apply this to BYTE: if the result is not in the range 0..255 it
> just wraps around or overflows or underflows, but is not undefined.
> Perhaps the term should not be "undefined", but rather "unspecified".

How would that be different?

> I would ask, why do we need BYTE as an integer subtype (or integer
> Why do we need math on BYTE values? BYTE math is implemented with 32-bit
> integer math. So why not use the full INTEGER for calculations? If you
> to sub-range an integer to (0..255), use MOD.

Possibly. However, to be consistent we would then need to have WORD instead
of INTEGER to cater for values that did not represent numeric quantities.
That language experiment was conducted in Modula-2 but proved to be too
cumbersome in practice when used over a period of 10+ years.

> VAR b: BYTE;
> b := 255; b := b+1; (* now b = 0; what we "somehow know" even though
> unspecified *)

Don't assume that is so unless you like surprises.


More information about the Oberon mailing list