Programming Language Constructs Supporting Fault Tolerance

Christina Houben, Sebastian Houben


In order to render software viable for highly safety-critical applications, we describe how to incorporate fault tolerance mechanisms into the real-time programming language PEARL. Therefore, we present, classify, evaluate and illustrate known fault tolerance methods for software. We link them together with the requirements of the international standard IEC 61508-3 for functional safety. We contribute PEARL-2020 programming language constructs for fault tolerance methods that need to be implemented by operating systems, and code-snippets as well as libraries for those independent from runtime systems.


Fault tolerance; Functional safety; PEARL; Embedded systems; Software engineering

Full Text:



DIN 66253 Part 3. PEARL for Distributed Systems. Beuth, 1989.

IEC 60848. GRAFCET Specification Language for Sequential Function Charts. IEC, 2013.

IEC 61508-3. Functional safety of electrical/electronic/programmable electronic safety-related systems – Part 3: Software requirements. IEC, 2010.

DIN 66253-2. PEARL-90. Beuth, 1998.

Paul Ammann and John C. Knight. Data diversity: An approach to software fault tolerance. IEEE Trans. Computers, 37(4):418–425, 1988. doi:10.1109/12.2185.

Sohel Anwar, editor. Fault Tolerant Drive By Wire Systems: Impact on Vehicle Safety and Reliability. Bentham, 2011. doi:10.2174/97816080530701120101.

John Barnes. High Integrity Ada – The SPARK Approach. Addison-Wesley, 1997.

Juliane Benra and Wolfgang A. Halang, editors. Software-Entwicklung für Echtzeitsysteme. Springer, 2009. URL:

William Bolton. Mechatronics: Electronic Control Systems in Mechanical and Electrical Engineering, volume 3. Prentice Hall, 2004.

Josef Börcsök. Funktionale Sicherheit. VDE, 4th edition, 2014. URL:

Franck Cappello, Henri Casanova, and Yves Robert. Checkpointing vs. migration for postpetascale supercomputers. In 39th International Conference on Paral lel Processing, ICPP 2010, San Diego, California, USA, 13-16 September 2010, pages 168–177. IEEE Computer Society, 2010. doi:10.1109/ICPP.2010.26.

Vittorio Castelli, Richard E. Harper, Philip Heidelberger, Steven W. Hunter, Kishor S. Trivedi, Kalyanaraman Vaidyanathan, and William P. Zeggert. Proactive management of software aging. IBM Journal of Research and Development, 45(2):311–332, 2001. doi:10.1147/rd.452.0311.

Henan Chen, Yongduan Song, and Danyong Li. Fault-tolerant tracking control of fw-steering autonomous vehicles. In 2011 Chinese Control and Decision Conference (CCDC), pages 92–97, May 2011. doi:10.1109/CCDC.2011.5968152.

Matjaž Colnarič and Domen Verber. Dealing with tasking overload in object oriented real-time applications design. In 6th Workshop on Object-Oriented Real-Time Dependable Systems (WORDS 2001), 8-10 January 2001, Rome, Italy, pages 214–222. IEEE Computer Society, 2001. doi:10.1109/ WORDS.2001.945133.

Li DanYong and Song YongDuan. Adaptive faulttolerant tracking control of 4ws4wd road vehicles: A fully model-independent solution. In Chinese Control Conference (CCC), volume 31, pages 485–492. IEEE, July 2012. URL: http://ieeexplore.

Leberecht Frevert. Lösung von Echtzeitproblemen mit PEARL90-Objekten, 1998. URL:

Kevin Fu. Trustworthy medical device software. Public Health Effectiveness of the FDA 510(k) Clearance Process – Measuring Postmarket Performance and Other Selected Topics, 2011. URL:

Arthur Gelb, editor. Applied Optimal Estimation. MIT Press, 1974. URL:

GI-Working Group 4.4.2 “Real-Time Programming, PEARL”. PEARL 90 Language Report, September 1998. Version 2.2. URL:

Julian Godesa and Robert Hilbrich. Framework für die empirische Bestimmung der Ausführungszeit auf Mehrkernprozessoren. In Wolfgang A. Halang, editor, Funktionale Sicherheit, Echtzeit 2013, Fachtagung des gemeinsamen Fachausschusses Echtzeitsysteme von Gesellschaft für Informatik e.V.(GI), VDI/VDE-Gesellschaft für Mess- und Automatisierungstechnik (GMA) und Informationstechnischer Gesellschaft im VDE (ITG), Boppard, 21. und 22. November 2013, pages 77–86. Springer, 2013. doi:10.1007/978-3-642-41309-4_9.

Wolfgang A. Halang and Matjaž Colnarič. Dealing with exceptions in safety-related embedded systems. In 15th IFAC World Congress, pages 983–988. Elsevier, 2002. doi:10.3182/20020721-6-ES-1901.00985.

Wolfgang A. Halang and Rudolf M. Konakovsky. Sicherheitsgerichtete Echtzeitsysteme. Springer, 2013. URL:

Wolfgang A. Halang and Rudolf J. Lauber. Echtzeitsysteme I. FernUniversität Hagen, 2009.

Wolfgang A. Halang and Janusz Zalewski. Programming languages for use in safety-related applications. Annual Reviews in Control, 27(1):39–45, 2003. doi:10.1016/S1367-5788(03)00005-1.

