Abstract

The paper presents a survey of existing approaches to modeling memory states of C programs with SMT-formulas in context of static verification. The paper highlights the essential problems of C memory model development and describes two major groups of C memory models: one comprising of models that support unbounded memory regions and another including the models that don’t. Among the models for a priori bounded memory regions the paper discusses a strongest postcondition-based model relying on preliminary alias analysis and a weakest precondition-based model that uses uninterpreted functions and first-order logic to represent pointer predicates. Among the models for unbounded memory areas the paper describes a typed memory model, the Burstall-Bornat model, a region-based model and a model with full support for the Logic of Interpreted Sets and Bounded Quantification (LISBQ) earlier implemented in the HAVOC deductive verification tool.

Highlights

  • The paper highlights the essential problems of C memory model development and describes two major groups of C memory models: one comprising of models that support unbounded memory regions and another including the models that don’t

  • Among the models for a priori bounded memory regions the paper discusses a strongest postcondition-based model relying on preliminary alias analysis and a weakest precondition-based model that uses uninterpreted functions and firstorder logic to represent pointer predicates

  • In Proceedings of the 21st International Conference on Computer Aided Verification (CAV '09)

Read more

Summary

Введение

Язык программирования Си продолжает оставаться одним из наиболее широко используемых языков программирования в области системного программирования, в частности при написании операционных систем, драйверов, сред окружения и средств поддержки времени выполнения для различных языков программирования, а также при написании других систем, предъявляющих высокие требования к производительности или объему исполняемых программ. Во многих современных инструментах статической верификации используются SMT-решатели, и, таким образом, семантика языка программирования, на котором написана верифицируемая программа, частично или полностью моделируется с помощью логических формул в соответствующих теориях Для языка Си основной проблемой при моделировании семантики в виде логических формул является моделирование семантики операций с указателями, в частности, указателями на динамически выделяемые области памяти наперед не ограниченного размера, а также моделирование различных приведений типов указателей и случаев использования объединений. Поэтому задача разработки соответствующих методов эффективного и точного моделирования памяти Си-программ для используемых на практике инструментов статической верификации является одной из ключевых. Помимо развития собственно методов моделирования памяти Си-программ важной задачей является также оценка эффективности этих методов при использовании для верификации реальных промышленных программных систем. Ведутся исследования в направлении интеграции SMT-решателей в инструменты интерактивного доказательства теорем [18, 19], используемых в подходах к верификации программ, основанных на использовании денотационной семантики

Общая схема использования SMT-решателей
Классификация моделей памяти
Модели для ограниченных областей памяти
Использование анализа алиасов
Использование неинтерпретируемых функций и логики первого порядка
Модели для неограниченных областей памяти
Типизированная модель памяти
Модель Бурстала-Борната
Модель с регионами
Полное моделирование семантики относительно логики множеств элементов списков
Findings
Выводы
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.