SPLASH 2022
Mon 5 - Sat 10 December 2022 Auckland, New Zealand
Wed 7 Dec 2022 15:30 - 16:00 at AMRF Auditorium - DLS Talks 2 Chair(s): James Noble

With the wide adoption of the language server protocol, the desire to have IDE-style tooling even for niche and research languages has exploded. The Truffle language framework facilitates this desire by offering an almost zero-effort approach to language implementers to providing IDE features. However, this existing approach needs to execute the code being worked on to capture much of the information needed for an IDE, ideally with full unit-test coverage.

To capture information more reliably and avoid the need to execute the code being worked on, we propose a new parse-based design for language servers. Our solution provides a language-agnostic interface for structural information, with which we can support most common IDE features for dynamic languages.

Comparing the two approaches, we find that our new parse-based approach requires only a modest development effort for each language and has only minor tradeoffs for precision, for instance for code completion, compared to Truffle’s execution-based approach.

Further, we show that less than 1,000 lines of code capture enough details to provide much of the typical IDE functionality, with an order of magnitude less code than ad hoc language servers. We tested our approach for the custom parsers of Newspeak and SOM, as well as SimpleLanguage’s ANTLR grammar without any changes to it. Combining both parse and execution-based approaches has the potential to provide good and precise IDE tooling for a wide range of languages with only small development effort. By itself, our approach would be a good addition to the many libraries implementing the language server protocol to enable low-effort implementations of IDE features.

Wed 7 Dec

Displayed time zone: Auckland, Wellington change

15:30 - 17:00
DLS Talks 2DLS at AMRF Auditorium
Chair(s): James Noble Research & Programming
15:30
30m
Talk
Execution vs. Parse-Based Language Servers: Tradeoffs and Opportunities for Language-Agnostic Tooling for Dynamic Languages
DLS
Stefan Marr University of Kent, Humphrey Burchell University of Kent, Fabio Niephaus Oracle Labs, Potsdam
DOI Pre-print
16:00
30m
Talk
Who You Gonna Call: Analyzing the Run-time Call-Site Behavior of Ruby Applications
DLS
Sophie Kaleba University of Kent, Octave Larose University of Kent, Richard Jones University of Kent, Stefan Marr University of Kent
DOI Pre-print
16:30
30m
Talk
Dynamic Pattern Matching with Python
DLS
Tobias Kohn University of Cambridge, UK, Guido van Rossum Python Software Foundation, Gary Brandt Bucher, II Research Affiliates, LLC, Talin , Ivan Levkivskyi Dropbox Ireland
DOI Pre-print