Некоторые сведения из истории
Язык программирования Pascal разработал в 1968-1971 г.г. Никлаус Вирт в швейцарском институте информатики в городе Цюрихе. Изначальная цель разработки заключалась в необходимости инструмента для обучения программированию как дисциплине. Вскоре обнаружилось, что язык Pascal чрезвычайно эффективен в различных приложениях, начиная от решения небольших вычислительных задач и заканчивая разработкой сложных программных систем: компиляторов, баз данных, операционных систем. На сегодняшний день Pascal достаточно распространен и популярен в мире программирования. Разработаны различные варианты языка для использования практически во всех машинных архитектурах, помимо этого существуют диалекты и проблемно-ориентированные расширения языка Pascal.
Назван язык в честь выдающегося французского математика и физика Блеза Паскаля. К особенностям языка можно отнести строгую типизацию и средства структурного (процедурного) программирования. Pascal стал одним из первых языков подобного уровня.
И все-таки, изначально язык имел много недостатков. К ним относили то, что:
- массивы переменной длины не могли передаваться функциям;
- не было практичных средств для работы с динамической памятью;
- библиотека ввода-вывода была очень ограничена;
- отсутствовали средства, подключающие функции, созданные в других языковых средах;
- отсутствовали средства раздельной компиляции и др.
Нужно отметить, что многие из перечисленных недостатков языка не проявлялись, а даже, можно сказать, становились достоинствами в процессе обучения программированию. Помимо этого основным языком программирования в 70-е годы 20 века был Fortran, который, в свою очередь, имел более существенные недостатки, и Pascal явился значительным шагом вперед. Автор знал о недостатках созданного им языка, в дальнейшем он перестал его развивать. И все же, используя достоинства языка, многие коммерческие и некоммерческие организации разрабатывали системы программирования на его основе.
Среди последних можно выделить фирму Borland, значительно расширившую Turbo Pascal и устранившую довольно большое количество недостатков языка, в то же время они добавили много новых возможностей, в результате чего язык обогатился, но вместе с тем потерял переносимость и общность.
Версии Turbo Pascal
Ниже познакомимся с различными версиями языка Turbo Pascal. Каждый раз, когда разработчики выдавали в свет новую версию, они пытались устранить недостатки предыдущих и тем самым сделать Pascal удобнее и актуальнее.
- Turbo Pascal 1.0 (20.11.1983г.). Данная версия компилировала непосредственно в машинный код. При этом требовалось 32 Кб оперативной памяти. Данная версия имела интегрированный компилятор/редактор, высокую скорость компиляции, позволяла разместить динамические данные в одноименной области памяти.
- Turbo Pascal 2.0 (1984г.). В данной версии увеличили размер самой программы, что позволило использовать до 64 Кб оперативной памяти для размещения кода, стека и данных. Версия для DOS поддерживала арифметический сопроцессор и двоично-десятичную арифметику.
- Turbo Pascal 3.0 (1985г.). Данная версия стала поддерживать оверлейную структуру и графические режимы. Кроме того, версия содержала процедуры, формирующие изображения для IBM PC - совместимых компьютеров, куда входили так называемая «черепаховая» графика, инструментальные пакеты.
- Turbo Pascal 4.0 (1987 г.). В данной версии компиляция осуществляется уже в EXE-файл, а не в COM-файл, как в предыдущих версиях. Кроме этого ввели поддержку модулей с раздельной компиляцией. Размер программ ограничивался лишь объёмом оперативной памяти. Интегрированная среда данной версии управлялась с помощью меню. В данной среде программирования присутствовали: интеллектуальная компоновка модулей, автономный компилятор командной строки, который был специально введен для больших проектов, поскольку их компиляция затруднялась ресурсоемкой IDE. Убрали поддержку оверлеев. Помимо всего перечисленного, была разработана контекстно-чувствительная система помощи. Опции компилятора стали настраиваться в IDE. В версии появился интеллектуальный встроенный компоновщик, исключавший из файлов модулей, прошедших компиляцию, процедуры и функции, которые не использовались в программе.
- Turbo Pascal 5.0 (1988г.). В данной версии стал использоваться встроенный отладчик, который, в свою очередь, позволил выполнять трассировку исходного текста программы, вводить точки останова, просматривать и изменять содержимое переменных, причем, не покидая IDE. Кроме того, отмечается наличие отдельного отладчика (Turbo Debugger), с помощью которого в более поздних версиях можно выполняли отладку программы с удаленной машины через RS-232 интерфейс. Присутствует эмуляция арифметического сопроцессора, а также поддерживались графические драйвера BGI (Borland Graphics Interface). В этой версии возвратили поддержку оверлеев. В комплект поставки включили Turbo Assember, компилятор Turbo Pascal стал поддерживать включаемые в программы, написанные на языке Pascal, OBJ-файлы.
- Turbo Pascal 5.5 (2.05.1989г.). Данная версия построена по принципам объектно-ориентированного программирования. В ней предусматривается копирование в программу примеров справочной системы, а также имеется электронный учебник на диске. В данной среде программирования предусмотрен Turbo Profiler — профилировщик, который фиксирует время выполнения каждого блока анализируемой программы в машинных циклах и миллисекундах для последующей оптимизации критических участков. Автономный отладчик Turbo Debugger дополнили средствами для работы с объектами, теперь с помощью него стало можно просматривать иерархию объектов, вызывать методы, просматривать и модифицировать поля.
- Turbo Pascal 6.0 (1990г). В данной версии появилась библиотека Turbo Vision. Новая IDE, переписанная с помощью Turbo Vision, может поддерживать мышь и редактировать несколько файлов одновременно в разных окнах. Стало возможным задавать во встроенном отладчике условные и по количеству проходов точки останова. В данной среде стали использовать встроенный ассемблер BASM, с помощью которого можно стало в изначальный текст программы помещать ассемблерные вставки. В версии предусмотрели Protected поля и методы для объектов, а также работающий в защищённом режиме компилятор командной строки.
- Turbo Pascal for Windows. В версии можно создавать 16-разрядные программы под Windows. Появилась библиотека объектов Objects Windows Library, сходная по идеологии с Turbo Vision. Имеется графическая IDE, которая работает под Windows.
- Borland Pascal 7.0 (1992г.). Данная версия включила более дешёвый и менее мощный Turbo Pascal 7.0, который поставлялся отдельно. В данной версии можно стало создавать программы под реальный и защищённый 16-битный режим DOS и Windows. Кроме того, в нее ввели поддержку открытых массивов, добавили новое ключевое слово public для доступных полей и методов объекта, открыли исходные тексты системных библиотек и функций времени выполнения (RTL).
- Borland Pascal 7.1 (1994г). Данная версия представляет собой пакет обновлений, который состоит из исполняемых файлов компиляторов командной строки реального и защищенного режимов, интегрированных сред, откомпилированных системных библиотек, отладчика, диспетчеров защищенного режима и др. Данный пакет обновлений был предназначен для установки поверх версии 7.0, в результате он не представлял собой отдельную версию, способную работать самостоятельно.
Достоинства и недостатки Turbo Pascal 7.0
К достоинствам данной среды программирования можно отнести:
- удобства среды разработки, включающей в себя функциональный отладчик, которые доступен в любой момент времени;
- контекстную справочную систему, с помощью которой стало возможным изучение языка без обращения к другим источникам;
- высокую скорость компиляции и высокую скорость выполнения откомпилированных программ;
- встроенную возможность использования вставки на языке ассемблера.
Остановимся немного на справочной системе. В среде Turbo Pascal 7.0 имеется подробнейшая справка, имеющая информацию о всех функциях и процедурах модулей, поставляемых со средой. Для вызова справки по командам языка выбираем пункт меню Указатель меню Помощь (или нажимаем клавиши $Shift + F1$). В открывшемся окне будет представлен список всех команд. Для облегчения поиска нужной команды достаточно будет набрать на клавиатуре первые символы команды и курсор сам переместится в то место страницы, которое содержит ссылку на описание данной команды.
Ссылки Смотри также предназначены для просмотра описания команд, похожих на представленную на тот момент. С помощью ссылок Пример просматривают примеры использования описываемой команды. Код примера можно скопировать в буфер обмена и использовать в редакторе кода. Выделение текста и копирование его в окне справки осуществляется аналогичным образом с окном редактора кода.
Еще одним способом получения справки является вызов контекстной справки. Для чего наводим текстовый курсор в редакторе кода на название команды и выбираем пункт меню Поиск темы меню Помощь (или нажимаем клавиши $Ctrl+Shift+F1$ или $Ctrl+F1$). Если описание указанной команды имеется в справочной системе, то откроется окно с описанием команды. Если информации о команде нет в наличии, то в открытом окне появится перечень всех команд и курсор укажет на наиболее похожую.
К недостаткам данной среды программирования можно отнести то, что:
- компилятор рассчитан на реальный режим DOS, в связи с этим практически не используется;
- в модуле CRT имеется ошибка (некорректный подсчёт количества циклов для функции delay, который не рассчитан на процессоры с большой частотой и с переменной частотой, а также многозадачные среды), из-за этой ошибки при запуске программы на компьютерах с тактовой частотой более 200 MHz сразу происходило аварийное завершение работы;
- присутствует неправильная работа с метками во встроенном ассемблере (команды из меток выполняются, даже если переход на них не происходил).