Тема: Расширяемый генератор синтаксически корректных программ для обучения программированию
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Постановка задачи 5
Глава 1. Обзор и сравнение существующих генераторов программного кода 6
1.1. Понятие генерации программного кода 6
1.2. Automated C++ Program Generator using English Language
Interface 7
1.3. Automatic code generation for C and C++programming .... 7
1.4. Csmith 7
1.5. Liveness-Driven Random Program Generation (ldrgen) 7
1.6. Yarpgen 8
1.7. Deepsmith 8
1.8. SL Random Program Generator 8
1.9. Pyfuzz 8
1.10. Сравнительный анализ найденных инструментов и статей . . 8
1.10.1 Результаты сравнения 11
Глава 2. Разработка инструмента генерации программ 12
2.1. Требования к системе генерации 12
2.2. Схема генерации программ 12
2.3. Промежуточное представление 13
2.4. Шаблоны программ 14
2.5. Архитектура системы 15
2.6. Компоненты системы 17
2.6.1 Веб-сервер 17
2.6.2 Исполнитель программ 17
2.6.3 База данных 17
2.6.4 Сторона клиента 17
2.6.5 Менеджер шаблонов 18
Глава 3. Реализация инструмента генерации программ 19
3.1. Используемые технологии 19
3.1.1 Менеджер шаблонов 19
3.1.2 Веб-сервер 20
3.1.3 База данных 20
3.1.4 Исполнитель программ 20
3.2. Шаблоны программ 21
3.2.1 Внутреннее представление шаблона 21
3.2.2 Конструирование шаблонов 23
3.3. Промежуточное представление (AST) 25
3.4. Генерация текста программы 25
3.5. API 26
3.6. Проверка ответов 27
Заключение 28
Список литературы 29
📖 Введение
✅ Заключение
1. Было проведено исследование существующих решений по генерации программ на предмет их применимости в обучающих целях. В ходе исследования были выявлены достоинства и недостатки имеющихся решений.
2. Были сформулированы требования к генератору обучающих программ, учитывающие используемые модели в аналогах, их достоинства и недостатки. Из основных недостатков были выявлены: отсутствие возможности задать основную логику программы; мало функциональные модели задания шаблона кода при их наличии; отсутствие веб-интерфейса; отсутствие возможности хранения шаблонов и сгенерированных программ; отсутствие возможности генерации изображений.
3. Был реализован инструмент генерации программ, поддерживающий управление шаблонами кода, имеющий потенциал к расширению в сторону поддержки новых языков программирования, в настоящий момент поддерживающий генерацию кода на языке Python с помощью основных синтаксических конструкций.
Таким образом, цель данной работы достигнута в полном объеме.





