AmPERSand: Modular Educational Programming Languages with Object Algebras
AmPERSand is a Programming Education Runtime System (PERS) that enables declaratively composing programming languages out of features by using Object Algebras. The system is designed to make programming education more efficient and effective by allowing teachers and curriculum designers to combine language features in a simple and intuitive manner to build custom programming languages tailored to their needs. The development of AmPERSand is a response to the current challenges faced in programming education, including the difficulty of learning multiple programming languages and the inefficiency of using traditional approaches to language implementation. All interpreters created with the amPERSand framework can be compiled to WASM to be used in online learning platforms.
Object Algebras are a programming pattern that enables the modular and extensible specification of algebraic structures.To reduce the amount of boilerplate code required when using Object Algebras, AmPERSand makes use of the macro system in the Rust programming language. This reduces the amount of code required to define a language and makes the process of composing a custom educational programming language more efficient.
A basic version of AmPERSand has been developed and is currently being used to re-implement the Hedy educational programming language. Hedy is a gradual programming language which means that the syntax and features gradually change through different levels until it reaches the Python syntax and features. Currently, the Hedy source code is transpiled to Python and then executed. By using amPERSand, the transpilation can be replaced by the generation of ASTs for different Hedy-level languages specified in the amPERSand framework. This allows for better delineation of features, better and easily translatable error messages, easier integration with the web platform and more flexibility.
Presentation (plnl23_jesse_hoobergs.pdf) | 191KiB |
I am a PhD student in Tom Schrijvers’ group at the KU Leuven and working closely with the research group of Felienne Hermans. I am working on improving programming education by allowing educators to tailor the programming language to the needs of their students and programming education researchers to the needs of their research goals..
Fri 16 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:30 - 16:30 | |||
15:30 20mTalk | Deriving editor services from funcons-based language semantics PLNL 2023 Damian Frölich University of Amsterdam File Attached | ||
15:50 20mTalk | Hedy programming language PLNL 2023 Sabina Chiță Vrije Universiteit Amsterdam | ||
16:10 20mTalk | AmPERSand: Modular Educational Programming Languages with Object Algebras PLNL 2023 Jesse Hoobergs KU Leuven File Attached |