Для студентов СПбГУ по предмету ДругиеСинтез программ по спецификациям с множественными вызовамиСинтез программ по спецификациям с множественными вызовами
2024-08-102024-08-10СтудИзба
ВКР: Синтез программ по спецификациям с множественными вызовами
Описание
Оглавление
4.2. Поиск ветвей синтезируемой функции с множественными вызовами............................ 30
4.3. Абдукция............................ 31
4.4. Алгоритм синтеза, использующий одну ветку . . . . . . . 32
4.5. Алгоритм синтеза, использующий несколько веток одно-
временно ............................ 35
3
4
Введение
Широко известна задача автоматического создания программ на некотором языке программирования, которые удовлетворяют намере-ниям пользователя, выраженным в форме ограничений [7, 10, 21]. Она называется задачей синтеза программ. Качественный синтез программ делает процесс разработки более надежным и менее трудоёмким. Она лежит на стыке следующих областей — искусственного интеллекта, ма-шинного обучения, формальной верификации, математической логики.
Среди известных подходов к синтезу программ существует эффек-тивный и хорошо масштабируемый подход, называемый функциональ-ным синтезом [8, 9, 15, 16, 17, 18, 19, 27, 30, 35]. В рамках этого подхода синтезируемая программа рассматривается как функция, а намерения пользователя выражаются в виде утверждений на языке исчисления предикатов первого порядка, называемых спецификацией программы, которая связывает входные и выходные параметры функции.
Функциональный синтез накладывает сильные ограничения на фор-мат спецификации. Существующие методы функционального синтеза основываются на эффективных алгоритмах устранения кванторов [8, 15, 16, 17, 19, 27, 30, 35]. Однако в настоящий момент они хорошо ра-ботают только для спецификаций, в которых синтезируемая функция встречается только с одним и тем же фиксированным набором аргу-ментов
Введение | 5 | |||
1. | Постановка задачи | 7 | ||
2. | Обзор | 8 | ||
2.1. | Синтезпрограмм ....................... | 8 | ||
2.2. | Основныеопределения.................... | 8 | ||
2.3. | Постановказадачисинтеза. . . . . . . . . . . . . . . . . . | 10 | ||
2.4. | Синтаксически-управляемый синтез . . . . . . . . . . . . | 12 | ||
2.5. | Перечислительный синтез . . . . . . . . . . . . . . . . . . | 12 | ||
2.5.1. | Наивныеподходы................... | 13 | ||
2.5.2. | Cинтез программ методом Разделяй и Властвуй . | 14 | ||
2.6. | Synth-Lib формат . . . . . . . . . . . . . . . . . . . . . . . | 14 | ||
2.7. | Функциональныйсинтез ................... | 15 | ||
2.7.1. | Синтез, основанный на опровержении . . . . . . . | 16 | ||
2.7.2. Синтез методом ленивой элиминации квантора . . | 17 | |||
2.8. | Z3-решатель .......................... | 20 | ||
3. | Синтез по спецификациям с одиночным вызовом | 22 | ||
3.1. | Поиск ветвей синтезируемой функции . . . . . . . . . . . | 22 | ||
3.2. | Использование модельных проекций . . . . . . . . . . . . | 23 | ||
3.3. | Алгоритм............................ | 24 | ||
3.4. | Пример............................. | 26 |
- Синтез по спецификациям с множественными вызовами 28 4.1. Доказательство нереализуемости спецификации . . . . . 28
4.2. Поиск ветвей синтезируемой функции с множественными вызовами............................ 30
4.3. Абдукция............................ 31
4.4. Алгоритм синтеза, использующий одну ветку . . . . . . . 32
4.5. Алгоритм синтеза, использующий несколько веток одно-
временно ............................ 35
3
5. Инструмент | 40 | |
5.1. | Архитектура.......................... | 40 |
5.2. | Реализацию расширяющего модуля для Z3-решателя . . | 41 |
5.3. | Реализацияэвристик ..................... | 41 |
6. Экспериментальное исследование | 44 | |
6.1. | Спецификации с одиночными вызовами . . . . . . . . . . | 44 |
6.2. | Спецификации с множественными вызовами . . . . . . . | 45 |
6.2.1. Нереализуемые спецификации . . . . . . . . . . . . | 45 | |
6.2.2. Реализуемые спецификации . . . . . . . . . . . . . | 46 | |
Заключение | 48 | |
Список литературы | 49 |
4
Введение
Широко известна задача автоматического создания программ на некотором языке программирования, которые удовлетворяют намере-ниям пользователя, выраженным в форме ограничений [7, 10, 21]. Она называется задачей синтеза программ. Качественный синтез программ делает процесс разработки более надежным и менее трудоёмким. Она лежит на стыке следующих областей — искусственного интеллекта, ма-шинного обучения, формальной верификации, математической логики.
Среди известных подходов к синтезу программ существует эффек-тивный и хорошо масштабируемый подход, называемый функциональ-ным синтезом [8, 9, 15, 16, 17, 18, 19, 27, 30, 35]. В рамках этого подхода синтезируемая программа рассматривается как функция, а намерения пользователя выражаются в виде утверждений на языке исчисления предикатов первого порядка, называемых спецификацией программы, которая связывает входные и выходные параметры функции.
Функциональный синтез накладывает сильные ограничения на фор-мат спецификации. Существующие методы функционального синтеза основываются на эффективных алгоритмах устранения кванторов [8, 15, 16, 17, 19, 27, 30, 35]. Однако в настоящий момент они хорошо ра-ботают только для спецификаций, в которых синтезируемая функция встречается только с одним и тем же фиксированным набором аргу-ментов
Характеристики ВКР
Предмет
Учебное заведение
Семестр
Просмотров
1
Размер
659,5 Kb
Список файлов
Синтез программ по спецификациям с множественными вызовами.doc