Providing Rapid Feedback in Generated Modular Language Environments. Adding Error Recovery to Scannerless Generalized-LR Parsing

Lennart C. L. Kats, Maartje de Jonge, Emma Nilsson-Nyman, Eelco Visser. Providing Rapid Feedback in Generated Modular Language Environments. Adding Error Recovery to Scannerless Generalized-LR Parsing. In Gary T. Leavens, editor, Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlanda, FL, USA. pages 445-464, 2009. [doi]

  • Bib information changed

    At 31/10/2009 15:08 by Lennart C. L. Kats
  • Bib information changed

    At 15/10/2009 15:41 by Lennart C. L. Kats
  • Changed abstract to '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 derive permissive grammars with error recovery productions from normal SDF grammars. 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. '.

    At 15/10/2009 15:38 by Lennart C. L. Kats
  • Added tag 'modular languages'.

    At 30/09/2009 16:11 by Eelco Visser
  • Added tag 'scannerless parsing'.

    At 30/09/2009 16:11 by Eelco Visser
  • Added tag 'SGLR'.

    At 30/09/2009 16:11 by Eelco Visser
  • Added tag 'sdf'.

    At 30/09/2009 16:11 by Eelco Visser
  • Publication locked.

    At 18/09/2009 8:14 by Lennart C. L. Kats
  • Added tag 'syntax definition'.

    At 15/09/2009 19:06 by Eelco Visser
  • Bib information changed

    At 27/08/2009 9:01 by Eelco Visser
  • Added tag 'parsing'.

    At 27/08/2009 7:56 by Eelco Visser
  • Added tag 'error recovery'.

    At 27/08/2009 7:56 by Eelco Visser
  • Bib information changed

    At 27/08/2009 7:55 by Eelco Visser
  • Created using form.

    At 27/08/2009 7:55 by Eelco Visser