Re: 4GL language design, was Writing a recursive descent parser in C

spinoza1111@yahoo.com (Edward G. Nilges)
9 Dec 2001 22:15:27 -0500

          From comp.compilers

Related articles
Writing a recursive descent parser in C bilbo@volcanomail.com (2001-11-29)
Re: Writing a recursive descent parser in C spinoza1111@yahoo.com (2001-12-03)
Re: Writing a recursive descent parser in C lingolanguage@hotmail.com (Bill Rayer) (2001-12-07)
Re: 4GL language design, was Writing a recursive descent parser in C spinoza1111@yahoo.com (2001-12-09)
Re: 4GL language design, was Writing a recursive descent parser in C alexc@world.std.com (2001-12-11)
Re: 4GL language design, was Writing a recursive descent parser in C lingolanguage@hotmail.com (Bill Rayer) (2001-12-11)
Re: 4GL language design, was Writing a recursive descent parser in david.thompson1@worldnet.att.net (David Thompson) (2001-12-27)
Re: 4GL language design, was Writing a recursive descent parser in C pcc@ecet.vtc.edu (Peter) (2001-12-29)
Re: 4GL language design, was Writing a recursive descent parser in C rajat@austin.rr.com (Rajat Datta) (2001-12-29)
| List of all articles for this month |

From: spinoza1111@yahoo.com (Edward G. Nilges)
Newsgroups: comp.compilers
Date: 9 Dec 2001 22:15:27 -0500
Organization: http://groups.google.com/
References: 01-11-146 01-12-008 01-12-020
Keywords: design, parse, comment
Posted-Date: 09 Dec 2001 22:15:27 EST

"Bill Rayer" <lingolanguage@hotmail.com> wrote in message news:01-12-020...
> Dear Newsgroup
>
> Edward G. Nilges <spinoza1111@yahoo.com> wrote in message
> > bilbo@volcanomail.com (Antoine Lec.) wrote...
> >
> > > Given a free-context grammar, I'm trying to write a recursive descent
> > > parser for this grammar, with a minimum of function:
>
> [...interesting stuff deleted...]
>
> > misunderstanding is a sad waste of the human spirit), but thanks to
> > the MIS anti-intellectualism, which dismisses compiler design theory
> > as a waste of time, "packages" still emerge based on pathological
> > programming languages.
>
> I'm interested that some 4GLs mix up the scanning and parsing stages.
> What 4GLs do you consider to be most deficient in this way? And what


Most have been fortunately dropped from use, but a good example might
be various flavors of Basic implemented in the 1970s for a range of
minicomputers. The use of postfix type characters by older Basics and
as implemented in these products is one confusion of the scanning and
parsing phases because the handling of the postfix type operator
belongs in no clear and decidable sense to neither the scanner or the
parser. Because the postfix type is "applied to" the identifier, it
is arguably an operator which the parser should handle, but the
scanner needs to see it in order to construct a good symbol table (A
<> A$.)


The irony is that in the 1970s, these languages were presented by
marketeers as superior to genuine programming languages and as
replacements for programmers. This unethical marketing practice
continues today in various packages which it might not be safe for me
to name.


> do you consider the most pathological languages? I'm not trying to
> start a religious war here, I'm interested in language design - good
> and bad!


My view is that the Algol 60 team discovered a reality about applied
mathematics (of computation and programming) at least as important as
John Nash's discovery that there are win-win solutions to games with n
players where n>2, and that the surviving members of the Algol 60 team
should win the Nobel prize in economics. I am serious about this. Mr
Nash, as described in Sylvia Nasar's 1999 book A BEAUTIFUL MIND,
discovered Nash Equilibrium in the early 1950s but was never credited
until 1993, partly owing to his schizophrenia. While to my knowledge
Dijkstra, Naur et al. all kept their toys in the attic, because of
American dominance in the computer business these guys have never
received due recognition.


The Nobel would have to be in economics in part because there is no
Nobel in math, because the mathematics they discovered was applied,
and because knowledge of how to program has had a primarily economic
effect. But it is of significance n>=N/K where N is the significance
of John Nash's discovery and K is a small constant (it is not as
significant as Nash equilibrium.)


Therefore any language which does not at least pay a courtesy call on
Algol's block structure is in my view pathological. I do not have a
hell of a lot of experience in concurrent programming so weight my
view accordingly and in logic programming the issue is not as
important. It appears to me that block structure extends nicely to
concurrence if you replace the block/statement sequencing operator
(semicolon in Pascal, comma in C) with a character ~ that in A~B means
"I do not care in what order you execute A and B." In cases where you
can describe the result, block structure seems to me reappear in a
subdescription facility.
[Alan Perlis, who was my thesis advisor, was on the Algol 60 committee
and the only thing he ever said they invented was call-by-name which was
supposed to be call-by-reference only they goofed. I'd be astonished
if stacks and recursion weren't widely known and used in the 1950s, even
though most programs were still written in assembler. -John]


Post a followup to this message

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