Компилятор модельного языка программирования - Курсовая работа

бесплатно 0
4.5 85
Разработка на языке программирования C# в среде Microsoft Visual Studio 2010 на базе Microsoft NET Framework 4 (4.5) программного средства, реализующего компилятор модельного языка программирования. Лексический, синтаксический и семантический анализатор.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Эта теория возникла в 50-е годы в работах американского лингвиста Но уже в следующем десятилетии синтаксические методы нашли широкое практическое применение в области разработки и реализации языков программирования. В настоящее время искусственные языки, использующие для описания предметной области текстовое представление, широко применяются не только в программировании, но и в других областях. С их помощью описывается структура всевозможных документов, трехмерных виртуальных миров, графических интерфейсов пользователя и многих других объектов, используемых в моделях и в реальном мире.Составить таблицы лексем и диаграмму состояний с действиями для распознавания и формирования лексем языка. По диаграмме с действиями написать функцию сканирования текста входной программы на модельном языке. Разработать программное средство, реализующее лексический анализ текста программы на входном языке. Реализовать синтаксический анализатор текста программы на модельном языке. Построить цепочку вывода и дерево разбора простейшей программы на модельном языке из начального символа грамматики.Определение понятия «идентификатор» с использованием РБНФ имеет вид В соответствии с данными правилами синтаксис модельного языка будет выглядеть следующим образом ::= plus | min | or | mult |div | and | end | dim | integer| real | boolean |as | if | then | else | for | to |do | while| read |write | true | false | NE | EQ | LT | LE | GT | GE OPERL ® Oper; | Oper; OPERL IF ® if Virag then Oper | if Virag then Oper else OperЛексический анализатор (ЛА) - это первый этап процесса компиляции, на котором символы, составляющие исходную программу, группируются в отдельные минимальные единицы текста, несущие смысловую нагрузку - лексемы. Имя Назначение Вход Выход void gc() процедура считывания очередного символа текста в переменную ch исходная строка - bool Let() проверка, является ли ch буквой очередной символ результат проверки bool Digit() проверка, является ли ch цифрой очередной символ значение буфера void NULLB() обнуление буфера B буфера B - void NULLS() обнуление буфера S буфера S - void Add() процедура добавления очередного символа в конец буфера B очередной символ буфера B void ADDDIGIT() процедура добавления очередного символа в конец буфера S очередной символ буфера S bool AFHO() проверка, принадлежности kb ch диапазону a-f,h,0 очередной символ результат проверки bool AFH() проверка, принадлежности kb ch диапазону a-f,h очередной символ результат проверки void Look(List ntable) процедура поиска лексемы буфера B в таблицу t таблица лексем номер лексемы в таблицуМетод рекурсивного спуска или нисходящий разбор - это один из методов определения принадлежности входной строки к некоторому формальному языку, описанному контекстно-свободной грамматикой (КС-грамматика).

План
Содержание

Введение

1. Постановка задачи

2. Формальная модель задачи

3. Спецификация основных процедур и функций

3.1 Лексический анализатор

3.2 Синтаксический анализатор

3.3 Семантический анализатор

3.3.1 Обработка описаний

3.3.2 Анализ выражений и проверка правильности операторов

3.4 Генерации внутреннего представления программы

3.5 Интерпретатор программы

4. Структурная организация данных

4.1 Спецификация входной информации

4.2 Спецификация выходной информации

5. Укрупненная схема алгоритма программного средства

5.1 Конечный автомат

6. Руководство пользователя

Заключение

Список использованной литературы

Приложение

Введение
Теория формальных языков и грамматик является основным разделом математической лингвистики - специфической математической дисциплины, ориентированной на изучение структуры естественных и искусственных языков.

Эта теория возникла в 50-е годы в работах американского лингвиста

Н. Хомского. По характеру используемого математического аппарата теория формальных грамматик и языков близка к теории алгоритмов и к теории автоматов.

Но уже в следующем десятилетии синтаксические методы нашли широкое практическое применение в области разработки и реализации языков программирования.

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

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

Цель курсовой работы: - закрепление теоретических знаний в области теории формальных языков, грамматик, автоматов и методов трансляции;

- формирование практических умений и навыков разработки собственного компилятора модельного языка программирования.

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?