cyber-physical systems, embedded systems, programming languages, type systems
As computers continue to advance, they are becoming more capable of sensing, interacting, and communicating with the physical and cyber world. Medical devices, electronic braking systems in automotive applications, and industrial control systems are examples of the many Cyber-Physical Systems (CPS) that utilize these computing capabilities. Given the potential consequences of software related failures in such systems, a high degree of safety, security, and reliability is often required. Programming languages are important tools used by programmers to develop CPS. They provide a programmer with the ability to transform designs into machine code. Of equal importance is their ability to detect and avoid programming mistakes. The development of CPS has predominantly been accomplished using the C programming language. Although C is a powerful language, it lacks features present in other languages that facilitate the development of reliable systems. This has prompted research into language-based alternatives for improving program quality through the use of programming languages. This paper presents an overview of the characteristics of embedded and cyber-physical systems and the associated requirements imposed on programming languages. This is followed by a survey of relevant research into language-based methods for creating safe, reliable, and robust software for CPS.
Tsinghua University Press
Paul Soulier, Depeng Li, John R. Williams. A Survey of Language-Based Approaches to Cyber-Physical and Embedded System Development. Tsinghua Science and Technology 2015, 20(2): 130-141.