[Oberon] Clarifying type compatibility in Oberon-07
Luca Boasso
luke.boasso at gmail.com
Fri Oct 6 05:52:32 CEST 2017
Dear all,
Last year I was exchanging emails with Prof. Wirth to discuss Oberon-07's
type system.
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
Oberon-2.
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/
OberonRISC5
In particular here is the TypeRules.txt file: https://raw.githubusercontent.
com/lboasso/OberonRISC5/master/TypeRules.txt
And here is the diff of the changes I made to ORP.Mod:
https://github.com/lboasso/OberonRISC5/commit/3f5b5c3d5fbf632e82902e9fbbaf93
ef8285e577#diff-ec269f2dcbbad1d06c87c72169d0fcf2
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.
Regards,
Luca Boasso
On Thu, Oct 5, 2017 at 10:48 AM, August Karlstrom <fusionfile at gmail.com>
wrote:
> 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
> oranges.
>
>
>
> -- August
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20171005/d4cb49dd/attachment.html>
More information about the Oberon
mailing list