Skip to main content

Lund University Publications

LUND UNIVERSITY LIBRARIES

Practical scope recovery using bridge parsing

Söderberg, Emma LU orcid ; Ekman, Torbjörn LU and Hedin, Görel LU orcid (2009) SLE08, 1st International Conference on Software Engineering 5452. p.95-113
Abstract
Interactive development environments (IDEs) increase programmer productivity, but unfortunately also the burden on language implementors since sophisticated tool support is expected even for small domain-specific languages. Our goal is to alleviate that burden, by generating IDEs from high-level language specifications using the JastAdd meta-compiler system. This puts increased tension on scope recovery in parsers, since at least a partial AST is required by the system to perform static analysis, such as name completion and context sensitive search.



In this paper we present a novel recovery algorithm called bridge parsing,

which provides a light-weight recovery mechanism that complements existing

... (More)
Interactive development environments (IDEs) increase programmer productivity, but unfortunately also the burden on language implementors since sophisticated tool support is expected even for small domain-specific languages. Our goal is to alleviate that burden, by generating IDEs from high-level language specifications using the JastAdd meta-compiler system. This puts increased tension on scope recovery in parsers, since at least a partial AST is required by the system to perform static analysis, such as name completion and context sensitive search.



In this paper we present a novel recovery algorithm called bridge parsing,

which provides a light-weight recovery mechanism that complements existing

parsing recovery techniques. An initial phase recovers nesting structure in

source files making them easier to process by existing parsers. This enables

batch parser generators with existing grammars to be used in an interactive

setting with minor or no modifications.



We have implemented bridge parsing in a generic extensible IDE for JastAdd

based compilers. It is independent of parsing technology, which we validate by showing how it improves recovery in a set of typical interactive editing

scenarios for three parser generators: ANTLR (LL(variable lookahead) parsers), LPG (LALR(k) parsers), and Beaver (LALR(1) parsers). ANTLR and LPG both contain sophisticated support for error recovery, while Beaver requires manual error productions. Bridge parsing complements these techniques and yields better recovery for all these tools with only minimal changes to existing grammars. (Less)
Please use this url to cite or link to this publication:
author
; and
organization
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
host publication
Software Language Engineering / Lecture notes in computer science
volume
5452
pages
95 - 113
publisher
Springer
conference name
SLE08, 1st International Conference on Software Engineering
conference location
Toulouse, France
conference dates
2008-09-29 - 2008-09-30
external identifiers
  • wos:000265590700007
  • scopus:67649949493
ISSN
0302-9743
1611-3349
DOI
10.1007/978-3-642-00434-6_7
project
Embedded Applications Software Engineering
language
English
LU publication?
yes
id
f3503647-7c3c-4413-a2ef-a38268aecfad (old id 1275006)
date added to LUP
2016-04-01 12:00:17
date last changed
2024-01-08 04:40:39
@inproceedings{f3503647-7c3c-4413-a2ef-a38268aecfad,
  abstract     = {{Interactive development environments (IDEs) increase programmer productivity, but unfortunately also the burden on language implementors since sophisticated tool support is expected even for small domain-specific languages. Our goal is to alleviate that burden, by generating IDEs from high-level language specifications using the JastAdd meta-compiler system. This puts increased tension on scope recovery in parsers, since at least a partial AST is required by the system to perform static analysis, such as name completion and context sensitive search.<br/><br>
<br/><br>
In this paper we present a novel recovery algorithm called bridge parsing,<br/><br>
which provides a light-weight recovery mechanism that complements existing<br/><br>
parsing recovery techniques. An initial phase recovers nesting structure in<br/><br>
source files making them easier to process by existing parsers. This enables<br/><br>
batch parser generators with existing grammars to be used in an interactive<br/><br>
setting with minor or no modifications.<br/><br>
<br/><br>
We have implemented bridge parsing in a generic extensible IDE for JastAdd<br/><br>
based compilers. It is independent of parsing technology, which we validate by showing how it improves recovery in a set of typical interactive editing<br/><br>
scenarios for three parser generators: ANTLR (LL(variable lookahead) parsers), LPG (LALR(k) parsers), and Beaver (LALR(1) parsers). ANTLR and LPG both contain sophisticated support for error recovery, while Beaver requires manual error productions. Bridge parsing complements these techniques and yields better recovery for all these tools with only minimal changes to existing grammars.}},
  author       = {{Söderberg, Emma and Ekman, Torbjörn and Hedin, Görel}},
  booktitle    = {{Software Language Engineering / Lecture notes in computer science}},
  issn         = {{0302-9743}},
  language     = {{eng}},
  pages        = {{95--113}},
  publisher    = {{Springer}},
  title        = {{Practical scope recovery using bridge parsing}},
  url          = {{http://dx.doi.org/10.1007/978-3-642-00434-6_7}},
  doi          = {{10.1007/978-3-642-00434-6_7}},
  volume       = {{5452}},
  year         = {{2009}},
}