Тема: Базовая часть транслятора экспериментального языка программирования на основе Oberon-07
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1 Описание предметной области 6
1.1 Язык программирования Oberon-07 6
1.2 Процедурно-параметрическое программирование 7
1.3 Трансляторы 8
1.4 Выводы 9
2 Выбор методов реализации 9
2.1 Выбор метода реализации лексического и синтаксического
анализа 10
2.1.1 Регулярные выражения 10
2.1.2 Генераторы лексических и синтаксических анализаторов 11
2.1.3 Комбинаторные синтаксические анализаторы 11
2.2 Выбор метода реализации генератора промежуточного представления 12
2.3 Выбор языка реализации 12
2.3.1 Язык программирования C 13
2.3.2 Язык программирования C++ 13
2.4 Выводы 13
3 Описание разработанного приложения 14
3.1 Лексический и синтаксический анализаторы 14
3.2 Генератор промежуточного представления 18
3.2.1 Expression 19
3.2.2 Value 19
3.2.3 Type 20
3.2.4 Statement 20
3.2.5 Section 21
3.2.6 Таблицы символов 21
3.3 Формат промежуточного представления 23
3.4 Интерфейс приложения 24
3.5 Выводы 25
ЗАКЛЮЧЕНИЕ 26
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 27
ПРИЛОЖЕНИЕ А 28
ПРИЛОЖЕНИЕ Б
📖 Введение
Существует множество экспериментальных языков программирования. В них происходит проверка новых возможностей которые теоретически могут повысить те или иные характеристики ПО. При этом некоторые из этих возможностей удачно прошедших проверку временем в экспериментальных языках активно заимствуются языками общего пользования. Например, анонимные функции (лямбда-функции), некогда присутствовавшие только в функциональных языках программирования, сейчас доступны в Java, C#, C++ и во множестве других популярных языков.
Язык программирования Oberon это императивный язык программирования, родственный языку Pascal, первая версия которого была разработана 1986 шведским ученым Никлаусом Виртом. При разработке языка Oberon его создатель следовал принципу: «Сделай все настолько простым, насколько возможно, но не проще» (A. Эйнштейн). Поэтому язык содержит небольшое количество встроенных конструкций и типов, что делает его сравнительно более простым по сравнению с другими современными языками программирования. Oberon-07 — это развитие классического языка Oberon, из него были убраны некоторые конструкции, что еще сильнее упростило язык.
Целью данной выпускной квалификационной работы является создание базовой части транслятора для экспериментального императивного языка программирования семейства Oberon-07 c процедурно-параметрическими расширениями.
Для достижения поставленной цели необходимо решить следующие задачи:
- Реализация лексического анализатора;
- Реализация синтаксического анализатора;
- Реализация генератора промежуточного представления.
✅ Заключение
В процессе выполнения работы были реализованы наборы классов для реализации лексического анализатора, синтаксического анализатора и генератора промежуточного представления. На их основе была реализована базовая часть транслятора языка программирования Oberon-07 с расширениями. В пояснительной записке приведен анализ методов реализации компонентов транслятора и описание основных частей разработанного приложения.
Разработанное приложение соответствует цели работы. Перспективами данной работы является использование промежуточного представления для генерации машинного кода или интерпретации.



