Turbo Pascal

Turbo Pascal (вимовляється "турбо паскаль") - інтегрована середовище розробки програмного забезпечення для платформ DOS і Windows 3.x і мова програмування в цьому середовищі, діалект мови Паскаль від фірми Borland.

Товарний знак Borland Pascal був зарезервований для дорогих варіантів поставки (з великою кількістю бібліотек і вихідним кодом стандартної бібліотеки), оригінальна дешева і широко відома версія продавалася як Turbo Pascal. Назва Borland Pascal також використовується в більш широкому сенсі - як неофіційну назву версії мови Паскаль від фірми Borland.


1. Історія

Turbo Pascal - це середовище розробки для мови програмування Паскаль. Використовуваний в 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 тисяч копій компілятора, що перевершило обсяг продажів всіх інших мов для мікрокомп'ютерів. [1]

Для того часу це була приголомшлива середу розробки. Вона була проста і інтуїтивно зрозуміла, з добре організованим меню. Ранні версії використовували розкладку гарячих клавіш WordStar. У більш пізніх версіях з'явилася можливість швидко отримати визначення ключового слова мови, просто поставивши курсор на ключове слово і натиснувши клавішу довідки. Довідкові статті часто включали приклади коду, що використовує дане ключове слово. Це дозволяло недосвідченим програмістам вивчати Паскаль навіть без допомоги книг, використовуючи лише середовище розробки. У поставку входило велику кількість вихідних текстів демонстраційних і прикладних програм. У їх числі були навіть шахи.

Середа дозволяла легко вбудовувати в код на Паскалі вставки на мові асемблера. Користувач мав можливість проходити програму крок за кроком; при переході на асемблерний блок це також працювало. У будь-який момент користувач міг додати змінну або регістр в зручно розташоване вікно для спостереження за ними. При порядкової налагодженні програм, що використовують графічні режими IBM PC, відбувалося коректне перемикання між графічним режимом програми і текстовим режимом середовища розробки.

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

Turbo Pascal часто використовується в школі

З початку 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 і відповідний синтаксис підтримувався як застарілий, використання обох об'єктних моделей одночасно в одній і тій же програмі не підтримується.


1.1. Етапи

  • Turbo Pascal 1.0, 20 листопада 1983 [2]. Компілює безпосередньо в машинний код. Вимагає 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. Вперше введена підтримка модулів з роздільним компіляцією. Розмір програми обмежений тільки об'ємом оперативної пам'яті. Керована за допомогою меню інтегрована середовище розробки ( англ. Integrated Development Environment, IDE ). Інтелектуальна компоновка модулів. Автономний компілятор командного рядка, введений для великих проектів, компіляція яких утруднялася ресурсномісткою IDE. Прибрана підтримка оверлеїв. Контекстно-чутлива система допомоги. Опції компілятора налаштовувалися в IDE. Інтелектуальний вбудований компонувальник, який виключав з компільованих файлів модулів невживані в програмі процедури і функції.
  • Turbo Pascal 5.0, 1988. Вбудований відладчик дозволяв трасувати вихідний текст, вводити точки зупину, переглядати і змінювати вміст змінних не покидаючи IDE. Окремий відладчик (Turbo Debugger), який дозволяв налагоджувати програму з віддаленої машини через RS-232 інтерфейс. Емуляція арифметичного співпроцесора. Підтримка графічних драйверів BGI (Borland Graphics Interface). Повернено підтримка оверлеїв.
  • Turbo Pascal 5.5, 2 травня 1989 [3]. Об'єктно-орієнтоване програмування. Можливість копіювання в програму прикладів з довідкової системи. Електронний підручник на диску. 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).
  • Turbo Pascal 7.1, 1994.

2. Бібліотека Turbo Vision

Turbo Vision - це бібліотека для розробки віконних, об'єктно-орієнтованих, подієво-керованих програм.

3. Переваги і недоліки Турбо Паскаля

3.1. Переваги

  • Зручна середу розробки, що включає функціональний відладчик, доступний в будь-який момент.
  • Контекстна довідкова система, за якою можна вивчати мову без звернення до сторонніх джерел.
  • Висока швидкість компіляції, висока швидкість виконання компільованих програм.
  • Вбудована можливість використовувати вставки на мові асемблера.

