Turbo Pascal

Turbo Pascal (Турбо Паскаль) — интегрированная среда разработки программного обеспечения для платформ DOS и Windows 3.x и язык программирования в этой среде, диалект языка Паскаль от фирмы Borland.

Товарный знак Borland Pascal был зарезервирован для дорогих вариантов поставки (с бо́льшим количеством библиотек и исходным кодом стандартной библиотеки), оригинальная дешёвая и широко известная версия продавалась как Turbo Pascal. Borland является развитием Turbo Pascal и имеет отличия в синтаксисе (См. Object Pascal). Поддерживает x32.

История 
Используемый в Turbo Pascal диалект базировался на более раннем UCSD Pascal, получившем распространение, в первую очередь, на компьютерах серии Apple II. Компилирующая компонента Turbo Pascal была основана на компиляторе Blue Label Pascal, первоначально созданном в 1981 году Андерсом Хейлсбергом для операционной системы NasSys микрокомпьютера Nascom. Позднее он был переписан как Compass Pascal для операционной системы CP/M, затем как Turbo Pascal для DOS и CP/M. Одна из версий Turbo Pascal была доступна под Apple Macintosh примерно с 1986 года, но её разработка прекратилась примерно в 1992 году.

В 1982 году Филипп Кан приобрёл компилятор у Андерса Хейлсберга и перебрался из Парижа в Калифорнию, где основал компанию Borland.

Когда в 1983 году появилась первая версия Turbo Pascal, такой тип среды разработки был относительно новым. Во время дебюта на американском рынке Turbo Pascal продавался по цене в 49,99 доллара. Помимо привлекательной цены, встроенный компилятор Паскаля также был очень высокого качества. Приставка «Turbo» намекала как на скорость компиляции, так и на скорость производимого им исполняемого кода. Turbo Pascal создавал машинный код за один проход, без шага компоновки.

После рекламной кампании за первый месяц поступило заказов на 150 тыс. долларов — так много, что местные банки отказывались оплачивать чеки и кредитные карточки, подозревая мошенничество.

За первые два года было продано не менее 300 тысяч копий компилятора, что превзошло объём продаж всех прочих языков для микрокомпьютеров.

Для того времени это была потрясающая среда разработки. Она была проста и интуитивно понятна, с хорошо организованным меню. Ранние версии использовали раскладку горячих клавиш WordStar. В более поздних версиях появилась возможность быстро получить определение ключевого слова языка, просто поставив курсор на ключевое слово и нажав клавишу справки. Справочные статьи часто включали примеры кода, использующего данное ключевое слово. Это позволяло неопытным программистам изучать Паскаль даже без помощи книг, используя лишь среду разработки. В поставку входило большое количество исходных текстов демонстрационных и прикладных программ. В их числе были даже шахматы.

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

Помимо всего этого, имелось средство профилирования. Книги, включённые в поставку Borland Pascal, давали детальное описание языка ассемблера Intel вплоть до указания количества тактовых циклов, необходимых для выполнения каждой инструкции. В общем и целом, система давала превосходные возможности для оптимизации кода; пользователю не требовалось пользоваться чем-либо, кроме среды разработки. Всё было сделано так идеально, что даже школьник мог этим пользоваться. Эти качества позволили версии Паскаля от Borland стать стандартом языка Паскаль де-факто.

С начала 1990-х годов TP/BP используется в университетах для изучения фундаментальных концепций программирования.

Вероятно, разработка Microsoft Pascal была прекращена из-за конкуренции с высоким качеством и небольшой ценой Turbo Pascal. Другая версия гласит, что Borland заключил соглашение с Microsoft на прекращение разработки Turbo Basic (среды разработки для BASIC, ответвившейся от Turbo Pascal), если Microsoft прекратит разработку Microsoft Pascal. Некоторое время Microsoft выпускал QuickPascal, который был почти на 100 % совместим с Turbo Pascal.

В течение нескольких лет Borland улучшал не только среду разработки, но и язык. В версии 5.0 появились процедурные типы. В версии 5.5 в него были введены передовые возможности объектно-ориентированного программирования. Интегрированная среда так же была реализована с использованием ООП. Последней выпущенной версией была 7.0. Профессиональная поставка Borland Pascal 7.0 включала в себя среду разработки, компилятор и отладчики для создания программ под реальный режим DOS, под DOS в 16-битном защищенном режиме с использованием расширителя DOS RTTM и драйвера DPMI, а также под Windows 3.x. Наряду с универсальными IDE и компилятором в поставку входил Borland Pascal for Windows с графической IDE для Windows 3.x и объектно-ориентированной библиотекой OWL, а также Turbo Pascal 7.0 для создания DOS-программ реального режима. Turbo Pascal 7.0 можно было приобрести и отдельно.

