License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2019.26
URN: urn:nbn:de:0030-drops-108182
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2019/10818/
Go to the corresponding LIPIcs Volume Portal


Pelsmaeker, Daniel A. A. ; van Antwerpen, Hendrik ; Visser, Eelco

Towards Language-Parametric Semantic Editor Services Based on Declarative Type System Specifications (Brave New Idea Paper)

pdf-format:
LIPIcs-ECOOP-2019-26.pdf (0.5 MB)


Abstract

Editor services assist programmers to more effectively write and comprehend code. Implementing editor services correctly is not trivial. This paper focuses on the specification of semantic editor services, those that use the semantic model of a program. The specification of refactorings is a common subject of study, but many other semantic editor services have received little attention. We propose a language-parametric approach to the definition of semantic editor services, using a declarative specification of the static semantics of the programming language, and constraint solving. Editor services are specified as constraint problems, and language specifications are used to ensure correctness. We describe our approach for the following semantic editor services: reference resolution, find usages, goto subclasses, code completion, and the extract definition refactoring. We do this in the context of Statix, a constraint language for the specification of type systems. We investigate the specification of editor services in terms of Statix constraints, and the requirements these impose on a suitable solver.

BibTeX - Entry

@InProceedings{pelsmaeker_et_al:LIPIcs:2019:10818,
  author =	{Daniel A. A. Pelsmaeker and Hendrik van Antwerpen and Eelco Visser},
  title =	{{Towards Language-Parametric Semantic Editor Services Based on Declarative Type System Specifications (Brave New Idea Paper)}},
  booktitle =	{33rd European Conference on Object-Oriented Programming (ECOOP 2019)},
  pages =	{26:1--26:18},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-111-5},
  ISSN =	{1868-8969},
  year =	{2019},
  volume =	{134},
  editor =	{Alastair F. Donaldson},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2019/10818},
  URN =		{urn:nbn:de:0030-drops-108182},
  doi =		{10.4230/LIPIcs.ECOOP.2019.26},
  annote =	{Keywords: semantics, constraint solving, Statix, name binding, editor services, reference resolution, code completion, refactoring}
}

Keywords: semantics, constraint solving, Statix, name binding, editor services, reference resolution, code completion, refactoring
Collection: 33rd European Conference on Object-Oriented Programming (ECOOP 2019)
Issue Date: 2019
Date of publication: 10.07.2019


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI