{"id":18698995,"url":"https://github.com/hpi-swa/polyglot-live-programming","last_synced_at":"2025-04-12T08:09:32.426Z","repository":{"id":54269880,"uuid":"302272162","full_name":"hpi-swa/polyglot-live-programming","owner":"hpi-swa","description":"Polyglot Live Programming with GraalVM, the Language Server Protocol (LSP), and VS Code.","archived":false,"fork":false,"pushed_at":"2021-02-28T01:44:02.000Z","size":525,"stargazers_count":37,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-12T08:09:17.365Z","etag":null,"topics":["graalvm","live-programming","lsp","polyglot-programming","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hpi-swa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-08T08:06:35.000Z","updated_at":"2025-01-08T08:55:06.000Z","dependencies_parsed_at":"2022-08-13T10:31:21.566Z","dependency_job_id":null,"html_url":"https://github.com/hpi-swa/polyglot-live-programming","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpi-swa%2Fpolyglot-live-programming","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpi-swa%2Fpolyglot-live-programming/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpi-swa%2Fpolyglot-live-programming/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpi-swa%2Fpolyglot-live-programming/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hpi-swa","download_url":"https://codeload.github.com/hpi-swa/polyglot-live-programming/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248537135,"owners_count":21120709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graalvm","live-programming","lsp","polyglot-programming","vscode-extension"],"created_at":"2024-11-07T11:30:38.009Z","updated_at":"2025-04-12T08:09:32.405Z","avatar_url":"https://github.com/hpi-swa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Polyglot Live Programming\n\n[![VS Marketplace][vsm_badge]][vscode_extension] [![CI][ci_badge]][ci_url]\n\nPolyglot Live Programming with [GraalVM][graalvm], the\n[Language Server Protocol (LSP)][lsp], and [VS Code][vscode].\n\n\n## Getting Started\n\n1. Install [our VS Code extension][vscode_extension]. This will also install the [GraalVM VS Code extension][graalvm_vscode] (`0.5.0` or later).\n2. Select or install a Java 11 based GraalVM `20.3` or later on your system using the GraalVM extension.\n3. Run the \"Install the Live component with the GraalVM Updater (gu)\" command via the [Command Palette][vscode_commands].\n3. Disable the \"Language Server: In Process Server\" option in the settings of the GraalVM extension:  \n\u003ckbd\u003ePreferences\u003c/kbd\u003e → \u003ckbd\u003eSettings\u003c/kbd\u003e → \u003ckbd\u003eExtensions\u003c/kbd\u003e → \u003ckbd\u003eGraalVM\u003c/kbd\u003e → \u003ckbd\u003eLanguage Server: In Process Server\u003c/kbd\u003e  \n   and wait until it is connected to the GraalLS (\"GraalLS is ready.\" shown in status bar).\n4. Run the \"Display Expression\" (\u003ckbd\u003eCtrl + D\u003c/kbd\u003e) and \"Babylonian Analysis\" (\u003ckbd\u003eCtrl + B\u003c/kbd\u003e) commands while programming  \n   ([Here are some examples][examples] to play around with).\n\n\n## Demos\n\n### Babylonian Programming: Selection Probes\n*To use this feature, enable \"Selection Probes\" via the [Command Palette][vscode_commands].*\n![Selection Probes][demo_selection_probes]\n\n\n## Related Publications\n\n*To cite this work, please use [the Onward!'20 paper on\n\"Example-Based Live Programming for Everyone\"][onward20_paper].*\n\n### 2020\n- Fabio Niephaus, Patrick Rein, Jakob Edding, Jonas Hering, Bastian König, Kolya\nOpahle, Nico Scordialo, and Robert Hirschfeld. *Example-Based Live Programming\nfor Everyone: Building Language-agnostic Tools for Live Programming With LSP and\nGraalVM*. In Proceedings of [the ACM Symposium for New Ideas, New Paradigms, and\nReflections on Everything to do with Programming and Software (Onward!)\n2020][onward20], co-located with the Conference on Object-oriented Programming,\nSystems, Languages, and Applications (OOPSLA), pages 108-124, Chicago, United\nStates, November 17-18, 2020, ACM DL.  \n[![doi][onward20_doi]][onward20_paper] [![Preprint][preprint]][onward20_pdf]\n[![Talk][talk]][onward20_talk]\n\n### 2019\n- Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. *GraalSqueak: Toward a\nSmalltalk-based Tooling Platform for Polyglot Programming*. In Proceedings of\n[the International Conference on Managed Programming Languages and Runtimes\n(MPLR) 2019][mplr19], co-located with the Conference on Object-oriented\nProgramming, Systems, Languages, and Applications (OOPSLA), 12 pages, Athens,\nGreece, October 21, 2019, ACM DL.  \n[![doi][mplr19_doi]][mplr19_paper] [![Preprint][preprint]][mplr19_pdf]\n\n- Patrick Rein, Jens Lincke, Stefan Ramson, Toni Mattis, Fabio Niephaus, and\nRobert Hirschfeld. *Implementing Babylonian/S by Putting Examples Into Contexts:\nTracing Instrumentation for Example-based Live Programming as a Use Case for\nContext-oriented Programming*. In Proceedings of [the Workshop on\nContext-oriented Programming (COP) 2019][cop19], co-located with the European\nConference on Object-oriented Programming (ECOOP), London, UK, July 15, 2019,\nACM DL.  \n[![doi][cop19_doi]][cop19_paper] [![Preprint][preprint]][cop19_pdf]\n\n- David Rauch, Patrick Rein, Stefan Ramson, Jens Lincke, and Robert Hirschfeld.\n*Babylonian-style Programming: Design and Implementation of an Integration of\nLive Examples Into General-purpose Source Code*. In [Journal on The Art,\nScience, and Engineering of Programming, vol. 3, no. 3][prog19], art. 9, 39\npages, 2019.  \n[![doi][prog19_doi]][prog19_paper] [![Preprint][preprint]][prog19_pdf]\n\n### 2018\n- Patrick Rein, Stefan Ramson, Jens Lincke, Robert Hirschfeld, and Tobias Pape.\n*Exploratory and Live, Programming and Coding: A Literature Study*. In [Journal\non The Art, Science, and Engineering of Programming, vol. 3, no. 1][prog18],\nart. 1, 33 pages, 2018.  \n[![doi][prog18_doi]][prog18_paper] [![Preprint][preprint]][prog18_pdf]\n\n\n## Related Projects\n\n- [TruffleSqueak][trufflesqueak], [Babylonian/S][babylonian_s] and [Babylonian/JS][babylonian_js]\n\n\n## License\n\nThis work is released under the [MIT license][license].\n\n\n[babylonian_js]: https://lively-kernel.org/lively4/lively4-core/start.html?load=https://lively-kernel.org/lively4/lively4-core/src/babylonian-programming-editor/demos/index.md\n[babylonian_s]: https://github.com/hpi-swa-lab/babylonian-programming-smalltalk\n[ci_badge]: https://img.shields.io/github/workflow/status/hpi-swa/polyglot-live-programming/CI.svg\n[ci_url]: https://github.com/hpi-swa/polyglot-live-programming/actions?query=workflow%3ACI\n[cop19_doi]: https://img.shields.io/badge/doi-10.1145/3340671.3343358-blue.svg\n[cop19_paper]: https://doi.org/10.1145/3340671.3343358\n[cop19_pdf]: http://hirschfeld.org/writings/media/ReinLinckeRamsonMattisNiephausHirschfeld_2019_ImplementingBabylonianSbyPuttingExamplesIntoContextsTracingInstrumentationForExampleBasedLiveProgrammingAsAUseCaseForContextOrientedProgramming_AcmDL.pdf\n[cop19]: https://2019.ecoop.org/details/COP-2019-papers/9/Implementing-Babylonian-S-by-Putting-Examples-into-Contexts-Tracing-Instrumentation-\n[demo_selection_probes]: https://user-images.githubusercontent.com/2368856/97712431-b6540480-1abe-11eb-9f73-efe7983ee3b9.gif\n[examples]: https://github.com/hpi-swa/polyglot-live-programming/tree/main/examples\n[graalvm_vscode]: https://www.graalvm.org/tools/vscode-extension/\n[graalvm]: https://www.graalvm.org\n[license]: https://github.com/hpi-swa/polyglot-live-programming/blob/master/LICENSE\n[lsp]: https://microsoft.github.io/language-server-protocol/\n[mplr19_doi]: https://img.shields.io/badge/doi-10.1145/3357390.3361024-blue.svg\n[mplr19_paper]: https://doi.org/10.1145/3357390.3361024\n[mplr19_pdf]: https://fniephaus.com/2019/mplr19-graalsqueak.pdf\n[mplr19]: https://conf.researchr.org/home/mplr-2019\n[onward20_doi]: https://img.shields.io/badge/doi-10.1145/3426428.3426919-blue.svg\n[onward20_paper]: https://doi.org/10.1145/3426428.3426919\n[onward20_pdf]: http://fniephaus.com/2020/onward20-live-programming.pdf\n[onward20_talk]: http://youtube.com/watch?v=vBevZ2MhoGE\n[onward20]: https://2020.splashcon.org/details/splash-2020-Onward-papers/7/Example-Based-Live-Programming-for-Everyone-Building-Language-agnostic-Tools-for-Liv\n[preprint]: https://img.shields.io/badge/preprint-download-blue.svg\n[prog18_doi]: https://img.shields.io/badge/doi-10.22152/programming--journal.org/2019/3/1-blue.svg\n[prog18_paper]: https://doi.org/10.22152/programming-journal.org/2019/3/1\n[prog18_pdf]: https://arxiv.org/pdf/1807.08578v1\n[prog18]: https://programming-journal.org/2019/3/issue3/\n[prog19_doi]: https://img.shields.io/badge/doi-10.22152/programming--journal.org/2019/3/9-blue.svg\n[prog19_paper]: https://doi.org/10.22152/programming-journal.org/2019/3/9\n[prog19_pdf]: https://arxiv.org/pdf/1902.00549v1\n[prog19]: https://programming-journal.org/2019/3/issue3/\n[talk]: https://img.shields.io/badge/talk-watch%20on%20YouTube-blue.svg\n[trufflesqueak]: https://github.com/hpi-swa/trufflesqueak\n[vscode_commands]: https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_command-palette\n[vscode_extension]: https://marketplace.visualstudio.com/items?itemName=hpi-swa.polyglot-live-programming\n[vscode]: https://code.visualstudio.com\n[vsm_badge]: https://img.shields.io/badge/vs%20marketplace-download-brightgreen\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpi-swa%2Fpolyglot-live-programming","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhpi-swa%2Fpolyglot-live-programming","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpi-swa%2Fpolyglot-live-programming/lists"}