Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kurs_My2(+).doc
Скачиваний:
0
Добавлен:
22.11.2019
Размер:
260.1 Кб
Скачать

Содержание работы:

стр.

1. Введение

3

2. Внешний проект

4

Описание синтаксических конструкций входного языка

4

Описание синтаксических конструкций выходного языка

5

Выходные данные для операторов

6

3. Проект архитектуры

8

4. Разработка. Общие параметры системы

9

Лексический анализ

9

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

12

Генератор кода

16

Тестирование

17

5. Заключение

28

6. Приложения

29

Файл, формирующий список лексем из входного файла

29

Файл, формирующий дерево синтаксического разбора из списка лексем

36

Файл, формирующий выходной файл из дерева синтаксического разбора

44


Задание

Заданием на курсовую работу является разработка компилятора для некоторого подмножества операторов АЯ.

Язык реализации - Pascal.

Язык входной - Pascal.

Язык выходной - TASM.

Необходимо разработать компилятор, позволяющий разбирать следующие операторы языка Pascal:

  1. оператор if

  2. оператор while

  3. составной оператор

  4. оператор присваивания

Используемые типы данных:

  1. целые числа - integer

  2. Логический тип - boolean

Реализовать стандартные процедуры:

  1. read

  2. write

  3. readln

  4. writeln

Со следующими операциями:

  1. + сложение

2) - вычитание

3) * умножение

4) / целочисленное деление

5) операциями сравнения: <, >, =, <=, >=, <>

Литература

1. Ахо Альфред В., Ульман, Джефри Д. Теория синтаксического анализа и компиляции. Под редакцией В.М. Курочкиной. – М.: Мир, 1978.

2. Лекции по СПО за 2001 г. для специальности 2201.

3. Программирование на языке Ассемблера: Учеб. пособие. – М.: Высш. шк., 1999.

4. Программирование в интегрированной среде Турбо-Паскаль: Справ. пособие. Мн.: Беларусь, 1992.

1. Введение

Компиляция (от латинского compilatio - ограбление), составление сочинений на основе чужих исследований или чужих произведений без самостоятельной обработки источников; работа, составленная таким методом (Советский энциклопедический словарь, 1983 г.)

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

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

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

Генерация кода - фаза компилятора, в ходе которой по структурному представлению программы строится её код на машинном языке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]