3.2. Недоліки

  • Компілятор розрахований на реальний режим DOS, застосування якого сходить нанівець. Однак в останніх версіях компілятора і середовища введена підтримка захищеного режиму разом з відповідним відладчиком (TD).
  • У модулі CRT є помилка (некоректний підрахунок кількості циклів для функції delay, не розрахований на швидкі процесори, процесори зі змінною частотою і багатозадачні середовища), через яку при запуску програми на комп'ютерах з тактовою частотою більше 200 MHz відразу відбувалося аварійне завершення з повідомленням "Runtime error 200 at ...". Існують різні варіанти виправлення модуля CRT. [4] [5] [6] У варіанті Клауса Хартнегга помилка 200 не виникає, але тривалість Delay на швидких комп'ютерах менше бажаної, і ця проблема через незнання іноді теж вважається недоліком Turbo Pascal.
  • Неправильна робота з мітками у вбудованому асемблері (команди з міток виконуються, навіть якщо перехід на них не відбувався). [Джерело не вказано 411 днів]

4. Цікаві факти

  • В Turbo / Borland Pascal 7.0 вбудовано пасхальне яйце : якщо в інтегрованому середовищі через меню "Help" відкрити панель "About" і натиснути поєднання клавіш Alt + I, то в панелі будуть прокручуватися імена розробників.
  • Алгоритм розмальовки у вбудованому редакторі трохи відрізняється від того, як розуміє синтаксис компілятор. А саме, конструкція (*) сприймається редактором як закінчений коментар, а компілятором - як початок коментаря. Це може використовуватися, щоб усередині коментарів вставляти синтаксично розфарбовані ділянки, наприклад, демонстрація способу використання. Або, наприклад, існують Паскаль-віруси, які записують своє тіло після 80й колонки, використовуючи (*), щоб старий текст виглядав без змін. Область розповсюдження обмежена місцями, де запускаються програми на Turbo Pascal, зате в самих цих місцях боротися з Паскаль-вірусами було нетривіально. Антивіруси тих часів були безсилі проти цих перших представників макровірусів.

Використовуючи (*), можна домогтися і зворотного: змусити код виглядати як коментар або як асемблерний код:

 program  HelloWorld  ;  (*) {*)  begin  (*} Asm (*)  WriteLn  (  'Hello, World!'  )  ;  (*) End (*)  ReadLn  ;  (*) {*)  end  .  (*} (*) 

Будучи набраним в інтегрованому середовищі, що поставляється з Turbo Pascal, цей код буде різнобарвним.


Примітки

  1. Мова комп'ютера. - М.: Мир, 1989, с. 215-216.
  2. Antique Software: Turbo Pascal v1.0 - edn.embarcadero.com/article/20693 (Англ.)
  3. Antique Software: Turbo Pascal v5.5 - edn.embarcadero.com/article/20803 (Англ.)
  4. BP7FiX - виправлення помилки Runtime error 200 в компільованих програм - prgmizer.chat.ru/bp7fix.htm
  5. T7TplFix - патч від Клауса Хартнегга для виправлення модуля CRT - www.brain.uni-freiburg.de/ ~ klaus/pascal/runerr200/download.html # T7TplFix
  6. Borland Pascal Wait / Delay - www.merlyn.demon.co.uk / pas-wait.htm - огляд способів зробити затримку в DOS

Література

  • Є. А. Зуєв. Програмування на мові 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 = Turbo Pascal Web Update. - М .: Вільямс, 2005. - С. 896. - ISBN 0-201-35086-6
  • Моргун Олександр Миколайович. Довідник по Turbo Pascal для студентів. - М .: Діалектика, 2006. - С. 608. - ISBN 5-8459-1028-5
  • Нейл Рубенкінг. Turbo Pascal для Windows = Turbo Pascal for Windows. Techniques and Utilites. - М .: Світ, 1993. - С. 535.
  • Фаронов В. В. Turbo Pascal. Найбільш повне керівництво. BHV-Санкт-Петербург, 2007. ISBN 5-94157-295-6