Skip to main content
Log in

Operational Semantics of Annotated Reflex Programs

  • Published:
Automatic Control and Computer Sciences Aims and scope Submit manuscript

Abstract—

Reflex is a process-oriented language for developing easy-to-maintain control software for programmable logic controllers. The language has been successfully used in several safety-critical control systems, e.g., in control systems of a silicon single crystal growing furnace and electronic equipment. Currently, the main goal of the Reflex language project is to develop formal verification methods for Reflex programs in order to guarantee increased reliability of the software created on its basis. The paper presents formal operational semantics of Reflex programs extended with annotations describing the formal specification of software requirements as a necessary basis for the application of such methods. A brief review of the Reflex language is given, and a simple example of its use, a control program for a hand dryer, is provided. The concepts of environment and variables shared with the environment are defined, which make it possible to abstract from specific input/output ports. Types of annotations that specify constraints on the values of the variables at program start, constraints on the environment (in particular, on the control object), control cycle invariants, and pre- and postconditions of external functions used in Reflex programs are defined. Annotated Reflex also uses standard annotations assume, assert, and havoc. The operational semantics of annotated Reflex programs uses the global clock and the local clocks of individual processes, the time of which is measured in the number of control cycle iterations, to simulate time constraints on process execution in certain states. It stores a complete history of changes in the values of the shared variables for a more complete description of time properties of the program and its environment. Semantics takes into account the infinity of the program execution cycle, the logic of controlling transitions of processes from state to state and the interaction of processes with each other and with the environment. Extending the formal operational semantics of the Reflex language to annotations simplifies the proof of the correctness of the transformation approach to deductive verification of Reflex programs developed by the authors that transforms an annotated Reflex program to an annotated program on a very limited subset of the C language by reducing a complex proof of preserving the truth of requirements for the program when transforming to a simpler proof of equivalence of the original and resulting annotated programs with respect to their operational semantics.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

REFERENCES

  1. IEC 61131-3: Programmable Controllers-Part 3: Programming Languages, Geneva: International Electrotechnical Commission, 2003, 2nd ed., vol. 1.

  2. Basile, F., Chiacchio, P., and Gerbasio, D., On the implementation of industrial automation systems based on PLC, IEEE Trans. Autom. Sci. Eng., 2012, vol. 10, no. 4, pp. 990–1003.

    Article  Google Scholar 

  3. Travis, J. and Kring, J., LabVIEW for Everyone: Graphical Programming Made Easy and Fun, Upper Saddle River, NJ: Prentice Hall PTR, 2006, 3rd ed.

    Google Scholar 

  4. Zyubin, V., Using process-oriented programming in LabVIEW, Proceedings of the Second IASTED International Multi-Conference on Automation, Control, and Information Technology: Control, Diagnostics, and Automation, Novosibirsk, 2010, pp. 35–41.

  5. Buxton, J.N. and Randell, B., Software engineering techniques, Conference Sponsored by the NATO Science Committee, Rome, 1970.

    Google Scholar 

  6. Anureev, I.S., Garanina, N.O., Liakh, T.V., Rozov, A.S., Zyubin, V.E., and Gorlatch, S., Two-step deductive verification of control software using reflex, Preliminary Proceedings of A. P. Ershov Informatics Conference (PSI-19), Novosibirsk, 2019, pp. 17–30.

  7. Anureev, I.S., Garanina, N.O., Liakh, T.V., Rozov, A.S., Schulte, H., and Zyubin, V.E., Towards safe cyber-physical systems: The reflex language and its transformational semantics, 14th International Siberian Conference on Control and Communications (SIBCON). Tomsk State University of Control Systems and Radioelectronics, Tomsk, 2019, pp. 1–6.

  8. Zyubin, V.E., Liakh, T.V., and Rozov, A.S., Reflex language: A practical notation for cyber-physical systems, Syst. Inf., 2018, vol. 12, pp. 85–104.

    Google Scholar 

  9. Norrish, M., C Formalised in HOL, Ph.D. Thesis, University of Cambridge, 1998.

  10. Gurevich, Y. and Huggins, J., The semantics of the C programming language, Lect. Notes Comput. Sci., 1992, vol. 702, pp. 274–308.

    Article  Google Scholar 

  11. Blazy, S. and Leroy, X., Mechanized semantics for the Clight subset of the C language, J. Autom. Reasoning, 2009, vol. 43, no. 3, pp. 263–288.

    Article  MathSciNet  Google Scholar 

  12. Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., and Promsky, A.V., Towards verification of C programs. C-light language and its formal semantics, Program. Comput. Sci., 2002, vol. 28, no. 6, pp. 314–323.

    Article  Google Scholar 

  13. Ellison, C. and Rosu, G., An executable formal semantics of C with applications, Proc. of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2012, pp. 533–544.

Download references

Funding

FUNDING

This work was funded by the RFBR according to the research no. 17-07-01600 and supported by the Russian Ministry of Education and Science, project no. AAAA-A19-119120290056-0.

ADDITIONAL INFORMATION

Igor S. Anureev, orcid.org/0000-0001-9574-128X, PhD.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to I. S. Anureev.

Ethics declarations

The authors declare that they have no conflicts of interest.

Additional information

Translated by O. Pismenov

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Anureev, I.S. Operational Semantics of Annotated Reflex Programs. Aut. Control Comp. Sci. 54, 719–727 (2020). https://doi.org/10.3103/S0146411620070032

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.3103/S0146411620070032

Keywords:

Navigation