[Oberon] Clarifying type compatibility in Oberon-07

Diego Sardina dsar at eml.cc
Fri Oct 6 20:08:20 CEST 2017


On Fri, Oct 6, 2017, at 06:32 PM, Luca Boasso wrote:
> I have found and old email where I asked Prof. Wirth the following:
> 
> "I would like to know the reasoning behind the departure from array name 
> equivalence in favour of array structural equivalence. 
> i.e  these two types are equivalent in Oberon-07 but not in Oberon-90
> 
> TYPE A = ARRAY 3 OF INTEGER; 
>           B = ARRAY 3 OF INTEGER; 
>      
> Could you explain why you decided to change the language in this regard?"
> 
> He replied saying that he does not remember the the exact circumstances, as the change was several years ago. 
> He continued that the most obvious reason is that one needs less often to declare named types.

During 2008 Wirth was experimenting structural equivalence in the case
of arrays.

Oberon-07 report of 1.11.2008 had this exception in 9.1. Assignments:

---
2. Arrays must have the same element type, and the length of the
destination array must not be less than the length of the source array.
---

This sentence was changed often in that period, maybe he was
experimenting also structural equivalence between procedure variables.

Later this sentence was removed, but he didn't update the compiler (I
guess).


> So I agree with Артур Ефимов, probably Wirth will update the language report soon.

I really hope that won't happen. If one wants structural equivalence
then there is Modula-3.


--
Diego Sardina



More information about the Oberon mailing list