Denotational Model and Implementation of Scalable Virtual Machine in CPDev
Jan Sadolewski, Bartosz Trybus
Citation: Proceedings of the 17th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 30, pages 587–591 (2022)
Abstract. Denotational semantic model and its implementation in C/C++ are presented for a virtual machine executing programs written in the CPDev development environment according to IEC 61131 standard. Programs written in IEC ST language are compiled to control-oriented intermediate language designed specifically for the machine. The machine is scalable in the sense that may be adjusted both to efficient and restricted hardware platforms by a configuration file which defines address size, available data types, and instructions. Architecture of the machine and its operation are represented by formal semantic model which assigns abstract algebraic objects to denote machine behaviour. Execution of intermediate language instructions is described in details by denotational semantic equations followed strictly by C/C++ implementations to assure reliability of the machine.
- B. Venners, Inside the Java Virtual Machine. McGraw-Hill Companies, 1997.
- R. F. Stärk, J. Schmid, and E. Börger, Java and the Java Virtual Machine. Berlin: Springer Heidelberg, 2001.
- T. Lindholm, F. Yellin, G. Bracha, and A. Buckley, The Java® Virtual Machine Specification. Oracle America, Inc., 2013.
- T. L. Thai and L. H., .NET Framework Essentials. O’Reilly Media, 2001.
- ECMA-335 Standard, Common Language Infrastructure (CLI). Geneva: ECMA, 2012.
- IEC 61131-3 Standard, Programmable Controllers. Part 3. Programming languages. International Standard: IEC, 2013.
- D. Rzońca, J. Sadolewski, A. Stec, Z. Świder, B. Trybus, and L. Trybus, “Developing a multiplatform control environment,” JAMRIS, vol. 13, no. 4, p. 73–84, 2019. [Online]. Available: https://doi.org/10.14313/JAMRIS/4-2019/40
- B. Trybus, “Development and Implementation of IEC 61131-3 Virtual Machine,” Theoretical and Applied Informatics, vol. 23, no. 1, pp. 21–35, 2011.
- M. Gordon, The Denotational Description of Programming Languages. New York: Springer-Verlag, 1979.
- J. Stoy, Denotational Semantics: The Scott–Strachey approach to programming language theory. Massachusetts: Massachusetts Institute of Technology, 1979.
- K. Slonneger and B. L. Kurtz, Formal Syntax and Semantics of Programming Languages: A Laboratory-Based Approach. Addison-Wesley Publishing Company, Inc, 1995.
- N. S. Papaspyrou, “Denotational semantics of ANSI C,” Computer Standards & Interfaces, vol. 23, pp. 169–185, 2001. http://dx.doi.org/10.1016/S0920-5489(01)00059-9
- H. Barendregt and E. Barendsen, Introduction to Lambda Calculus. online: ftp://ftp.cs.ru.nl/pub/CompMath.Found/lambda.pdf, 2000.
- J. Sadolewski and B. Trybus, “Compiler and virtual machine of a multiplatform control environment,” Bulletin of the Polish Academy of Sciences: Technical Sciences, vol. 70, no. 2, p. e140554, 2022. http://dx.doi.org/10.24425/bpasts.2022.140554
- D. Schmidt, Denotational Semantics: A Methodology for Language Development. Kansas State University, Manhattan: Department of Computing and Information Sciences, 1997.