AI Chat Paper
Note: Please note that the following content is generated by AMiner AI. SciOpen does not take any responsibility related to this content.
{{lang === 'zh_CN' ? '文章概述' : 'Summary'}}
{{lang === 'en_US' ? '中' : 'Eng'}}
Chat more with AI
PDF (804.5 KB)
Collect
Submit Manuscript AI Chat Paper
Show Outline
Outline
Show full outline
Hide outline
Outline
Show full outline
Hide outline
Open Access

A Survey of Language-Based Approaches to Cyber-Physical and Embedded System Development

Paul Soulier( )Depeng LiJohn R. Williams
University of Hawaii, Manoa, HI 96822, USA.
Massachusetts Institute of Technology (MIT), Cambridge, MA 02139, USA.
Show Author Information

Abstract

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.

References

[1]
Lions, J. Report by the inquiry board on the ariane 5 flight 501 failure, Joint Communication ESA-CNES, 1996.
[2]
Marshall, E. Fatal error: How patriot overlooked a scud, Science, vol. 255, no. 5050, pp. 1347-1347, 1992.
[3]
Leveson N. G. and Turner, C. S. An investigation of the therac-25 accidents, Computer, vol. 26, no. 7, pp. 18-41, 1993.
[4]
Bolkcom, C. V-22 osprey tilt-rotor aircraft, DTIC Document, 2004.
[5]
Langner, R. Stuxnet: Dissecting a cyberwarfare weapon, Security & Privacy, IEEE, vol. 9, no. 3, pp. 49-51, 2011.
[6]
Halperin, D. Heydt-Benjamin, T. S. Ransford, B. Clark, S. S. Defend, B. Morgan, W. Fu, K. Kohno, T. and Maisel, W. H. Pacemakers and implantable cardiac defibrillators: Software radio attacks and zero-power defenses, in Security and Privacy, 2008. SP 2008. IEEE Symposium on, 2008, pp. 129-142.
[7]
Boehm B. and Basili, V. R. Software defect reduction top 10 list, Computer, vol. 34, no. 1, pp. 135-137, 2005.
[8]
International Organization for Standardization, Programming languages c, Geneva, Switzerland, ISO 9899:TC2, 1999.
[9]
International Organization for Standardization, Programming language c++, Geneva, Switzerland, ISO 14882:2011, 2011.
[10]
Alexandrescu, A. The D Programming Language. Addison-Wesley Professional, 2010.
[11]
Taft, S. T. Ada 2005 Reference Manual. Language and Standard Libraries: International Standard ISO/IEC 8652/1995 (E) with Technical Corrigendum 1 and Amendment 1. Springer, 2006, vol. 4348.
[12]
Jim, T. Morrisett, J. G. Grossman, D. Hicks, M. W. Cheney, J. and Wang, Y. Cyclone: A safe dialect of c, in USENIX Annual Technical Conference, General Track, 2002, pp. 275-288.
[13]
Necula, G. C. Condit, J. Harren, M. McPeak, S. and Weimer, W. Ccured: Type-safe retrofitting of legacy software, ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 27, no. 3, pp. 477-526, 2005.
[14]
Condit, J. Harren, M. Anderson, Z. Gay, D. and Necula, G. C. Dependent types for low-level programming, in Programming Languages and Systems. Springer, 2007, pp. 520-535.
[15]
Gay, D. Levis, P. Von Behren, R. Welsh, M. Brewer, E. and Culler, D. The nesc language: A holistic approach to networked embedded systems, ACM Sigplan Notices, vol. 38, no. 5, pp. 1-11, 2003.
[16]
Bernauer, A. Römer, K. Santini, S. and Ma, J. Threads2events: An automatic code generation approach, in Proceedings of the 6th Workshop on Hot Topics in Embedded Networked Sensors, ACM, 2010, p. 8.
[17]
Kasten O. and Römer, K. Beyond event handlers: Programming wireless sensors with attributed state machines, in Proceedings of the 4th International Symposium on Information Processing in Sensor Networks, 2005, p. 7.
[18]
Adya, A. Howell, J. Theimer, M. Bolosky, W. J. and Douceur, J. R. Cooperative task management without manual stack management, in USENIX Annual Technical Conference, General Track, 2002, pp. 289-302.
[19]
Dunkels, A. Schmidt, O. Voigt, T. and Ali, M. Protothreads: Simplifying event-driven programming of memory-constrained embedded systems, in Proceedings of the 4th International Conference on Embedded Networked Sensor Systems, 2006, pp. 29-42.
[20]
Dunkels, A. Schmidt, O. and Voigt, T. Using protothreads for sensor node programming, in Proceedings of the REALWSN, 2005.
[21]
Rossetto S. and Rodriguez, N. d. L. R. A cooperative multitasking model for networked sensors. in ICDCS Workshops, Citeseer, 2006, p. 91.
[22]
McCartney W. P. and Sridhar, N. Stackless preemptive multithreading for tinyos, in Distributed Computing in Sensor Systems and Workshops (DCOSS), 2011 International Conference on, 2011, pp. 1-8.
[23]
Sallai, J. Maróti, M. and Lédeczi, Á. A concurrency abstraction for reliable sensor network applications, in Reliable Systems on Unreliable Networked Platforms. Springer, 2007, pp. 143-160.
[24]
Nitta, C. Pandey, R. and Ramin, Y. Y-threads: Supporting concurrency in wireless sensor networks, in Distributed Computing in Sensor Systems. Springer, 2006, pp. 169-184.
[25]
Grossman, D. Type-safe multithreading in cyclone, ACM Sigplan Notices, vol. 38, no. 3, pp. 13-25, 2003.
[26]
Grossman, D. Morrisett, G. Jim, T. Hicks, M. Wang, Y. and Cheney, J. Region-based memory management in cyclone, ACM Sigplan Notices, vol. 37, no. 5, pp. 282-293, 2002.
[27]
Gay D. and Aiken, A. Language support for regions, ACM Sigplan Notices, vol. 36, no. 5, pp. 70-80, 2001.
[28]
Walker D. and Watkins, K. On regions and linear types, ACM Sigplan Notices, vol. 36, no. 10, pp. 181-192, 2001.
[29]
Fähndrich, M. Aiken, M. Hawblitzel, C. Hodson, O. Hunt, G. Larus, J. R. and Levi, S. Language support for fast and reliable message-based communication in singularity os, ACM SIGOPS Operating Systems Review, vol. 40, no. 4, pp. 177-190, 2006.
[30]
Boehm, H.-J. Threads cannot be implemented as a library, ACM Sigplan Notices, vol. 40, no. 6, pp. 261-268, 2005.
[31]
Ousterhout, J. Why threads are a bad idea (for most purposes), presentation at the 1996 Usenix Annual Technical Conference, San Diego, CA, USA, 1996.
[32]
von Behren, J. R. Condit, J. and Brewer, E. A. Why events are a bad idea (for high-concurrency servers), in HotQS, 2003, pp. 19-24.
[33]
Levis, P. Madden, S. Polastre, J. Szewczyk, R. Whitehouse, K. Woo, A. Gay, D. Hill, J. Welsh, M. Brewer, E. et al., Tinyos: An operating system for sensor networks, in Ambient Intelligence. Springer, 2005, pp. 115-148.
[34]
Bernauer A. and Römer, K. A comprehensive compiler-assisted thread abstraction for resource-constrained systems, in Information Processing in Sensor Networks (IPSN), 2013 ACM/IEEE International Conference on. IEEE, 2013, pp. 167-177.
[35]
Gu, B. Kim, Y. Heo, J. and Cho, Y. Shared-stack cooperative threads, in Proceedings of the 2007 ACM Symposium on Applied Computing, 2007, pp. 1181-1186.
[36]
Tofte M. and Talpin, J.-P. Region-based memory management, Information and Computation, vol. 132, no. 2, pp. 109-176, 1997.
[37]
Tofte M. and Birkedal, L. A region inference algorithm, ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 20, no. 4, pp. 724-767, 1998.
[38]
Lee, E. A. Cyber physical systems: Design challenges, in Object Oriented Real-Time Distributed Computing (ISORC), 2008 11th IEEE International Symposium on. IEEE, 2008, pp. 363-369.
Tsinghua Science and Technology
Pages 130-141
Cite this article:
Soulier P, Li D, Williams JR. A Survey of Language-Based Approaches to Cyber-Physical and Embedded System Development. Tsinghua Science and Technology, 2015, 20(2): 130-141. https://doi.org/10.1109/TST.2015.7085626

554

Views

71

Downloads

17

Crossref

N/A

Web of Science

18

Scopus

2

CSCD

Altmetrics

Received: 26 January 2015
Revised: 29 March 2015
Accepted: 30 March 2015
Published: 23 April 2015
© The author(s) 2015
Return