On Mon, 30 Sep 2013 15:55:14 -0400, John Gilmore wrote:
>
>[Pascal] is much concerned to interdict practices, e.g., GOTOs or
>unconditional branches, that it deems 'unstructured' or 'anarchic'.
> 
Pascal has GOTO.  Dismayingly, statement labels are numeric,
perhaps a legacy of FORTRAN (and ALGOL 60).  In my opinion, the
greatest value of GOTO is the longjump; the ability to exit a
nest of not only compounds, but also blocks and function calls.
I pine for this facility in Rexx, POSIX shell, and C.

One could synthesize the longjump by a call to a function
declared nested in an outer function and containing only
a GOTO.  Alas, nested function declarations are out of style,
in C, Modula2, ...; possibly because of the induced requirement
that a reference to a function have two pointers; one to the
entry point, the other to the stack frame of the statically
enclosing scope.

ALGOL 60 has its warts:

o Dangling ELSE (An Unexpected Journey and a strong argument
  for strong closure).

o The requirement that an integer actual parameter contain both
  a numeric attribute and a label attribute.

o The implied comment after END coding pitfall.

o ... (Name your favorite.)

Pascal has its warts:

o The requirement to predeclare GOTO labels; a consequence
  of single-pass compilation.

o Byzantine operator precedence, most probably a consequence
  of letting the 60-bit architecture of the CDC 6600 limit the
  number of nonterminal symbols in its grammar.

o That the standard type identifiers are not reserved words.  I'm
  worried by this far less than others.  If the programmer chooses
  to redeclare "integer" that's his bad programming convention,
  not to be interdicted by a nanny language.

o ... (Name your favorite.)

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to