Abstract
With the aim of the verification of programs in the C-light language [1], its kernel C-kernel is separated, and an axiomatic semantics for it is suggested. A theorem on soundness of the axiomatic semantics of C-kernel with respect to its operational semantics is proved. The C-light language is used as an input language of the program verification system, which includes a translator to C-kernel and a generator of the correctness conditions for C-kernel programs, which is based on its axiomatic semantics.
Similar content being viewed by others
REFERENCES
Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., and Promskii, A.V., Towards Verification of C Programs: C-Light Language and Its Formal Semantics, Programmirovanie, 2002, no. 6, pp. 1–13.
Black, P.E. and Windley, Ph.J., Inference Rules for Programming Languages with Side Effects in Expressions, Proc. of the 9th Int. Conf. on Theorem Proving in HOL, Lecture Notes in Computer Science, vol. 1125, pp. 56–60, Berlin: Springer, 1996.
Fradet, P., Caugne, R., and Le Metayer, D., Static Detection of Pointer Errors: An Axiomatization and a Checking Algorithm, Proc. Eur. Symp. on Programming (ESOP96), Lecture Notes in Computer Science, vol. 1058, pp. 125–140, Berlin: Springer, 1996.
Norrish, M., C Formalized in HOL, PhD Dissertation, Computer Lab., Univ. of Cambridge, 1998.
Nepomniaschy, V.A. and Ryakin, O.M., Prikladnye metody verifikatsii programm (Applied Methods of Program Verification), Moscow: Radio i Svyaz', 1988.
Apt, K.R. and Olderog, E.R., Verification of Sequential and Concurrent Programs, Springer, 1991.
Hoare, C.A.R., An Axiomatic Basis for Computer Programming, Commun. ACM, 1969, vol. 12, no. 1, pp. 576–580.
Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., and Promskii, A.V., Toward Verification of C Programs: C-light Language, Konferentsiya, posvyashchennaya 90-letiyu so dnya rozhdeniya A.A. Lyapunova (Proc. of Conf. Devoted to the 90th Anniversary of the Birth of A.A. Lyapunov), Novosibirsk, 2001, pp. 423–432 (keynote paper).
Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., and Promskii, A.V., Toward Verification of C Programs. Part 1: C-light Language, Preprint of Inst. of Information Systems, Sib. Div., Russ. Acad. Sci., Novosibirsk, 2001, no. 84.
Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., and Promskii, A.V., Toward Verification of C Programs. Part 3: Translation from C-light to C-kernel and Its Formal Justification, Preprint of Inst. of Information Systems, Sib. Div., Russ. Acad. Sci., Novosibirsk, 2002, no. 97.
ISO/IEC 9899:1999, Programming languages – C, 1999.
Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., and Promskii, A.V., Toward Verification of C Programs. Part 2: C-kernel Language and Its Axiomatic Semantics, Preprint of Inst. of Information Systems, Sib. Div., Russ. Acad. Sci., Novosibirsk, 2001, no. 87.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Nepomniaschy, V.A., Anureev, I.S. & Promskii, A.V. Towards Verification of C Programs: Axiomatic Semantics of the C-kernel Language. Programming and Computer Software 29, 338–350 (2003). https://doi.org/10.1023/B:PACS.0000004134.24714.e5
Issue Date:
DOI: https://doi.org/10.1023/B:PACS.0000004134.24714.e5