Software support for course in semantics of programming languages

William Steingartner, Mohamed Ali M. Eldojali, Davorka Radaković, Jiřı́ Dostál · 2017

Nowadays, computer science increasingly uses formal methods to enhance understanding of complex software systems and to reason about their behavior with respect to a formal specification. To let future generations of software developers and engineers profit from these exciting developments, however, it is necessary to adequately educate and train them in the basics of formal logic and formal language semantics. However, preciously few software tools do exist that substantially aid this educational process. Because the semantics is an integral part of a formal definition of a programming language, we have prepared a package of modules, that help us and to students to understand the most popular semantic method - structural operational semantics. The first module translates a program written in a programming language to abstract machine code, the second module makes reverse translation from code to program source text and the third one emulates stepwise execution of abstract machine code. Our package can be easily extended for other semantic methods.

Read the paper · More papers on PaperTik