Лекции по построению компилятора на Pascal

       

Лекции по построению компилятора на Pascal

Хотя я по образованию и не специалист в компьютерах, я интересовался компиляторами в течение многих лет. Я покупал и старался разобраться с содержимым практически каждой выпущенной на эту тему книги. И, должен признаться, это был долгий путь. Эти книги написаны для специалистов в компьютерной науке и слишком трудны для понимания большинству из нас. Но с течением лет часть из прочитанного начала доходить до меня. Закрепить полученное позволило то, что я начал самостоятельно пробовать это на своем собственном компьютере. Сейчас я хочу поделиться с вами своими знаниями. После прочтения этой книги вы не станете ни специалистом, ни узнаете всех секретов теории конструирования компиляторов. Я намеренно полностью игнорирую большинство теоретических аспектов этой темы. Вы изучите только практические аспекты, необходимые для создания работающей системы.
В течение всей книги я буду проводить эксперименты на компьютере, а вы будете повторять их за мной и ставить свои собственные эксперименты. Я буду использовать Turbo Pascal 4.0 и периодически буду включать примеры, написанные в TP. Эти примеры вы будете копировать себе в компьютер и выполнять. Если у вас не установлен Turbo Pascal вам будет трудно следить за ходом обучения, поэтому я настоятельно рекомендую его поставить. Кроме того, это просто замечательный продукт и для множества других задач!

Одиночные цифры
В течение всей книги я буду проводить эксперименты на компьютере, а вы будете повторять их за мной и ставить свои собственные эксперименты. Я буду использовать Turbo Pascal 4.0 и периодически буду включать примеры, написанные в TP. Эти примеры вы будете копировать себе в компьютер и выполнять. Если у вас не установлен Turbo Pascal вам будет трудно следить за ходом обучения, поэтому я настоятельно рекомендую его поставить. Кроме того, это просто замечательный продукт и для множества других задач!

Объявления
Очевидно на следующем шаге необходимо решить, что мы подразумеваем под объявлением. Я намереваюсь иметь два вида объявлений: переменных и процедур/функций. На верхнем уровне разрешены только глобальные объявления, точно как в C. Сейчас здесь могут быть только объявления переменных, идентифицируемые по ключевому слову VAR (сокращенно "v").

Деление
Вы можете задаться вопросом, почему необходимо выполнять 32-разрядное деление, когда делимое, скажем, всего лишь байт. Так как число битов в результате может быть только столько, сколько и в делимом, зачем беспокоиться? Причина в том, что если делитель - длинное слово и в нем есть какие-либо установленные старшие разряды, результат деления должен быть равен нулю.



Руководство по языку B.Pascal 7

Данное руководство посвящено используемому в Borland Pascal with Objects языку Паскаль. Оно
* Дает формальное определение языка Borland Pascal.
* Поясняет, как использовать и писать динамически компонуемые библиотеки.
* Знакомит вас с библиотекой исполняющей системы.
* Поясняет, как писать программы для защищенного режима DOS.
* Освещает такие вопросы Borland Pascal, как использование памяти, форматы данных, соглашения по вызову, ввод и вывод и автоматическая оптимизация.
* Описывает, как использовать Borland Pascal с языком ассемблера.

Что такое программа Borland Pascal?
В своей простейшей форме программа Borland Pascal состоит из заголовка программы, который именует программу, и основного прог- раммного блока, выполняющего назначение программы. В основном программном блоке находится секция кода, заключенная между ключе- выми словами begin и end. Приведем простейшую программу, иллюст- рирующую эти принципы: program Privet; begin Writeln('Добро пожаловать в Borland Pascal'); end.

Параметры процедурного типа
Параметры процедурного типа особенно полезны в том случае, когда над множеством процедур или функций нужно выполнить ка- кие-то общие действия. В данном случае процедуры PrintTable представляет собой общее действие, выполняемое над функциями Add, Multiply и Funny.

Функции модуля Strings
Borland Pascal не имеет встроенных подпрограмм, предназначенных специально для работы со строками с завершающим нулем. Эти функции вы можете найти в модуле Strings. Среди них вы найдете функцию StrPCopy, которую можно использовать для копирования строки Паскаля в строку с завершающим нулем, и StrPos, используемую для преобразования строки с завершающим нулем в строку Паскаля

Процедуры и функции ассемблера
До сих пор мы рассматривали конструкцию asm...end, как опе- ратор с обычной частью begin...end. Директива assembler в Borland Pascal позволяет вам писать на встроенном ассемблере целиком процедуры и функции без необходимости begin...end. Приведем пример функции на ассемблере







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