Ученые из Университета Манчестера предлагают ESBMC-Python: первую BMC-подтвержденную версию Python-кода для формальной верификации программ на Python

 Researchers at the University of Manchester Proposes ESBMC-Python: The First BMC-based Python-code Verifier for Formal Verification of Python Programs

“`html

Формальная верификация и ее значение для программирования

Формальная верификация важна в программной инженерии для обеспечения корректности программы через математическое доказательство. Одним из широко используемых методов для этой цели является ограниченная проверка модели (BMC), которая включает в себя проверку корректности программы в заданных пределах. Python, язык программирования, предпочтительный в сферах веб-разработки, обработки изображений и искусственного интеллекта, представляет уникальные проблемы для формальной верификации из-за своей динамической природы и отсутствия явной информации о типах.

Проблемы верификации Python

Верификация программ на Python затруднена из-за динамической типизации, что затрудняет использование традиционных инструментов статического анализа для обеспечения корректности программы. Отсутствие явных аннотаций типов создает сложности при обеспечении безопасности и корректности Python-программ, особенно в системах с критическими требованиями безопасности.

Решение: ESBMC-Python

Исследователи из Университета Манчестера и TPV Technology представили ESBMC-Python, новый инструмент для верификации Python-программ. ESBMC-Python использует эффективный ограниченный проверщик модели на основе SMT для формальной верификации кода на Python. Этот инструмент преобразует программы на Python в абстрактные синтаксические деревья, а затем добавляет аннотации типов для работы с BMC. Такой подход позволяет обойти сложности, вызванные динамической типизацией Python.

Результаты и практическое применение

ESBMC-Python продемонстрировал высокую эффективность при проверке 85 программ на Python, покрывающих различные функции реальных приложений, и способен обнаруживать критические ошибки, как, например, в спецификации согласования Ethereum. Этот инструмент обеспечивает безопасность и корректность Python-программ, представляя ценность для будущих верификационных инструментов.

“`

Мобильная разработка на заказ и готовые решения

Мобильная разработка

Готовые и индивидуальные решения

Веб решения - разработка сайтов и сервисов

Web решения

Получите бесплатную консультацию по веб-разработке прямо сейчас

Аутсорсинг, подбор специалистов и команд разработки

Аутсорсинг

Выберите своего специалиста сегодня и начните свой проект