Re: syntax extension, was Why context-free?

glen herrmannsfeldt <gah@ugcs.caltech.edu>
2 Nov 2005 22:09:27 -0500

          From comp.compilers

Related articles
Why context-free? nmm1@cus.cam.ac.uk (2005-10-06)
Re: Why context-free? gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-10-09)
Re: Why context-free? nmm1@cus.cam.ac.uk (2005-10-13)
Re: syntax extension, was Why context-free? toby@telegraphics.com.au (toby) (2005-11-01)
Re: syntax extension, was Why context-free? nmm1@cus.cam.ac.uk (2005-11-01)
Re: syntax extension, was Why context-free? 148f3wg02@sneakemail.com (Karsten Nyblad) (2005-11-01)
Re: syntax extension, was Why context-free? gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-11-02)
Re: syntax extension, was Why context-free? haberg@math.su.se (2005-11-02)
Re: syntax extension, was Why context-free? toby@telegraphics.com.au (toby) (2005-11-04)
Re: syntax extension, was Why context-free? henry@spsystems.net (2005-11-26)
Re: syntax extension, was Why context-free? haberg@math.su.se (2005-11-27)
Re: syntax extension, was Why context-free? mpah@thegreen.co.uk (2005-12-08)
Re: syntax extension, was Why context-free? rfigura@erbse.azagtoth.de (Robert Figura) (2005-12-15)
[2 later articles]
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: 2 Nov 2005 22:09:27 -0500
Organization: Compilers Central
References: 05-10-053 05-10-068 05-10-075 05-11-006 05-11-013
Keywords: design

Nick Maclaren wrote:
(snip)
(the moderator wrote)


> [You keep mentioning your failure to write a correct perl program on
> the first try, but I can't figure out what conclusion we're supposed
> to draw.


    (snip)


  > I don't think my first
> perl program worked either, nor did my first Lisp, C, Basic, Algol 60,
> PL/I, Fortran, or Varian 620 assembler program, but I don't think it
> was the languages' fault. (Well, maybe for C.)


I think one is that some languages make it easier for the compiler to
recognize when you did something wrong. C is not one of those
languages.


One Fortran feature that I still remember from watching so many
beginning programmers run into it is the ability to pass a function
address to a subroutine or function. It is easy for beginning
programmers to forget (as in not ever realize) that arrays must be
dimensioned in subroutines in addition to the calling program. If you
forget and only use the array on the right side of assignment
statements there is no compilation error. Fortran instead assumes it
is being passed a function address and executes the contents of the
array.


I believe that more language designers are recognizing the problem and
designing languages to reduce it. Also, more compilers issue warnings
for legal but confusing constructs, though sometimes I am not so happy
with those warnings.


-- glen


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.