Skip to content

Polyglot Live Programming with GraalVM, the Language Server Protocol (LSP), and VS Code.

License

Notifications You must be signed in to change notification settings

hpi-swa/polyglot-live-programming

Repository files navigation

Polyglot Live Programming

VS Marketplace CI

Polyglot Live Programming with GraalVM, the Language Server Protocol (LSP), and VS Code.

Getting Started

  1. Install our VS Code extension. This will also install the GraalVM VS Code extension (0.5.0 or later).
  2. Select or install a Java 11 based GraalVM 20.3 or later on your system using the GraalVM extension.
  3. Run the "Install the Live component with the GraalVM Updater (gu)" command via the Command Palette.
  4. Disable the "Language Server: In Process Server" option in the settings of the GraalVM extension:
    PreferencesSettingsExtensionsGraalVMLanguage Server: In Process Server
    and wait until it is connected to the GraalLS ("GraalLS is ready." shown in status bar).
  5. Run the "Display Expression" (Ctrl + D) and "Babylonian Analysis" (Ctrl + B) commands while programming
    (Here are some examples to play around with).

Demos

Babylonian Programming: Selection Probes

To use this feature, enable "Selection Probes" via the Command Palette. Selection Probes

Related Publications

To cite this work, please use the Onward!'20 paper on "Example-Based Live Programming for Everyone".

2020

2019

  • 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.
    doi Preprint

  • 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, ACM DL.
    doi Preprint

  • 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 pages, 2019.
    doi Preprint

2018

Related Projects

License

This work is released under the MIT license.