[Oberon] Clarifying type compatibility in Oberon-07
luke.boasso at gmail.com
Fri Oct 6 05:52:32 CEST 2017
Last year I was exchanging emails with Prof. Wirth to discuss Oberon-07's
That discussion lead to updates to the compiler (see Wirth's news.txt:
20160508, 20160501, 20160418 and 20160410).
Recently, I had similar private conversations with Andreas Pirklbauer.
I would like to present here, to a wider audience, what I think Oberon-07
type rules should be, with a set of fixes to ORP.Mod to reflect these rules.
The type rules are adapted from the Appendix A of the Oberon-2 report, and
are an attempt to marry Oberon-07 new rules with the proven ones of
The fixes to ORP.Mod are as minimal as possible and are aimed to weed out
inconsistencies of the current implementation.
I have tried these changes for the last half year with no issues, I will
later share a set of tests that I made to verify the implementation.
I think that discussing the rules in plain English is not enough, because
different people have different interpretations. For this reason I ask you
to look at the changes in the code.
I have added comments like "(* Type Rule X *)" above the code that handles
the implementation of Rule X from the TypeRules.txt file.
I have created a new GitHub repository to track the changes and share them.
Please fell free to contribute, the link is: https://github.com/lboasso/
In particular here is the TypeRules.txt file: https://raw.githubusercontent.
And here is the diff of the changes I made to ORP.Mod:
I hope this would help the current discussion. My hope is to reach a
consensus, that could be eventually blessed by Prof. Wirth.
I do not claim to have found the final rules, but this could be a step in
the right direction with your feedback.
On Thu, Oct 5, 2017 at 10:48 AM, August Karlstrom <fusionfile at gmail.com>
> On 2017-10-05 19:05, Jörg wrote:
>> As with the pointer assignment discussed earlier, the structural
>> equivalence for procedures variables is rather a by-product.
> But sometimes the by-product is something you don't want. Name equivalence
> has its semantical advantages when you want to prevent a mix of apples and
> -- August
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Oberon