Abstract
This work aims to present the software support for teaching in the field of formal semantics of imperative programming languages. The main part focuses on a software tool that provides a visual representation of the individual steps of the calculation in categorical semantics, which can also be referred to as graph semantics. The use of software tools in teaching to visually represent computational steps considerably facilitates understanding by students and can also serve as a good basis for supporting distance learning. Our program works in the standard form: after reading the correct user input, a visual representation of the meaning of the program is generated in the form of a category of states, which is displayed as an oriented graph. For better extensibility, the program is implemented as a web application.References
Aho, A. V., Lam, M. S., Sethi, R., and Ullman, J. (2006). Compilers: Principles, Techniques, and Tools (2nd Edition). Addison Wesley.
Appel, A. W. (2002). Modern Compiler Implementation in Java. Cambridge: Cambridge University Press.
Barr, M., Wells, C. (1990). Category Theory for Computing Science. New York: Prentice Hall.
Brandenburg, M. (2016). Einführung in die Kategorientheorie. Springer Spektrum (in German)
Dedera, L. (2014). Computer languages and their processing. Armed Forces Academy of General Milan Rastislav Štefánik (in Slovak).
Gajdoš, E. (2021). The visualization of a graph semantics of imperative languages. Technical Report. Technical University of Košice (in Slovak).
Herceg, D. et al. (2019). Possible improvements of modern dynamic geometry software. Computer Tools in Education, (2):72–86.
Nielson, H.R., Nielson, F. (2007). Semantics with Applications: An Appetizer. Undergraduate Topics in Computer Science. Springer-Verlag London.
Parr, T. (2013). The Definitive ANTLR 4 Reference. Pragmatic Bookshelf, Raleigh, NC, 2nd edition.
Perháč, J., Mihályi, D., Novitzká, V. (2017). Modeling Synchronization Problems: From Composed Petri Nets to Provable Linear Sequents. Acta Polytechnica Hungarica, 14(8), 165-182.
Plotkin, G. (2004). A structural approach to operational semantics. Journal of Logic and Algebraic Programming, 60—61:17-139.
Roșu, G., Șerbănută, T. F. (2010), An overview of the K semantic framework, The Journal of Logic and Algebraic Programming, 79(6), 397-434.
Reichl, F.X., Schreiner, W. (2020). Mathematical Model Checking Based on Semantics and SMT. IPSI Transactions on Internet Research, 16(2):4-13.
Steingartner, W. et al. (2017). New approach to categorical semantics for procedural languages. Computing and Informatics, 36(6), pp. 1385–1414, Slovakia. doi:10.4149/cai_2017_6_1385
Steingartner, W., Novitzká, V., Schreiner, W. (2019). Coalgebraic Operational Semantics for an Imperative Language. Computing and Informatics, 38(5), pp. 1181–1209, Bratislava, Slovakia. doi:10.31577/cai_2019_5_1181
Steingartner, W. (2021). On some innovations in teaching the formal semantics using software tools. Open Computer Science, 11(1):2-11.
Walters, R.F.C. (1992). Categories and Computer Science. Cambridge University Press.
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
Copyright (c) 2021 Array