Enhancing Semantics Learning: A Dynamic Environment for Abstract Language Implementation Education
William Steingartner, Igor Sivý · IPSI Transactions on Internet Research · 2024
The abstract implementation of the language on some abstract machine is a logical step in the definition of its operational semantics and in the definition of its (partially) correct implementation. An abstract machine for operational semantics is a well-known formalism in proving the correctness of programming languages. There are several ways to define an abstract machine for a given language specification. In our article, we focus on an abstract machine for structural operational semantics as a stack machine with two different model representations of memory, and we present a complex tool enabling compilation from a higher imperative (toy) language into an abstract machine allowing, in addition, the visualization of individual computational steps, interactive memory manipulation and feedback by compiling back to a higher language. This work presents an abstract machine designed primarily for educational purposes, enabling the visualization and interaction with the compilation process of a simple imperative language.