Перейти до вмісту

Turbo Pascal

Матеріал з Вікіпедії — вільної енциклопедії.

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

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

Історія

[ред. | ред. код]

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.5 в нього були введені передові можливості об'єктно-орієнтованого програмування. Останньою випущеною версією була версія 7. Borland Pascal 7 включає в себе середовище розробки і компілятори для створення програм під DOS, під DOS з розширювачем DOS і Windows 3.x, у той час як Turbo Pascal 7 міг створювати тільки звичайні DOS-програми.

З 1995 року в Borland припинили розробку Turbo Pascal і запропонували як заміну середовище розробки Delphi. Нова версія мови зазнала зміни (особливо ООП), і мові повернулася початкова назва, закріплене розробниками Apple Object Pascal. Стара об'єктна модель Turbo Pascal і відповідний синтаксис підтримувався як застарілий, нова об'єктна модель несумісна зі старою — не можна успадковувати class від object, покажчик на будь object не сумісний з TObject.

Етапи

[ред. | ред. код]

Хронологічна таблиця версій компілятора серії «Turbo»:

Назва компілятора Дата виходу Особливості та інше
Turbo Pascal 1.0 20 листопада 1983 року Розроблена для PC-DOS та ОС CP/M. Компілятор потребував лише 64 КіБ оперативної пам'яті і компілював код для COM або CHN файлів. Вихідний машинний код не міг перевищувати 64 КіБ, графічний режим — CGA, маніпуляції зі звуком за допомогою PC-динаміка (підключеного до 2-гого виходу таймеру (у IBM AT-сумісних).
Turbo Pascal 2.0 17 квітня 1984 року Колір інтерфейсу було змінено з жовто-сірого на сіро-білий. Видалено команду меню «виконати», збільшено можливий розмір коду та додано чимало нових прикладів програм.
Turbo Pascal 3.0 17 вересня 1986 року Кольори EGA-палітри, нові графічні процедури (зокрема, графічна черепаха), оверлеї, BCD, нові процедури для роботи з файлами, стало можливим задавати параметри компіляції через командний рядок.
Turbo Pascal 4.0 2 листопада 1987 року У компілятор внесено кардинальні зміни. Він перестав підтримувати ОС CP/M, стала можливою компіляція в EXE-файли, робота з EGA, VGA графікою, додано тип даних LongInt.

Запроваджено концепцію програмних модулів англ. units, код яких може бути відкомпільовано та застосовано пізніше. Інтерфейс змінився на повноекранний редактор зі спадним меню у верхній частині екрану та виходом у нижній. Середовище розробки надало більше можливостей для розробки алгоритмів: налаштування опцій компілятора, параметрів середовища редагування (на кшталт, автоматичного збереження та резервного копіювання відредагованих файлів, розміру табуляції тощо), робочого каталогу й командного рядка.

Turbo Pascal 5.0 осінь 1988 року З'явився вбудований відлагоджувальник (англ. debugger), а також окремий відлагоджувальник Turbo Debugger, драйвер BGI[прояснити].
Turbo Pascal 5.5 2 травня 1989 року У мову запроваджено парадигми об'єктно-орієнтованого програмування: успадкування, інкапсуляція, поліморфізм, конструктори й деструктори.

В інтерфейсі став переважати синій колір, який застосовувався у всіх наступних версіях серії «Turbo». В інтегрованому середовищі розробки (IDE) запроваджено покроковий відлагоджувальник і контекстна довідка з описом всіх вбудованих функцій та можливістю копіювання фрагментів коду.

Turbo Pascal 6.0 4 жовтня 1990 року Мова зазнала низки змін: вбудовано асемблер, поліпшено об'єктно-орієнтовані парадигми, поліпшений адміністратор купи (англ. heap). З'явилася бібліотека Turbo Vision, призначена для розробки програм зі складним візуальним інтерфейсом.

Інтерфейс покращено підтримкою миші, буфером обміну текстом, можливістю маніпуляцій з віконним редактором (а також одночасним редагуванням кількох файлів). У відлагоджувальнику стало можливим призначати точки зупинки (англ. breakpoints) та користуватися вікном спостереження (англ. watches).

Turbo Pascal 7.0 9 березня 1993 року Компілятор став крос-платформовим для DOS і Windows, з'явилася можливість створення динамічних бібліотек (DLL). IDE став підсвічувати синтаксис.

Хронологічна таблиця версій компілятора серії «Borland»:

Назва компілятора Дата виходу Особливості та інше
Borland Pascal with Objects 7.0 27 жовтня 1992 року Генерування коду виконувальних файлів для ОС Windows, DOS, DPMI. Швидкість компіляції більш ніж 85000 рядків на хвилину. Повний доступ до всіх функцій Windows та повідомлень. Динамічно завантажувані бібліотеки для DOS та Windows. Підтримка викликів функцій, написаних на C, C++ (зокрема, з DLL). Вбудовано асемблер. Математичний співпроцесор і оффлайн підтримка. Розумний компонувальник для видалення непотрібних об'єктів та коду. Зарезервовані слова: «public», «private» та «inherited». Відкриті масиви і рядки. 80386-інструкції для операцій з 32-бітовими числами. Оптимізація множин. Швидкі операції з рядками та файлами. Необмежена вкладеність. Інтегровані середовища розробки для DOS і Windows. Підсвічування синтаксису, необмежені кількість операцій «Undo» (повернути) та «Redo» (повторити). Вибір цільового файлу та коду для: DOS, DPMI або Windows. Браузер об'єктів (ObjectBrowser), он-лайн довідка, Turbo Debugger, Turbo Profiler, Turbo Assembler, Resource Workshop, Winsight / Winspector, компілятор ресурсів, компілятор довідки, модуль «Windows CRT». Ціна — $ 500, оновлення Turbo Pascal— $ 150.
Borland Pascal with Objects 7.01 9 березня 1993 року Усунено деякі помилки в самому компіляторі, в роботі таймеру (процедура Delay), а також в тексті Turbo Vision-модулів. Зареєстровані користувачі версії 7.0 отримали 7.01 безкоштовно.