F. Hubert. Handbuch der Raumfahrttechnik, volume 4, chapter Datenmanagement. Hanser, 2011.

Farnam Jahanian and Aloysius K. Mok. Safety analysis of timing properties in real-time systems. IEEE Trans. Software Eng., 12(9):890–904, 1986. doi:10.1109/TSE.1986.6313045.

Leslie Lamport, Robert E. Shostak, and Marshall C. Pease. The byzantine generals problem. ACM Trans. Program. Lang. Syst., 4(3):382–401, 1982. doi:10.1145/357172.357176.

Edward A. Lee. The problem with threads. IEEE Computer, 39(5):33–42, 2006. doi:10.1109/MC.2006.180.

Jane W. S. Liu, Kwei-Jay Lin, Riccardo Bettati, David Hull, and Albert Yu. Use of imprecise computation to enhance dependability of real-time systems. In Gary M. Koob and Clifford

G. Lau, editors, Foundations of Dependable Computing: Paradigms for Dependable Applications, pages 157–182. Springer US, Boston, MA, 1994. doi:10.1007/978-0-585-27316-7_6.

Reinhard Maier, Günther Bauer, Georg Stöger, and Stefan Poledna. Time-triggered architecture: A consistent computing platform. IEEE Micro, 22(4):36–45, 2002. doi:10.1109/MM.2002.1028474.

Peter Marwedel. Embedded Systems Design. Springer, 2006. URL:

Rainer Müller and Marcel Schaible. Die Programmierumgebung OpenPEARL90. In Wolfgang A. Halang and Herwig Unger, editors, Industrie 4.0 und Echtzeit – Echtzeit 2014, Fachtagung des gemeinsamen Fachausschusses Echtzeitsysteme von Gesellschaft für Informatik e.V.(GI), VDI/VDE-Gesellschaft für Mess- und Automatisierungstechnik (GMA) und Informationstechnischer Gesellschaft im VDE (ITG), Boppard, 20. und 21. November 2014, Informatik Aktuell, pages 31–40. Springer, 2014. doi:10.1007/978-3-662-45109-0_4.

Paula Prata and João Gabriel Silva. Algorithm based fault tolerance versus result-checking for matrix computations. In Digest of Papers: FTCS-29, 29th Annual International Symposium on Fault-Tolerant Computing, Madison, Wisconsin, USA, June 15-18, 1999, pages 4–11. IEEE Computer Society, 1999. doi:10.1109/FTCS.1999. 781028.

Parameswaran Ramanathan. Fault-tolerance in real-time control applications using (m, k)-firm guarantee. In Digest of Papers: FTCS-27, 27th Annual International Symposium on Fault-

Tolerant Computing, Seattle, Washington, USA, June 24-27, 1997, pages 132–141. IEEE Computer Society, 1997. doi:10.1109/FTCS.1997.614086.

B. Randell. System structure for software fault tolerance. ACM SIGPLAN Notices – International Conference on Reliable, 10(6):437–449, April 1975. doi:10.1145/390016.808467.

Charles Preston Shelton. Scalable Graceful Degradation for Distributed Embedded Systems. PhD thesis, Carnegie Mellon University, jun 2003. URL:

Paulo Baltarejo Sousa, Konstantinos Bletsas, Eduardo Tovar, Pedro Souto, and Benny Akesson. Unified overhead-aware schedulability analysis for slot-based task-splitting. Real-Time Systems, 50(5-6):680–735, 2014. doi:10.1007/s11241-014-9204-x.

Jürgen J. Stoll. Fehlertoleranz in verteilten Realzeitsystemen: Anwendungsorientierte Techniken, volume 236 of Informatik-Fachberichte. Springer, 1990.

Dwight Sunada, David Glasco, and Michael J. Flynn. Multiprocessor architecture using an audit trail for fault tolerance. In Digest of Papers: FTCS-29, 29th Annual International Symposium on Fault-Tolerant Computing, Madison, Wisconsin, USA, June 15-18, 1999, pages 40–47. IEEE Computer Society, 1999. doi:10.1109/FTCS.1999.781032.

Matthias Tichy and Holger Giese. Extending Fault Tolerance Patterns by Visual Degradation Rules. In 2005 Workshop on Visual Modeling for Software Intensive Systems (VMSIS) at the the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’05), Dallas, Texas, USA, pages 67–74, September 2005. URL:

Tjerk W. van der Schaaf and L. Kanse. Human Error and System Design and Management, chapter Errors and Error Recovery, pages 27–38. Number 253 in Lecture Notes in Control and Information Sciences. Springer, 2000. URL:

Hongyu Sun Zaipeng Xie and Kewal Saluja. A survey of software fault tolerance techniques, 2006. URL:



Copyright (c) 2016 Christina Houben and Sebastian Houben

Creative Commons License CC BY
This work is licensed under a Creative Commons Attribution 3.0 Germany License (CC BY 3.0 DE).

License URL:

Published by the European Design and Automation Association (EDAA) \ EMbedded Systems Special Interest Group (EMSIG) and Schloss Dagstuhl -- Leibniz-Zentrum für Informatik GmbH, Dagstuhl Publishing.