Details

Title: Эксперементы с реализацией языка охраняемых команд Дейкстры: выпускная квалификационная работа бакалавра: направление 01.03.02 «Прикладная математика и информатика» ; образовательная программа 01.03.02_02 «Системное программирование»
Creators: Соломатин Макар Александрович
Scientific adviser: Новиков Федор Александрович
Other creators: Арефьева Людмила Анатольевна
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт прикладной математики и механики
Imprint: Санкт-Петербург, 2021
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: разработка интерпретатора; язык охраняемых команд; формальная верификация программ; пошаговое уточнение; interpreter development; guarded command language; program formal verification; stepwise refinement
Document type: Bachelor graduation qualification work
File type: PDF
Language: Russian
Level of education: Bachelor
Speciality code (FGOS): 01.03.02
Speciality group (FGOS): 010000 - Математика и механика
Links: Отзыв руководителя; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2021/vr/vr21-4130
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key: ru\spstu\vkr\13931

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

В данной работе изложен подход к доказательству корректности программ с помощью построения их денотационной семантики на основе определенной семантики операторов языка. Для этого рассмотрен и реализован язык охраняемых команд, предложенный Э. Дейкстрой в своем труде "Дисциплина программирования". Реализация языка состоит из интерпретатора программ и программного инструмента, выводящего предусловие программы по заданному постусловию. Язык снабжен средствами, позволяющими роектировать сложные алгоритмы методом пошагового уточнения. Рассмотрены примеры доказательства корректности некоторых лгоритмов с помощью этого инструмента. Язык охраняемых команд вместе с разработанными инструментами подходит как для построения корректных алгоритмов, так и для их публикации вместе с доказательством их корректности. Язык охраняемых команд хоть и является удобным для проведения формальных рассуждений, он не снимает с плеч программиста необходимости проектировать программный код, спецификацию программы и ее инварианты.

This work presents an approach to proving the correctness of programs by constructing ther denotational semantics based on defined semantics of language operators. To do this, there was considered and implemented the guarded command language, proposed by E. Dijkstra in his work "A discipline of programming". The implementation of the language consists of a interpreter and a software tool that derives program precondition for a given postcondition and invariants. The language is developed with tools that allow to design complex algorithms using the stepwise refinement method. Some examples of proving the correctness of algorithms are considered. The guarded command language, alongside with the developed tools, is suitable both for building correct algorithms and for publishing them alongside with their correctness proof. Although the guarded command language is convenient for conducting formal reasoning, it does not remove the need to designb the program specification, program code and it's invariants from the programmer shoulders.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users SPbPU Read Print Download
-> Internet Anonymous

Table of Contents

  • Эксперементы с реализацией языка охраняемых команд Дейкстры
    • Введение
    • 1. Денотационная семантика
    • 2. Описание языка
    • 3. Разработка интерпретатора и анализатора
    • 4. Примеры программ
    • Заключение
    • Список использованных источников
    • Приложение 1. Грамматическое описание языка

Usage statistics

stat Access count: 19
Last 30 days: 2
Detailed usage statistics