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

Федеральное агентство образования Р.Ф.

Государственное образовательное учреждение высшего профессионального образования ВлГУ

Кафедра ВТ

Курсовая работа

по дисциплине

Системное программное обеспечение

Разработка компилятора с языка Паскаль

на язык Ассемблера

Выполнил:

ст. гр. ИВТ-102

Парневич И.В.

Принял:

Маскеев С.В.

Владимир, 2004

Введение.

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

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

Мнемоника — это возможность подстановки осмысленных для человека символов и фраз в конструкциях машинного языка.

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

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

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

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

1 Задание на проектирование

Разработать транслятор языка высокого уровня Pascal на язык ассемблера. Реализовать следующие конструкции входного языка:

  • арифметические операции +, –, *, div, mod;

  • скобочные выражения;

  • оператор присваивания;

  • составной оператор;

  • пустой оператор;

Дополнительно были реализованы следующиее конструкции:

  • целый тип данных;

  • функции, работа с функциями, выход из них, передача данных по указателям;