[net.lang.mod2] Questions and Ambiguities

kendall@harvard.ARPA (Sam Kendall) (07/29/85)

Following are some questions on Modula-2.  I am doing a paper that
includes some discussion of this language.  Please help me if you can!

My information on Modula-2 is based on the "Report" in N. Wirth,
_Programming in Modula-2_, 2nd Edition, Springer-Verlag, 1983.

1.  Is there any newer report on the language?  There are clearly some
    ambiguities and omissions in this one.

2.  Runtime checking seems NOT to be mandated for arrays, pointers
    (NIL), subranges, variant records (assignment to tag), undefined
    value, dangling pointer, VAL to enum or char type.  Am I wrong
    here?

3.  Are there any compilers that implement runtime (or sohpisticated
    static) checking for the above or for anything else?

4.  Section 10.2: What does TSIZE(T, t1, t2, ...) mean?  What are t1,
    t2, ...?

5.  The null string "" is permitted by the syntax, but what is its
    type?  ARRAY [0..-1] of CHAR is not legal.

6.  Does SIZE(a[f(i)]) result in f() being called?  I assume not, but
    the Report doesn't mention this issue.

7.  Wirth says almost nothing about type transfer functions.  Is there
    anything that can be said about them that is guaranteed across all
    implementations, even their existence?

That's all for now.  Please reply by mail, and I will report to the net
if there is any interest.

----
Sam Kendall
Harvard University (also Delft Consulting Corp.)
{allegra | cmcl2 | ihnp4 | ut-sally}!harvard!kendall
kendall@harvard.HARVARD.EDU (old: kendall@harvard.ARPA)
kendall@harvard.BITNET, I think
Phone: (212) 243-8700