С 1995 года в Borland прекратили разработку Turbo Pascal и предложили в качестве замены среду разработки Delphi. Новая версия языка подверглась изменению (в особенности ООП), и языку вернулось изначальное название, закреплённое разработчиками Apple Object Pascal. Старая объектная модель Turbo Pascal и соответствующий синтаксис был объявлен устаревшим, двоичная взаимозаменяемость между объектами обеих моделей не предусмотрена, но объекты в старом стиле по-прежнему поддерживаются компилятором и при желании могут использоваться программистом, как было сделано в библиотеке KOL.

Этапы 
 Turbo Pascal 1.0, 20 ноября 1983 года. Компилирует непосредственно в машинный код. Требует 32 килобайта оперативной памяти. Стоит меньше 50 долларов. Имеет интегрированный компилятор/редактор, высокую скорость компиляции. Позволяет размещать динамические данные в куче (heap) — динамической области памяти.
 Turbo Pascal 2.0, 1984 год. Увеличен размер создаваемой программы — позволяет использовать до 64 килобайт для кода, стека и данных. Версия для DOS поддерживает арифметический сопроцессор и двоично-десятичную арифметику (Binary-coded decimal, BCD).
 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 мая 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 (OWL), сходная по идеологии с Turbo Vision. Графическая IDE, работающая под Windows.
 Borland Pascal 7.0, 1992 год. Выпущен Borland Pascal 7.0, включающий в себя более дешёвый и менее мощный Turbo Pascal 7.0, который поставлялся также отдельно. BP 7.0 позволял создавать программы под реальный и защищённый 16-битный режим DOS и Windows. Была введена поддержка открытых массивов, добавлено новое ключевое слово «public» для доступных полей и методов объекта. Открыты исходные тексты системных библиотек и функций времени выполнения (RTL). Введена подсветка синтаксиса.
 Borland Pascal 7.1, 1994 год. Пакет обновлений, состоящий из исполняемых файлов компиляторов командной строки реального и защищенного режимов, интегрированных сред, откомпилированных системных библиотек, отладчика, диспетчеров защищенного режима и так далее.

Библиотека Turbo Vision 

Turbo Vision — это библиотека для разработки оконных, объектно-ориентированных, событийно-управляемых программ в среде MS-DOS в псевдографическом текстовом режиме.

Достоинства и недостатки 

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

Основной недостаток состоит в том, что компилятор рассчитан на реальный режим DOS, применение которого сходит на нет. Однако в последних версиях компилятора и среды введена поддержка защищённого режима вместе с соответствующим отладчиком (TD).

В модуле CRT имеется ошибка (некорректный подсчёт количества циклов для функции delay, не рассчитанный на быстрые процессоры, процессоры с переменной частотой и многозадачные среды), из-за которой при запуске программы на компьютерах с тактовой частотой более 200 МГц сразу происходило аварийное завершение с сообщением «Runtime error 200 at…». Существуют разные варианты исправления модуля CRT. В варианте Клауса Хартнегга ошибка 200 не возникает, но длительность Delay на быстрых компьютерах меньше желаемой, и эта проблема иногда тоже считается недостатком Turbo Pascal.

При использовании встроенного ассемблера выявлена неправильная работа с метками. Операторы, на которые указывали метки, выполнялись, даже если на них не осуществлялись переходы.

Примечания

Литература 
 Е. А. Зуев. Программирование на языке Turbo Pascal 6.0, 7.0, М.:Веста,Радио и связь, 1993, — С.376, ISBN 5-256-01218-5
 Кассера В. Ф. Turbo Pascal 7.0, Диасофт, 2003, ISBN 5-93772-097-0
 
 
 
 Фаронов В. В. Turbo Pascal. Наиболее полное руководство. BHV-Санкт-Петербург, 2007. ISBN 5-94157-295-6
 Фаронов В. В. Turbo Pascal 7.0: Практика программирования. КноРус, 2012. ISBN 978-5-85971-889-4

Ссылки 
 Музей Borland 
 Страницы о Turbo Pascal на сайте Borland
 Информация о Turbo Pascal
 Сайт о программировании на Turbo Pascal
 Теоретическая часть Turbo Pascal
 Borland/Inprise Pascal Versions
 Документация по Turbo Pascal на сайте bitsavers.org

Компиляторы Паскаля
Интегрированные среды разработки
Текстовые программы для DOS
Языки программирования семейства Паскаля
Программное обеспечение Borland
Программное обеспечение для CP/M