Write a Blog >>
SLE 2016
Mon 31 October - Tue 1 November 2016 Amsterdam, Netherlands
co-located with SPLASH 2016
Tue 1 Nov 2016 10:30 - 10:55 at Zürich 2 - Development Environments Chair(s): Anthony Sloane

There are many declarative frameworks that allow us to implement code formatters relatively easily for any specific language, but constructing them is cumbersome. The first problem is that “everybody” wants to format their code differently, leading to either many formatter variants or a ridiculous number of configuration options. Second, the size of each implementation scales with a language’s grammar size, leading to hundreds of rules.

In this paper, we solve the formatter construction problem using a novel approach, one that automatically derives formatters for any given language without intervention from a language expert. We introduce a code formatter called CodeBuff that uses machine learning to abstract formatting rules from a representative corpus, using a carefully designed feature set. Our experiments on Java, SQL, and ANTLR grammars show that CodeBuff is efficient, has excellent accuracy, and is grammar invariant for a given language. It also generalizes to a 4th language tested during manuscript preparation.

PDF of slides for Terence Parr's presentation at SLE16 (codebuff-slides.pdf)1.28MiB

Tue 1 Nov

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:30 - 12:10
Development EnvironmentsSLE at Zürich 2
Chair(s): Anthony Sloane Macquarie University, Australia
10:30
25m
Talk
Towards a Universal Code Formatter through Machine LearningArtifact EvaluationDistinguished Paper
SLE
Terence Parr University of San Francisco, USA, Jurgen Vinju CWI, Netherlands
DOI Pre-print Media Attached File Attached
10:55
25m
Talk
The IDE Portability Problem and Its Solution in MontoArtifact Evaluation
SLE
Sven Keidel Delft University of Technology, Netherlands, Wulf Pfeiffer TU Darmstadt, Germany, Sebastian Erdweg Delft University of Technology, Netherlands
DOI Media Attached File Attached
11:20
25m
Talk
Principled Syntactic Code Completion using PlaceholdersArtifact Evaluation
SLE
Luis Eduardo de Souza Amorim Delft University of Technology, Netherlands, Sebastian Erdweg Delft University of Technology, Netherlands, Guido Wachsmuth Delft University of Technology, Netherlands, Eelco Visser Delft University of Technology, Netherlands
DOI Media Attached
11:45
15m
Talk
DrAST: An Inspection Tool for Attributed Syntax Trees (Tool Demo)Artifact Evaluation
SLE
Joel Lindholm Lund University, Sweden, Johan Thorsberg Lund University, Sweden, Görel Hedin Lund University, Sweden
DOI Media Attached