Standard

Principled Syntactic Code Completion using Placeholders. / De Souza Amorim, Luís Eduardo; Erdweg, Sebastian; Wachsmuth, Guido; Visser, Eelco.

Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016. ed. / D. Varro; E. Balland; T. van der Storm. New York, NY : Association for Computing Machinery (ACM), 2016. p. 163-175.

Research output: Chapter in Book/Report/Conference proceedingConference contributionScientificpeer-review

Harvard

De Souza Amorim, LE, Erdweg, S, Wachsmuth, G & Visser, E 2016, Principled Syntactic Code Completion using Placeholders. in D Varro, E Balland & T van der Storm (eds), Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016. Association for Computing Machinery (ACM), New York, NY, pp. 163-175, SLE 2016, Amsterdam, Netherlands, 31/10/16. https://doi.org/10.1145/2997364.2997374

APA

De Souza Amorim, L. E., Erdweg, S., Wachsmuth, G., & Visser, E. (2016). Principled Syntactic Code Completion using Placeholders. In D. Varro, E. Balland, & T. van der Storm (Eds.), Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016 (pp. 163-175). New York, NY: Association for Computing Machinery (ACM). https://doi.org/10.1145/2997364.2997374

Vancouver

De Souza Amorim LE, Erdweg S, Wachsmuth G, Visser E. Principled Syntactic Code Completion using Placeholders. In Varro D, Balland E, van der Storm T, editors, Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016. New York, NY: Association for Computing Machinery (ACM). 2016. p. 163-175 https://doi.org/10.1145/2997364.2997374

Author

De Souza Amorim, Luís Eduardo ; Erdweg, Sebastian ; Wachsmuth, Guido ; Visser, Eelco. / Principled Syntactic Code Completion using Placeholders. Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016. editor / D. Varro ; E. Balland ; T. van der Storm. New York, NY : Association for Computing Machinery (ACM), 2016. pp. 163-175

BibTeX

@inproceedings{fb5ffb44712d430bb0cff9c47d7479c7,
title = "Principled Syntactic Code Completion using Placeholders",
abstract = "Principled syntactic code completion enables developers to change source code by inserting code templates, thus increasing developer efficiency and supporting language exploration. However, existing code completion systems are ad-hoc and neither complete nor sound. They are not complete and only provide few code templates for selected programming languages. They also are not sound and propose code templates that yield invalid programs when inserted. This paper presents a generic framework that automatically derives complete and sound syntactic code completion from the syntax definition of arbitrary languages. A key insight of our work is to provide an explicit syntactic representation for incomplete programs using placeholders. This enables us to address the following challenges for code completion separately: (i) completing incomplete programs by replacing placeholders with code templates, (ii) injecting placeholders into complete programs to make them incomplete, and (iii) introducing lexemes and placeholders into incorrect programs through error-recovery parsing to make them correct so we can apply one of the previous strategies. We formalize our framework and provide an implementation in Spoofax.",
keywords = "Code completion, Ides, Language workbenches",
author = "{De Souza Amorim}, {Lu{\'i}s Eduardo} and Sebastian Erdweg and Guido Wachsmuth and Eelco Visser",
year = "2016",
month = "10",
day = "20",
doi = "10.1145/2997364.2997374",
language = "English",
pages = "163--175",
editor = "D. Varro and E. Balland and {van der Storm}, T.",
booktitle = "Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016",
publisher = "Association for Computing Machinery (ACM)",
address = "United States",

}

RIS

TY - GEN

T1 - Principled Syntactic Code Completion using Placeholders

AU - De Souza Amorim, Luís Eduardo

AU - Erdweg, Sebastian

AU - Wachsmuth, Guido

AU - Visser, Eelco

PY - 2016/10/20

Y1 - 2016/10/20

N2 - Principled syntactic code completion enables developers to change source code by inserting code templates, thus increasing developer efficiency and supporting language exploration. However, existing code completion systems are ad-hoc and neither complete nor sound. They are not complete and only provide few code templates for selected programming languages. They also are not sound and propose code templates that yield invalid programs when inserted. This paper presents a generic framework that automatically derives complete and sound syntactic code completion from the syntax definition of arbitrary languages. A key insight of our work is to provide an explicit syntactic representation for incomplete programs using placeholders. This enables us to address the following challenges for code completion separately: (i) completing incomplete programs by replacing placeholders with code templates, (ii) injecting placeholders into complete programs to make them incomplete, and (iii) introducing lexemes and placeholders into incorrect programs through error-recovery parsing to make them correct so we can apply one of the previous strategies. We formalize our framework and provide an implementation in Spoofax.

AB - Principled syntactic code completion enables developers to change source code by inserting code templates, thus increasing developer efficiency and supporting language exploration. However, existing code completion systems are ad-hoc and neither complete nor sound. They are not complete and only provide few code templates for selected programming languages. They also are not sound and propose code templates that yield invalid programs when inserted. This paper presents a generic framework that automatically derives complete and sound syntactic code completion from the syntax definition of arbitrary languages. A key insight of our work is to provide an explicit syntactic representation for incomplete programs using placeholders. This enables us to address the following challenges for code completion separately: (i) completing incomplete programs by replacing placeholders with code templates, (ii) injecting placeholders into complete programs to make them incomplete, and (iii) introducing lexemes and placeholders into incorrect programs through error-recovery parsing to make them correct so we can apply one of the previous strategies. We formalize our framework and provide an implementation in Spoofax.

KW - Code completion

KW - Ides

KW - Language workbenches

UR - http://www.scopus.com/inward/record.url?scp=85006721055&partnerID=8YFLogxK

UR - http://resolver.tudelft.nl/uuid:fb5ffb44-712d-430b-b0cf-f9c47d7479c7

U2 - 10.1145/2997364.2997374

DO - 10.1145/2997364.2997374

M3 - Conference contribution

SP - 163

EP - 175

BT - Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2016

A2 - Varro, D.

A2 - Balland, E.

A2 - van der Storm, T.

PB - Association for Computing Machinery (ACM)

CY - New York, NY

ER -

ID: 10021961