Polyglot Live Programming
Polyglot Live Programming with GraalVM, the
Language Server Protocol (LSP), and VS Code.
- Install our VS Code extension. This will also install the GraalVM VS Code extension (
0.5.0 or later).
- Select or install a Java 11 based GraalVM
20.3 or later on your system using the GraalVM extension.
- Run the "Install the Live component with the GraalVM Updater (gu)" command via the Command Palette.
- Disable the "Language Server: In Process Server" option in the settings of the GraalVM extension:
Preferences → Settings → Extensions → GraalVM → Language Server: In Process Server
and wait until it is connected to the GraalLS ("GraalLS is ready." shown in status bar).
- Run the "Display Expression" (Ctrl + D) and "Babylonian Analysis" (Ctrl + B) commands while programming
(Here are some examples to play around with).
Babylonian Programming: Selection Probes
To use this feature, enable "Selection Probes" via the Command Palette.
To cite this work, please use the Onward!'20 paper on
"Example-Based Live Programming for Everyone".
- Fabio Niephaus, Patrick Rein, Jakob Edding, Jonas Hering, Bastian König, Kolya
Opahle, Nico Scordialo, and Robert Hirschfeld. Example-Based Live Programming
for Everyone: Building Language-agnostic Tools for Live Programming With LSP and
GraalVM. In Proceedings of the ACM Symposium for New Ideas, New Paradigms, and
Reflections on Everything to do with Programming and Software (Onward!)
2020, co-located with the Conference on Object-oriented Programming,
Systems, Languages, and Applications (OOPSLA), pages 108-124, Chicago, United
States, November 17-18, 2020, ACM DL.
Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. GraalSqueak: Toward a
Smalltalk-based Tooling Platform for Polyglot Programming. In Proceedings of
the International Conference on Managed Programming Languages and Runtimes
(MPLR) 2019, co-located with the Conference on Object-oriented
Programming, Systems, Languages, and Applications (OOPSLA), 12 pages, Athens,
Greece, October 21, 2019, ACM DL.
Patrick Rein, Jens Lincke, Stefan Ramson, Toni Mattis, Fabio Niephaus, and
Robert Hirschfeld. Implementing Babylonian/S by Putting Examples Into Contexts:
Tracing Instrumentation for Example-based Live Programming as a Use Case for
Context-oriented Programming. In Proceedings of the Workshop on
Context-oriented Programming (COP) 2019, co-located with the European
Conference on Object-oriented Programming (ECOOP), London, UK, July 15, 2019,
David Rauch, Patrick Rein, Stefan Ramson, Jens Lincke, and Robert Hirschfeld.
Babylonian-style Programming: Design and Implementation of an Integration of
Live Examples Into General-purpose Source Code. In Journal on The Art,
Science, and Engineering of Programming, vol. 3, no. 3, art. 9, 39
- Patrick Rein, Stefan Ramson, Jens Lincke, Robert Hirschfeld, and Tobias Pape.
Exploratory and Live, Programming and Coding: A Literature Study. In Journal
on The Art, Science, and Engineering of Programming, vol. 3, no. 1,
art. 1, 33 pages, 2018.
This work is released under the MIT license.