Browse > Article

(Restrictions and translation rules of ANSI-C language for analyzing integrity of C program using SPARK Examiner)  

김진섭 (한국과학기술원 전자전산학과)
차성덕 (한국과학기술원 전자전산학과)
Abstract
The C language is widely adopted for safety-critical systems. However, it is known that the C language is an unsuitable choice for safety-critical system since the C language includes several bad language features such as heavy use of pointers. The aim of this work is to define safe subset of the C language and translate the subset into the SPARK Ada so that we can verify the program's safety using SPARK analysis tools. SPARK is a safe subset of Ada and has been successfully applied to high integrity system development. The C program translated into SPARK has the same integrity level as SPARK, and the program correctness can be verified by using Examiner which is a SPARK analysis tool. An elevator controller case study is presented and is used to demonstrate the potential use of our approach to implement a realistic system. We also developed a translator that automatically translates C code into SPARK in accordance with the translation rules.
Keywords
SPARK; SPARK; Program Analysis; Program Translation; Safety-critical;
Citations & Related Records
연도 인용수 순위
  • Reference
1 George C. Necula, Scott McPeak, Westley Weimer. 'CCured: Type-Safe Retrofitting of Legacy Code'. Proceedings of Principles of Programming Languages, 2002   DOI
2 B. W. Kernighan, D. M. Ritchie. The C Programming Language. Second Edition, Prentice-Hall, Engle-wood, New Jersey, 1988
3 W. J. Cullyer, S. J. Goodenough, B. A. Wichmann. 'The choice of computer language for use in safety-critical systems'. Software Engineering Journal 6(2):51-58, March 1991   DOI   ScienceOn
4 Roger S. Rivett. 'Emerging Software Best Practice and how to be Compliant'. Proceedings of the 6th International EAEC Congress. July 1997
5 D. Evans. 'Static detection of dynamic memory errors.'. Proceedings of ACM SIGPLAN '96. Conf. On PLDI., SIGPLAN Notices, 31(5):44-53, 1996   DOI
6 Les Hatton. 'Safer C : Developing Software for High-integriry and Safety-critical Systems'. McGraw-Hill, 1995
7 Bernard Carre; Joanthan Gamsworthy. 'SPARK-An annotated Ada Subset for Safety-Critical Programming'. ACM Annual International Conference on Ada. Proceeding of the conference on TPJ-ADA '90. 329-402, 3- Dec. 1990   DOI
8 R. Chapman. 'Industrial Experience with SPARK', Praxis Critical System Limited, ACM SIGADA 2000 Conf.
9 Trevor Jim. 'Cyclone: A Safe Dialect of C', USENIX Annual Technical Conference, Monterey, CA, June 2002
10 John Barnes. 'High Integrity Ada: The Spark Approach'. Addison-Wesley, chap. 13, 1996