[Oberon] Easter eggs in Oberon
skulski at pas.rochester.edu
Tue Apr 14 01:43:04 CEST 2020
>> Perhaps the term should not be "undefined", but rather "unspecified".
> How would that be different?
I associate "undefined" with "Indeterminate", like in quantum mechanics. It means that the bit pattern would fluctuate and be different from case to case. The "unspecified" would be deterministic. Maybe I am reading too much. Maybe these two terms mean the same.
> 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.
I am not sure about WORD, but an unsigned integer would be nice.
>> 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.
Surprises can be avoided when we look at the RISC5 implementation. However, we have been warned that NW RISC5 compiler should not be taken as a reference. On the other hand, overflows and wrap-arounds are commonly used in FPGA programming to implement circular buffers. It would be surprising if BYTE was not the same.
More information about the Oberon