Для студентов СПбГУ по предмету ДругиеРасширяемый генератор синтаксически корректных программ для обучения программированиюРасширяемый генератор синтаксически корректных программ для обучения программированию
2024-08-052024-08-05СтудИзба
Курсовая работа: Расширяемый генератор синтаксически корректных программ для обучения программированию
Описание
Содержание
2
3
Введение
Введение................................... | 4 | ||
Постановказадачи............................. | 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 | |
| | | |
2
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 | ||
| | | |
3
Введение
- настоящее время знание языка программирования является необхо-димым для специалиста в отрасли информационных технологий, а обучение им - крайне востребованным. На сегодняшний день программы по обучению языкам программирования есть не только в университетах, но и на различных образовательных платформах в интернете. В связи с ростом числа учащихся подобных курсов и ослабления контакта между студентом и преподавателем острее встает проблема создания учебных материалов, в частности практиче-ских заданий. Требуется создавать их в большем объеме и в то же время де-лать их разнообразными во избежание списывания. Специфически для курсов по изучению языков программирования возникает необходимость создания множества примеров программ на определенную тему или по конкретному шаблону. Создание подобных примеров вручную в нескольких вариантах (в идеале по отдельности для каждого ученика) затруднительно. Таким образом, создание удобного программного инструмента, позволяющего автоматиче-ски генерировать примеры кода на различных языках программирования для учебных задач представляет собой актуальную проблему.
Характеристики курсовой работы
Список файлов
Расширяемый генератор синтаксически корректных программ для обучения программированию.doc