<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id custom-type="elpub" pub-id-type="custom">mais-1106</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Оригинальные статьи</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Articles</subject></subj-group></article-categories><title-group><article-title>Верификация Си-программ: объяснение условий корректности и стандартная библиотека</article-title><trans-title-group xml:lang="en"><trans-title>C Program Verification:
VC Explanation and the Standard Library</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Промский</surname><given-names>Алексей Владимирович</given-names></name><name name-style="western" xml:lang="en"><surname>Promsky</surname><given-names>A. V.</given-names></name></name-alternatives><email xlink:type="simple">promsky@iis.nsk.su</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff xml:lang="ru" id="aff-1"><institution>Институт систем информатики имени А.П. Ершова СО РАН</institution><country>Russian Federation</country></aff><pub-date pub-type="collection"><year>2011</year></pub-date><pub-date pub-type="epub"><day>20</day><month>12</month><year>2011</year></pub-date><volume>18</volume><issue>4</issue><fpage>157</fpage><lpage>167</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Промский А.В., 2011</copyright-statement><copyright-year>2011</copyright-year><copyright-holder xml:lang="ru">Промский А.В.</copyright-holder><copyright-holder xml:lang="en">Promsky A.V.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/1106">https://www.mais-journal.ru/jour/article/view/1106</self-uri><abstract><p>Представлены два направления развития проекта по верификации Си-программ, разрабатываемого в ИСИ СО РАН. Во-первых, аксиоматическая семантика языка C-kernel была расширена семантической разметкой. Метки, выводимые непосредственно исчислением Хоара, соответствуют различным аспектам условий корректности (УК). Эти метки могут быть извлечены из термов и преобразованы в пояснения на естественном языке. Пояснения, понятные обычному пользователю системы верификации, могут быть полезны для понимания УК и локализации ошибок. Во-вторых, было специфицировано подмножество стандартной библиотеки языка Си. Спецификации написаны на языке ACSL и соответствуют модели памяти языка C-light. В работе представлены примеры использования этих двух подходов.</p></abstract><trans-abstract xml:lang="en"><p>The C program verification project is being developed in IIS. Its latest extension is twofold. First, the labeled variant of axiomatic semantics of the C-kernel language was proposed. The labels, introduced in the calculus, correspond to various concepts inherent in verification conditions (VC). These labels can be extracted from terms and rendered into explanations written in the natural language. User-friendly explanations can play a crucial role in VC understanding and error localization. Second, a subset of the C standard library was specified. The specifications written in ACSL correspond to the C-light memory model. The examples in the paper illustrate the use of these two techniques.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>верификация</kwd><kwd>спецификация</kwd><kwd>аксиоматическая семантика</kwd><kwd>язык C-light</kwd><kwd>ACSL</kwd><kwd>условие корректности</kwd><kwd>стандартная библиотека</kwd></kwd-group><kwd-group xml:lang="en"><kwd>verification</kwd><kwd>specification</kwd><kwd>axiomatic semantics</kwd><kwd>C-light language</kwd><kwd>ACSL</kwd><kwd>verification condition</kwd><kwd>standard library</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Baudin P., Filliatre J.C., Marche C., Monate B., Moy Y., Prevosto V. ACSL: ANSI/ISO C Specification Language &lt;http://www.frama-c.cea.fr/download/acsl_1.4.pdf&gt;</mixed-citation><mixed-citation xml:lang="en">Baudin P., Filliatre J.C., Marche C., Monate B., Moy Y., Prevosto V. ACSL: ANSI/ISO C Specification Language &lt;http://www.frama-c.cea.fr/download/acsl_1.4.pdf&gt;</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Cohen E., Dahlweid M., Hillebrand M.A., Leinenbach D., Moskal M., Santen T., Schulte W., Tobies S. VCC: A Practical System for Verifying Concurrent C // Proc. TPHOLs 2009. LNCS. 2009. Vol. 5674. P. 23-42.</mixed-citation><mixed-citation xml:lang="en">Cohen E., Dahlweid M., Hillebrand M.A., Leinenbach D., Moskal M., Santen T., Schulte W., Tobies S. VCC: A Practical System for Verifying Concurrent C // Proc. TPHOLs 2009. LNCS. 2009. Vol. 5674. P. 23-42.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Denney E., Fischer B. Explaining Verification Conditions // Proc. AMAST 2008. LNCS. 2008. Vol. 5140. P. 145-159.</mixed-citation><mixed-citation xml:lang="en">Denney E., Fischer B. Explaining Verification Conditions // Proc. AMAST 2008. LNCS. 2008. Vol. 5140. P. 145-159.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Filliatre J.C., Marche C. Multi-prover verification of C programs // Proc. ICFEM 2004. LNCS. 2004. Vol. 3308. P. 15-29.</mixed-citation><mixed-citation xml:lang="en">Filliatre J.C., Marche C. Multi-prover verification of C programs // Proc. ICFEM 2004. LNCS. 2004. Vol. 3308. P. 15-29.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Fraer R. Tracing the origins of verification conditions. Rocquencourt, 1996. 17 p. (Rapp. / INRIA; N 2840).</mixed-citation><mixed-citation xml:lang="en">Fraer R. Tracing the origins of verification conditions. Rocquencourt, 1996. 17 p. (Rapp. / INRIA; N 2840).</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Leino K.R.M., Millstein T., Saxe J.B. Generating error traces from verification condition counterexamples // Science of Computer Programming. 2005. Vol. 55, N 1-3. P. 209-226.</mixed-citation><mixed-citation xml:lang="en">Leino K.R.M., Millstein T., Saxe J.B. Generating error traces from verification condition counterexamples // Science of Computer Programming. 2005. Vol. 55, N 1-3. P. 209-226.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Nepomniaschy V.A., Anureev I.S., Mikhailov I.N., Promsky A.V. Towards verification of C programs. C-Light language and its formal semantics // Programming and Computer Software. 2002. Vol. 28(6). P. 314-323.</mixed-citation><mixed-citation xml:lang="en">Nepomniaschy V.A., Anureev I.S., Mikhailov I.N., Promsky A.V. Towards verification of C programs. C-Light language and its formal semantics // Programming and Computer Software. 2002. Vol. 28(6). P. 314-323.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Nepomniaschy V.A., Anureev I.S., Promsky A.V. Towards verification of C programs: Axiomatic semantics of the C-kernel language // Programming and Computer Software. 2003. Vol. 29(6). P. 338-350.</mixed-citation><mixed-citation xml:lang="en">Nepomniaschy V.A., Anureev I.S., Promsky A.V. Towards verification of C programs: Axiomatic semantics of the C-kernel language // Programming and Computer Software. 2003. Vol. 29(6). P. 338-350.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Promsky A.V. Towards C-light program verification: Overcoming the obstacles // Proc. PU-2009, 19-23 June, Altai Mountains, Russia, 2009. P. 53-63.</mixed-citation><mixed-citation xml:lang="en">Promsky A.V. Towards C-light program verification: Overcoming the obstacles // Proc. PU-2009, 19-23 June, Altai Mountains, Russia, 2009. P. 53-63.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Promsky A.V. Error-tracing semantics for C-kernel // Bull. Nov. Comp. Center, Comp. Science. 2010. 31. P. 123-138.</mixed-citation><mixed-citation xml:lang="en">Promsky A.V. Error-tracing semantics for C-kernel // Bull. Nov. Comp. Center, Comp. Science. 2010. 31. P. 123-138.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
