,
José Paulo Leal
,
Ricardo Queirós
Creative Commons Attribution 4.0 International license
While server-side assessment of programming exercises, with its ease of installing diverse compilers and execution environments, is common, it presents three key limitations: the necessity of a constant Internet connection, increased bandwidth consumption, and centralized execution load. The alternative is to rely on JavaScript, the single programming language supported by all standard web browsers. This paper introduces Osiris, a pure JavaScript multi-language transpiler designed to enable the execution of diverse programming languages within web browsers. Targeted primarily at Virtual Learning Environments (VLE) for language programming education, Osiris employs a parser generator to translate small student programs into JavaScript based on language-specific grammars with semantic rules. It also includes a comprehensive, though not exhaustive, JavaScript library that emulates the standard libraries of its supported languages. Validation of Osiris indicates the pedagogical effectiveness of browser-based transpilation for introductory programming education.
@InProceedings{marrao_et_al:OASIcs.ICPEC.2025.17,
author = {Marr\~{a}o, Breno and Leal, Jos\'{e} Paulo and Queir\'{o}s, Ricardo},
title = {{Osiris: A Multi-Language Transpiler for Educational Purposes}},
booktitle = {6th International Computer Programming Education Conference (ICPEC 2025)},
pages = {17:1--17:14},
series = {Open Access Series in Informatics (OASIcs)},
ISBN = {978-3-95977-393-5},
ISSN = {2190-6807},
year = {2025},
volume = {133},
editor = {Queir\'{o}s, Ricardo and Pinto, M\'{a}rio and Portela, Filipe and Sim\~{o}es, Alberto},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.ICPEC.2025.17},
URN = {urn:nbn:de:0030-drops-240471},
doi = {10.4230/OASIcs.ICPEC.2025.17},
annote = {Keywords: Transpiler, Programming Education, JavaScript, Python, Virtual Learning Environments, Client-Side Execution}
}