<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM7VanWyk</id>
	<title>WG211/M7VanWyk - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM7VanWyk"/>
	<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M7VanWyk&amp;action=history"/>
	<updated>2026-04-05T20:58:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>http://mw.hh.se/wg211/index.php?title=WG211/M7VanWyk&amp;diff=255&amp;oldid=prev</id>
		<title>Admin: 1 revision</title>
		<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M7VanWyk&amp;diff=255&amp;oldid=prev"/>
		<updated>2011-12-12T10:06:28Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:WG211]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Verifiable Composition of Grammars&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;August Schwerdfeger and Eric Van Wyk&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Abstract:&lt;br /&gt;
&lt;br /&gt;
One challenge in extensible languages arises in the composition of the&lt;br /&gt;
concrete syntax specifications for a host language and a collection of&lt;br /&gt;
(domain-specific) language extensions.  For this talk, these&lt;br /&gt;
specifications consist, as is to be expected, of context-free grammars&lt;br /&gt;
with each terminal symbol mapped to a regular expression, from which a&lt;br /&gt;
slightly-modified LALR(1) parser and context-aware scanner are&lt;br /&gt;
generated.  Traditionally, conflicts are detected in the parse-table&lt;br /&gt;
of the composed grammar when it is constructed, but this comes too&lt;br /&gt;
late as it may be a non-expert programmer that directs the language&lt;br /&gt;
tools to compose an eclectic set of language extensions chosen by the&lt;br /&gt;
programmer for a particular task.&lt;br /&gt;
&lt;br /&gt;
In this talk we discuss a modular analysis that is performed&lt;br /&gt;
independently by each extension designer on her extension (composed&lt;br /&gt;
alone with the host language).  If each extension passes this modular&lt;br /&gt;
analysis, then the language composed later by the non-expert&lt;br /&gt;
programmer will compile with no conflicts or lexical ambiguities.&lt;br /&gt;
Thus, extension writers can verify that their extension will safely&lt;br /&gt;
compose with others and, if not, fix the specification so that it&lt;br /&gt;
will.  This is possible due to the context-aware scanner&amp;#039;s lexical&lt;br /&gt;
disambiguation and a set of reasonable restrictions limiting the sort&lt;br /&gt;
of constructs that can be introduced by a language extension.  The&lt;br /&gt;
restrictions ensure that the states in the parse table can be&lt;br /&gt;
partitioned so that each state can be attributed to the host language&lt;br /&gt;
or a single language extension.&lt;br /&gt;
&lt;br /&gt;
* [[Media:vanwyk-wg09.pdf | vanwyk-wg09.pdf ]]: Slides&lt;br /&gt;
&lt;br /&gt;
==File Attachments== &lt;br /&gt;
&lt;br /&gt;
*[[Media:vanwyk-wg09.pdf | vanwyk-wg09.pdf]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>