Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Программированиеи компьютеры /

Программно-методический комплекс для обучения процессу создания компиляторов

←предыдущая  следующая→
1 2 3 4 5 



Скачать реферат


МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ВОТКИНСКИЙ ФИЛИАЛ ИЖ Г Т У

Кафедра Организации вычислительных процессов и систем управления

К защите допустить “____”_________ 2003 г

Зав. кафедрой ___________

дипломный проект

ТЕМА:

РАСЧЕТНО - ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Выполнил студент группы Д – 1061 _________ А.И. Кузнецов

Руководитель проекта ст. преподаватель _________

Консультант по профессор, д.т.н. _________

охране труда

Консультант по эко- доцент, к.т.н. _________

номической части

Председатель экс- ст. преподаватель _________

пертной комиссии

Воткинск 2003

Определения

В настоящем дипломном проекте применяются следующие термины с соответствующими определениями.

Ассемблер - программа, которая переводит исходную программу, написанную на автокоде или на языке ассемблера (что, суть, одно и то же), в объектный (исполняемый) код.

БНФ (Бэкуса нормальная форма) – грамматика, состоящая из конечного множества правил, определяющих в совокупности язык программирования.

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

Идентификатор – имя переменной, процедуры, функции, программы.

Инструкция – синтаксическая структура, содержащая ключевые, шумовые слова и конструкции. Бывают простые и структурированные. Простые инструкции не содержат в себе других вложенных инструкций (присваивание, GOTO). Структурированные инструкции могут содержать вложенные инструкции (IF THEN ELSE ).

Компилятор – системная программа, выполняющая преобразование программы, написанной на одном алгоритмическом языке, в программу на языке, близком к машинному, и в определенном смысле эквивалентную первой.

Лексема – единица программы, получающаяся в результате лексического анализа, например: for, i, 10, integer, + и т. п.

Лексический анализ – выделение в исходной программе элементарных составляющих: идентификаторов, ограничителей, символов операторов, чисел, ключевых слов, шумовых слов, пробелов, комментариев и т. п.

Литера – любой символ, множество литер составляют лексему.

Литерал – численное или строковое значение, заданное один раз, и не изменяемое в течение программы.

Метод операторного предшествования – восходящий метод грамматического разбора, основан на анализе пар последовательно расположенных операторов исходной программы и решении вопроса о том, какой из них должен выполняться первым.

Нетерминальный символ – имя конструкции, определенной внутри грамматики.

Рекурсивный спуск – нисходящий метод грамматического разбора, основан на том, что для каждого нетерминального символа, определенного в грамматике, существует отдельная процедура обработки. При этом в процессе своей работы она может вызывать подобные процедуры

Семантика языка программирования - это смысл, который закладывается в каждую конструкцию языка.

Семантический анализ - это проверка смысловой правильности конструкции. Например, если мы в выражении используем переменную, то она должна быть определена ранее по тексту программы, а из этого определения может быть получен ее тип. Исходя из типа переменной, можно говорит о допустимости операции с данной переменной.

Семантический анализ – в нем обрабатываются структуры, распознанные синтаксическим анализатором, и начинает обретать очертания выполняемый код.

Символьное имя – одно из имен, разрешенных в языке, не являющееся терминальным символом.

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

Синтаксический анализ (грамматический разбор) – формирует синтаксическую единицу – выражение, инструкцию, вызов подпрограммы, декларацию, которые далее обрабатываются семантическим анализатором. Пример структуры: FOR TO int DO .

Синтаксический разбор – процесс получения дерева синтаксического разбора на основе заданной грамматики.

Сканер (лексический анализатор) – программа распознавания лексем.

Спецификатор – порядковый номер в таблице, куда занесена лексема.

Терминальный символ – конечный неделимый элемент конструкции языка, является зарезервированным словом (например READ, (, +).

Транслятор – это системная программа, выполняющая преобразование программы, написанной на одном алгоритмическом языке, в программу на другом алгоритмическом языке в определенном смысле эквивалентную первой.

Содержание

Введение 19

1 Анализ предметной области 20

1.1 Компиляторы 20

1.2 Логическая структура компилятора 21

1.3 Лексический анализ. Сканер 24

1.4 Синтаксический и семантический анализ 28

1.5 Грамматики 31

1.6 Формирование промежуточного кода 34

Метод четверок 36

1.7 Обоснование создания учебного комплекса 37

1.8 Обзор существующих разработок 38

1.9 Обоснование разработки 39

2 Создание учебной разработки 42

2.1 Краткое описание учебного компилятора 42

2.2 Описание учебного языка 43

2.3 Лексический анализатор LEXAN 46

2.3.1 Таблица терминальных символов 47

2.3.2 Таблица символических имен 48

2.3.3 Таблица литералов 49

2.3.4 Работа сканера 50

2.3.5 Структура листинга 50

2.3.6 Структура выходного файла 50

2.3.7 Примерное задание для студента 52

2.3.8 Описание работы лексического анализатора 53

2.4 Синтаксический анализатор SinAn 56

2.4.1 Таблица переходов 56

2.4.2 Правила работы с таблицей переходов 60

2.4.3 Правила таблицы переходов для написания программы 62

2.4.4 Формируемая таблица переходов. Правила заполнения 65

2.4.5 Правила заполнения формируемой таблицы переходов 66

2.4.6 Построение деревьев 81

2.4.7 Семантический анализ 83

2.5 Формирование промежуточного кода 85

Циклы 85

3 Определение трудоемкости по стадиям разработки 89

3.1 Методика расчета 89

3.2 Определение затрат на выполнение проекта по стадиям разработки 92

3.3 Расчет затрат на выполнение проекта по этапам 94

4 Рекомендации по охране труда при работе с учебным комплексом 95

Заключение 97

Список использованных источников 98

Приложения 99

Введение

Каждый преподаватель вправе преподносить материал и обучать студентов по любой из дисциплин так, как он считает нужным.

Преподаватель желает, чтобы знания по преподаваемым наукам лучше усваивались студентами. Часто материал не усваивается из-за того, что нет его наглядного представления, нет материалов, будь то программных или выполненных в виде плакатов, стендов, способствующих более глубокому пониманию.

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

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

1 Анализ предметной области

1.1 Компиляторы

Транслятор - это программа, которая переводит исходную программу в эквивалентную ей объектную программу. Если объектный язык представляет собой автокод или некоторый машинный язык, то транслятор называется компилятором.

Автокод очень близок к машинному языку; большинство команд автокода - точное символическое

←предыдущая  следующая→
1 2 3 4 5 



Copyright © 2005—2007 «Mark5»