[Oberon] Clarifying type compatibility in Oberon-07

August Karlstrom fusionfile at gmail.com
Wed Oct 4 21:00:52 CEST 2017


On 2017-10-04 18:11, Jörg wrote:
> In my point of view Appendix A for Oberon-07 would look like this.[...]

(Your strikethroughs and colors don't show in ASCII so I cannot include 
any quoted context.)

Our goal in this thread is to reach a consensus about how a conforming 
Oberon-07 compiler should behave (when it comes to type compatibility) 
and document it using appendix A in the Oberon-2 report as a template. 
Note also that Niklaus Wirth has said that his implementation (the 
PO2003 compiler) should not be taken as a reference for compiler developers.

* LONGINT is not in the report so it should be dropped.

* Since integers and integer variables can be assigned to byte variables 
the type inclusion concept makes no sense in Oberon-07. It should be 
dropped from the appendix.

* Under "Assignment compatible" you don't mention assignment of open arrays.

* Paragraph 4 of "Array compatible" (ARRAY n OF BYTE...) must be a 
compiler extension since it cannot be deduced from the language report.

You never mention structural equivalence in assignment of expressions of 
array or procedure type, so the question is if that is an undocumented 
"language extension" in the PO2003 compiler.

Any more comments?


-- August


More information about the Oberon mailing list