Advanced

Providing rapid feedback in generated modular language environments adding error recovery to scannerless generalized-LR parsing

Kats, Lennart C.L.; de Jonge, Maartje; Söderberg, Emma LU and Visser, Eelco (2009) OOPSLA'09: 24th Annual ACM Conference on Object-Oriented Programming, systems, Languages and Applications In OOPSLA'09: Proceedings of the 24th International Conferemce on Object-Oriented Programming, systems, Languages & Applications 44. p.445-464
Abstract
Integrated development environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language.

A heavy burden lies on developers of new languages to provide adequate IDE support. Code generation techniques provide a viable, efficient approach to semi-automatically produce IDE plugins. Key components for the realization of plugins are the language's grammar and parser.

For embedded languages and language extensions, constituent IDE plugin modules and their grammars can be combined. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the full set of context-free grammars, which is closed under composition, and hence can... (More)
Integrated development environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language.

A heavy burden lies on developers of new languages to provide adequate IDE support. Code generation techniques provide a viable, efficient approach to semi-automatically produce IDE plugins. Key components for the realization of plugins are the language's grammar and parser.

For embedded languages and language extensions, constituent IDE plugin modules and their grammars can be combined. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the full set of context-free grammars, which is closed under composition, and hence can parse language embeddings and extensions composed from separate grammar modules.

To apply this algorithm in an interactive environment, this paper introduces a novel error recovery mechanism, which allows it to be used with files with syntax errors -- common in interactive editing. Error recovery is vital for providing rapid feedback in case of syntax errors, as most IDE services depend on the parser -- from syntax highlighting to semantic analysis and cross-referencing.

We base our approach on the principles of island grammars, and automatically generate new productions for existing grammars, making them more permissive of their inputs. To cope with the added complexity of these grammars, we adapt the parser to support backtracking.

We evaluate the recovery quality and performance of our approach using a set of composed languages, based on Java and Stratego. (Less)
Please use this url to cite or link to this publication:
author
organization
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
in
OOPSLA'09: Proceedings of the 24th International Conferemce on Object-Oriented Programming, systems, Languages & Applications
volume
44
pages
445 - 464
publisher
The Association for Computing Machinery (ACM)
conference name
OOPSLA'09: 24th Annual ACM Conference on Object-Oriented Programming, systems, Languages and Applications
external identifiers
  • WOS:000271211300025
language
English
LU publication?
yes
id
e06c068a-114b-4b87-bd09-51640f216471 (old id 1413618)
date added to LUP
2009-06-04 10:16:05
date last changed
2016-04-16 08:53:03
@misc{e06c068a-114b-4b87-bd09-51640f216471,
  abstract     = {Integrated development environments (IDEs) increase programmer productivity, providing rapid, interactive feedback based on the syntax and semantics of a language.<br/><br>
A heavy burden lies on developers of new languages to provide adequate IDE support. Code generation techniques provide a viable, efficient approach to semi-automatically produce IDE plugins. Key components for the realization of plugins are the language's grammar and parser.<br/><br>
For embedded languages and language extensions, constituent IDE plugin modules and their grammars can be combined. Unlike conventional parsing algorithms, scannerless generalized-LR parsing supports the full set of context-free grammars, which is closed under composition, and hence can parse language embeddings and extensions composed from separate grammar modules.<br/><br>
To apply this algorithm in an interactive environment, this paper introduces a novel error recovery mechanism, which allows it to be used with files with syntax errors -- common in interactive editing. Error recovery is vital for providing rapid feedback in case of syntax errors, as most IDE services depend on the parser -- from syntax highlighting to semantic analysis and cross-referencing.<br/><br>
We base our approach on the principles of island grammars, and automatically generate new productions for existing grammars, making them more permissive of their inputs. To cope with the added complexity of these grammars, we adapt the parser to support backtracking.<br/><br>
We evaluate the recovery quality and performance of our approach using a set of composed languages, based on Java and Stratego.},
  author       = {Kats, Lennart C.L. and de Jonge, Maartje and Söderberg, Emma and Visser, Eelco},
  language     = {eng},
  pages        = {445--464},
  publisher    = {ARRAY(0xb0d2538)},
  series       = {OOPSLA'09: Proceedings of the 24th International Conferemce on Object-Oriented Programming, systems, Languages & Applications},
  title        = {Providing rapid feedback in generated modular language environments adding error recovery to scannerless generalized-LR parsing},
  volume       = {44},
  year         = {2009},
}