Виправлені помилки, відповідно інформації наданої Джимом Хіґґінсом (Jim Higgins):

  1. Перевірка діапазону і переповнення типу Byte та ShortInt;
  2. Помилка, пов'язана із зсувом на 16-31 біт на процесорах 80386, 80486 (зсуви стали виконувати з використанням 16-бітових регістрів, як у раніших реалізаціях);
  3. Функція GetDir не викликала помилку № 15, якщо передано неіснуючий диск;
  4. У програм, відкомпільованих з директивою $N, була проблема з правильним визначенням INFs і NaN (перетворення денормалізованих чисел на нулі при використанні співпроцесора 8087);
  5. Функція Exp, коли застосовувалась для дуже малих аргументів типу Real, викликала переповнення замість того, щоб повернути нуль;
  6. Денормалізовані числа типу Extended не перетворювались належним чином у десяткові процедурами Str та Write;
  7. Ініціалізації процедур не перевіряли належним чином, щоб запобігти помилковому виконанню коду, скомпільованого для процесорів 80286 з директивою $G, які працюють на процесорах 8086/8088.
  • Turbo Pascal 1.0, 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 рік. Роздільна компіляція модулів. Розмір програми обмежений тільки об'ємом оперативної пам'яті. Кероване за допомогою меню інтегроване середовище розробки (англ. Integrated Development Environment, IDE). Інтелектуальне[що?] компонування модулів. Автономний компілятор командного рядка. Прибрана підтримка оверлеїв. Контекстно-чутлива система допомоги.
  • Turbo Pascal 5.0, 1988 рік. Відновлено підтримку оверлейних структур. Вбудований налагоджувач. Окремий налагоджувач (Turbo Debugger). Емуляція арифметичного співпроцесора. Підтримка графічних драйверів BGI (Borland Graphics Interface).
  • Turbo Pascal 5.5, 1989 рік. Об'єктно-орієнтоване програмування. Можливість копіювання до програми прикладів з довідкової системи. Електронний підручник на диску. Turbo Profiler — профілювальник, що дозволяє оптимізувати код програми.
  • 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).

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

[ред. | ред. код]

Переваги

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

Недоліки

[ред. | ред. код]
  • Компілятор розрахований на реальний режим DOS, застосування якого сходить нанівець. Проте в останніх версіях компілятора і середовища введена підтримка захищеного режиму разом з відповідним зневаджувачем (TD).
  • У модулі CRT є помилка (некоректний підрахунок кількості циклів для функції delay, не розрахований на швидкі процесори, процесори зі змінною частотою і багатозадачні середовища), через яку при запуску програми на комп'ютерах з тактовою частотою понад 200 MHz відразу відбувалося аварійне завершення з повідомленням «Runtime error 200 at …». Існують різні варіанти виправлення модуля CRT.[2][3][4] у варіанті Клауса Гартнегга помилка 200 не виникає, але тривалість Delay на швидких комп'ютерах менша від бажаної, і ця проблема через незнання іноді теж вважається недоліком Turbo Pascal.

Цікаві факти

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

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

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

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

Наступники

[ред. | ред. код]

До 1995 року Borland скинув[куди?] Turbo/Borland Pascal і замінив його швидким середовищем розробки додатків (RAD) Delphi, заснованим на Object Pascal. 32- і 64-розрядні версії Delphi все ще підтримують портативні розширення Паскаля раніше використовуваних продуктів (тобто ті, які не є специфічними для 16-бітового коду), включно зі статичною об'єктною моделлю. Ця сумісна версія означає, що багато старих кодів Turbo Pascal все ще можна скомпілювати і працювати в сучасному середовищі[джерело?].

Інші постачальники виробили інструменти розробки програмного забезпечення, сумісні з Turbo Pascal. Найвідомішими є Free Pascal і Virtual Pascal[джерело?].

Примітки

[ред. | ред. код]
  1. Мова комп'ютера. — Москва : Мир, 1989. — С. 215–216.
  2. BP7FiX — виправлення помилки Runtime error 200 в компільованих програм. Архів оригіналу за 6 січня 2012. Процитовано 2 січня 2012.
  3. T7TplFix — патч від Клауса Гартнегга для виправлення модуля CRT. Архів оригіналу за 1 листопада 2008. Процитовано 21 червня 2019.
  4. Borland Pascal Wait / Delay — огляд способів зробити затримку в DOS (англ.). Архів оригіналу за 1 серпня 2009. Процитовано 6 червня 2020. [Архівовано 1 серпня 2009 у Wayback Machine.]

Література

[ред. | ред. код]
  • Є. А. Зуєв.Програмування на мові 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

Посилання

[ред. | ред. код]