Related articles |
---|
Layout syntax haberg@matematik.su.se (2003-12-03) |
Re: Layout syntax joachim.durchholz@web.de (Joachim Durchholz) (2003-12-08) |
Re: Layout syntax haberg@matematik.su.se (2003-12-13) |
Re: Layout syntax cdc@maxnet.co.nz (Carl Cerecke) (2003-12-13) |
Re: Layout syntax joachim.durchholz@web.de (Joachim Durchholz) (2003-12-14) |
Re: Layout syntax haberg@matematik.su.se (2003-12-20) |
Re: Layout syntax joachim.durchholz@web.de (Joachim Durchholz) (2003-12-21) |
Re: Layout syntax haberg@matematik.su.se (2003-12-23) |
Re: Layout syntax joachim.durchholz@web.de (Joachim Durchholz) (2003-12-27) |
Re: Layout syntax haberg@matematik.su.se (2004-01-02) |
[10 later articles] |
From: | Carl Cerecke <cdc@maxnet.co.nz> |
Newsgroups: | comp.compilers |
Date: | 13 Dec 2003 21:00:17 -0500 |
Organization: | TelstraClear |
References: | 03-12-016 03-12-060 |
Keywords: | syntax, errors |
Posted-Date: | 13 Dec 2003 21:00:17 EST |
Joachim Durchholz wrote:
> Having both indentation and structured statements is redundant. In
> other words, the indentation may be misleading about the real program
> structure, with either the indentation structure or the program
> structure being wrong. I had my share of such errors when I learned
> programming; today, I'm still spending a lot of time to keep
> indendation and program structure consistent. Using indentation right
> from the beginning would eliminate the redundancy, and spare a lot of
> time and frustration.
Let me just add to this by saying that syntax error recovery is more
difficult in a language where structure is ignored, and blocks are
explicitly delimited (by, say { and }). Consider what happens, for
example, when a closing delimiter is missing. Often a bunch of text is
parsed in the wrong context, and when an error does occur, it can be
difficult to figure out what needs to be done to recover from it.
Languages like Pascal, where procedures can be nested, are
particularly difficult. Java and C aren't quite so bad, as
methods/functions can't be nested, but the problem still arises.
In contrast, python, where the indentation *is* the structure, any
incorrect structure is immediately seen because it is directly visible
in the indentation. After all, if you are going to indent your code to
make it easy to read, you might as well use it as structure and chuck
out the block delimiters. I must admit, when I first heard indentation
was significant in python I thought "ugh!". Then I used it. It feels
odd (dangerous even!) at first, but when you get used to it, you don't
like to go back to those pointless block delimiters.
Cheers,
Carl.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.