Re: How do you create a grammar for a multi-language language?

Roger L Costello <costello@mitre.org>
Sat, 5 Mar 2022 22:29:37 +0000

          From comp.compilers

Related articles
How do you create a grammar for a multi-language language? costello@mitre.org (Roger L Costello) (2022-03-03)
Re: How do you create a grammar for a multi-language language? costello@mitre.org (Roger L Costello) (2022-03-05)
Re: How do you create a grammar for a multi-language language? ak@akkartik.com (Kartik Agaram) (2022-03-05)
Re: How do you create a grammar for a multi-language language? gah4@u.washington.edu (gah4) (2022-03-05)
Re: How do you create a grammar for a multi-language language? DrDiettrich1@netscape.net (Hans-Peter Diettrich) (2022-03-06)
RE: How do you create a grammar for a multi-language language? christopher.f.clark@compiler-resources.com (Christopher F Clark) (2022-03-06)
Re: How do you create a grammar for a multi-language language? gah4@u.washington.edu (gah4) (2022-03-06)
RE: How do you create a grammar for a multi-language language? costello@mitre.org (Roger L Costello) (2022-03-06)
[4 later articles]
| List of all articles for this month |

From: Roger L Costello <costello@mitre.org>
Newsgroups: comp.compilers
Date: Sat, 5 Mar 2022 22:29:37 +0000
Organization: Compilers Central
References: 22-03-004
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="40565"; mail-complaints-to="abuse@iecc.com"
Keywords: parse, question, comment
Posted-Date: 05 Mar 2022 18:27:13 EST
Content-Language: en-US

Kartik Agaram wrote:




    * I'd re-ask the question in the context of the concrete languages you're
considering.


I am working with a team to develop a new language and our current thinking is
that the language will use the XPath language for navigating through documents
and the CSS language for expressing sets of match/action pairs.


This idea of multi-language languages is very common within the XML community.
For example, the XSLT language uses (hosts) the XPath language. Here is an
excerpt to illustrate:


select="/Bookstore/Book[1]/Title"


The expression /Bookstore/Book[1]/Title is an XPath expression, the other
parts are XSLT. So, the format of the select statement is:


select="XPath"


See how XSLT hosts XPath? That is, one language (XSLT) is using another
language (XPath).


Another XML language called XML Schema hosts two languages: the regex language
and the XPath language.


How do compiler experts create grammars for multi-language languages?


/Roger


From: Kartik Agaram <ak@akkartik.com>
Sent: Saturday, March 5, 2022 4:58 PM
Subject: [EXT] Re: How do you create a grammar for a multi-language language?


The first way is unlikely to work. Inlining one grammar into another is
overwhelmingly likely to result in garbage. If you're lucky it'll recognize
one of the languages and ignore the productions of the other. More likely
it'll recognize a single language that's an uncontrollable melange of both. In
the worst case it'll seem to work but fail in strange corner cases.


In general, I think you under-estimate the difficulty of this problem, and how
easy it is for two languages to be fundamentally incompatible. The first
question isn't "what's the cleanest way to do this for arbitrary languages?"
but "is it even possible for these two languages?" followed by "is it worth
the trouble?"


So I'd re-ask the question in the context of the concrete languages you're
considering.
[XSLT is written in XML. Conceptually at least, first you parse the XML using
an XML grammar, then you parse the XSLT using the XSLT grammar. -John]


Post a followup to this message

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