Турбо Паскаль

Лекции по построению компилятора на 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. Приведем пример функции на ассемблере




Турбо Паскаль 6.0

Это руководство содержит полное описание Turbo Vision - новому подходу к разработке прикладных систем. Мы опишем не только что и как может делать Turbo Vision, но и для чего. Если Вы потратите время на то, чтобы понять основные принципы Turbo Vision, Вы обнаружите, что это удобный, сохраняющий время и продуктивный инструмент: Вы сможете создавать разумные интерактивные программы, затрачивая на это меньше времени, чем Вы думаете.

Что такое Turbo Vision?
После создания ряда программ с окнами, диалогом, меню и поддержкой мышки в фирме Borland, мы решили объединить все эти возможности в набор инструментов. Объектно-ориентированное программирование дало нам средство, и Turbo Vision - его результат. Мы использовали Turbo Vision для написания новой интегрированной среды разработки для среды Turbo Pascal, затратив на это меньше времени, чем если бы мы писали ее из отдельных частей.

Модификация поведения видимых элементов
До этого момента Вы видели как ведут себя стандартные видимые элементы по умолчанию. Но иногда Вам потребуется, чтобы видимые элементы выглядели или действовали несколько по-другому и Turbo Vision предоставляет такую возможность. Этот раздел объясняет способы модификации стандартных видимых элементов.

Процедуры и функции
Эта глава содержит алфавитный список всех стандартных объектов Turbo Vision с объяснением их назначения и использования, с полями, методами и палитрами цветов. Чтобы найти информацию по определенному объекту помните, что многие свойства объектов в иерархии наследуются от предков. Вместо бесконечного дублирования всей информации эта глава описывает только поля и методы, которые добавляются или изменяются в этом объекте

Процедура InitMemory Memory
Функция Инициализирует обработчик системных ошибок Turbo Vision, переопределяя вектора прерываний 09H, 1BH,21H, 23H, 24H и очищая состояние Ctrl-Break в DOS. Вызывается автоматически посредством TApplication.Init.