Related articles |
---|
Deep expression chain performance borucki.andrzej@gmail.com (Andy) (2023-04-25) |
Re: Deep expression chain performance anton@mips.complang.tuwien.ac.at (2023-04-26) |
Re: Deep expression chain performance gah4@u.washington.edu (gah4) (2023-04-26) |
Re: Deep expression chain performance 864-117-4973@kylheku.com (Kaz Kylheku) (2023-04-27) |
Re: Deep expression chain performance anton@mips.complang.tuwien.ac.at (2023-04-27) |
From: | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
Newsgroups: | comp.compilers |
Date: | Thu, 27 Apr 2023 06:17:51 GMT |
Organization: | Institut fuer Computersprachen, Technische Universitaet Wien |
References: | 23-04-012 23-04-015 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="11079"; mail-complaints-to="abuse@iecc.com" |
Keywords: | parse, performance |
Posted-Date: | 27 Apr 2023 21:56:22 EDT |
Kaz Kylheku <864-117-4973@kylheku.com> writes:
>ISO C specifies its grammar in an obtusely verbose way, similar to the
>above. The reason is that it makes the grammar unambiguous, meaning
>that it does not require any annotation or external remarks about
>ambiguities having to be resolved by a certain associativity or
>precedence.
They were not that keen on eliminating ambiguity. The classical
ambiguous grammar rule is there:
|selection-statement:
| if ( expression ) statement
| if ( expression ) statement else statement
| switch ( expression ) statement
They resolve that ambiguity in prose:
|An else is associated with the lexically nearest preceding if that is
|allowed by the syntax.
C is not alone in this approach.
As for why they chose to deal with expressions through BNF, my guess
is that it allowed them to split the expression syntax into different
sections, each with their own piece of the grammar, rather than having
a section on the syntax that presents an ambuguous BNF and resolves
the ambiguity in prose (and by necessity has to cover the whole
expression syntax), and then having sections on the semantics of the
various expression sub-syntaxes.
- anton
--
M. Anton Ertl
anton@mips.complang.tuwien.ac.at
http://www.complang.tuwien.ac.at/anton/
Return to the
comp.compilers page.
Search the
comp.compilers archives again.