Предложен ориентированный на верификацию язык C-light, который является представительным подмножеством языка С. Важные
отличительные черты языка С-light — это детерминированная семантика выражений, ограниченное использование операторов
switch и goto, и применение операций new и delete языка С++ для работы с динамической памятью вместо библиотечных
функций. Для верификации C-light программ применяется двухуровневый подход, включающий этапы трансляции языка C-light в
его ядро — язык C-kernel и генерации условий корректности с помощью аксиоматической семантики C-kernel. Описаны правила
перевода из языка C-light в язык C-kernel и метод формального обоснования их корректности.
A verification-oriented language C-light which is a representative subset of the language C is proposed. Essential features of C-light are
deterministic semantics of expressions, restricted use of statements switch and goto, the use of operators new and delete of the
language C++ to handle with dynamic memory instead of the use of appropriate library functions. We suggest two-level approach to C-light
program verification which includes translation from C-light to its kernel called C-kernel and generation of verification conditions by
axiomatic semantics of C-kernel. Rules for translation from C-light to C-kernel and a method of formal justification of their correctness are
presented.