{"title":"Enhancing Semantics Learning: A Dynamic Environment for Abstract Language Implementation Education","authors":"William Steingartner, Igor Sivý","doi":"10.58245/ipsi.tir.2402.10","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":516644,"journal":{"name":"IPSI Transactions on Internet Research","volume":"19 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IPSI Transactions on Internet Research","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.58245/ipsi.tir.2402.10","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
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.