About finding the start symbol of a grammar

Eduardo Costa <ecosta.tmp@gmail.com>
Fri, 21 May 2021 03:49:43 -0700 (PDT)

          From comp.compilers

Related articles
About finding the start symbol of a grammar ecosta.tmp@gmail.com (Eduardo Costa) (2021-05-21)
Re: About finding the start symbol of a grammar 563-365-8930@kylheku.com (Kaz Kylheku) (2021-05-21)
Re: About finding the start symbol of a grammar DrDiettrich1@netscape.net (Hans-Peter Diettrich) (2021-05-21)
Re: About finding the start symbol of a grammar anton@mips.complang.tuwien.ac.at (2021-05-21)
Re: About finding the start symbol of a grammar drikosev@gmail.com (Ev. Drikos) (2021-05-22)
Re: About finding the start symbol of a grammar gah4@u.washington.edu (gah4) (2021-05-22)
| List of all articles for this month |

From: Eduardo Costa <ecosta.tmp@gmail.com>
Newsgroups: comp.compilers
Date: Fri, 21 May 2021 03:49:43 -0700 (PDT)
Organization: Compilers Central
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="65584"; mail-complaints-to="abuse@iecc.com"
Keywords: parse, question, comment
Posted-Date: 21 May 2021 09:46:22 EDT

Hey guys,


I've been lately dealing with a parser generator for LL grammars, and since
it's inception I've always been blindy assuming the first element read from
within the input file is going to be the start symbol or starting rule.


So I've been wondering all this time, just out of curiosity, if there exists a
method or algorithm to find out the start symbol of a given grammar?


I guess the answer is no.


While there would exist grammars we could recursively check to find out which
it's start symbol is (i.e.: it's the only rule that used the rest of them,
where checking every other resulted in dangling rules that weren't even called
in), there might be other grammars for which more than one rule yields full
coverage (all of these obviously defining different languages) and so leading
to ambiguity.


I only contemplate a simple coverage test, even though other techniques could
exist, again, all of them leading to a point where we couldn't ascertain if
one or the other is what the user meant.


So I'm wondering if this is even an issue in production-grade
parser-generators out there?


Regards,
[yacc and its descendants have an explicit %start declaration, usually defaulting to
the first rule in the file. -John]


Post a followup to this message

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