Паскаль сьогодні

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Нинішнє становище Паскаля

Паскаль, розроблений в 1970-х рр.. Ніклаус Віртом як мова навчання програмуванню, зазнав за минулий час досить багато змін у кращу сторону. Основна заслуга в цьому належить фірмі Borland International, довгий час випускала лінійку Turbo Pascal. Одне з основних удосконалень, внесених нею, - доповнення мови різноманітними і потужними засобами введення-виведення. Інше пов'язане з мовою Модула-2 (автором якого також став Н. Вірт): фірма Borland відмовилася від поширення компілятора цієї мови, застосувавши натомість модульний принцип побудови в Turbo Pascal. Крім того, в Паскаль були введені засоби безпосереднього доступу до портів і комірках пам'яті, а пізніше - можливість включати в текст програми фрагменти, написані на асемблері. Все це перетворило Паскаль із засобу навчання в досить потужний універсальний мову.

Зараз визнаними лідерами в області професійного програмування стали Сі-подібні мови. Протягом довгого періоду Паскаль був, мабуть, майже єдиною альтернативою їм в якості універсальної мови. Однак коли праця більшості професійних програмістів став практично зводитися лише до маніпуляцій з викликами більш-менш стандартного API-інструментарію (Application Programming Interface - інтерфейс прикладного програмування), гостро постало питання вибору єдиної мови програмування, на якому (і для якого) буде писатися цей API . Внаслідок різних причин - як об'єктивних, так і суб'єктивних - вибір припав на Сі / Сі + +. По-перше, Сі, як і Паскаль, виявився одним з перших мов високого рівня (МВР), який вирішував проблему «курки і яйця»: його компілятор був написаний на ньому ж. По-друге, компілятори для Сі робити, мабуть, легше, ніж для будь-якого іншого мови (що, власне, і було однією з цілей його розробки), тому саме їх випуск економічно найбільш доцільний. Втім, не обійшлося і без суб'єктивних факторів: значну частку сьогоднішнього API виробляє фірма Microsoft, вже давно розмежовані з фірмою Borland «сфери впливу» в цій галузі. Зараз Borland не випускає компілятори для Бейсіка і Фортрану, а Microsoft - для Паскаля, і, природно, не орієнтує свої API на ті мови, компілятори яких сама не випускає.

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

Однак в області створення СУБД Паскаль досі входить до числа лідерів, оскільки триває розробка інструментального ПЗ для роботи з об'єктними версіями цієї мови (Delphi). Крім того, Паскаль і його діалекти часто застосовуються в якості «внутрішнього» мови СУБД.

Сильні сторони Паскаля

Подивимося на Паскаль, а також на Сі та Бейсік з точки зору навчання програмуванню. Про дидактичної неспроможності мови Сі вже багато написано. Бейсік також мало підходить для навчання через відсутність загальноприйнятого стандарту і «безладності» стилю роботи, який він прищеплює. Основною перевагою Бейсіка була надзвичайна невимогливість до ресурсів комп'ютера, що стало вже неактуальним. Раніше, коли були ПК з 16-64-Кбайт оперативної пам'яттю та ЗУ у вигляді магнітофона, можна було говорити, що Бейсік - кращий ЯВУ, оскільки не було вибору. При наявності 640-Кбайт пам'яті і дисковода такий вибір з'явився.

Отже, сьогодні практично весь ринок програмних продуктів орієнтований на багатозадачні операційні системи (Windows, UNIX тощо) і інтенсивно використовує API-інструментарій, а також візуальні засоби програмування.

Це, звичайно, зручно, але навряд чи раціонально для навчання, адже потрібно навчитися розробляти та / або втілювати алгоритм, а не просто «складати програму з цеглинок». Крім того, будь-який початківець стикається з досить значним обсягом інформації, яку необхідно запам'ятати, перш ніж починати програмування. Та й процес постійного оновлення API ускладнює роботу і викладача, і учня. Текстовий інтерфейс командного рядка, прийнятий в DOS, дає можливість, не особливо дбаючи про введення-виведення, приділяти основну увагу розробці та реалізації алгоритму. А ті, хто вже трохи розібрався з комп'ютером, можуть освоювати основи комп'ютерної графіки, не змінюючи платформи.

Медичні рецепти прийнято виписувати на латині. Від усіх живих мов вона відрізняється тим, що вже не змінюється. До того ж медики, якою б мовою вони не говорили, мають у латині спільну мову. Те ж саме можна сказати і про DOS. Його API досить лаконічний і практично перестав змінюватися. Крім того, всі операційні системи (на платформі Intel) дозволяють працювати з програмами DOS, а от програма, написана, скажімо, для Linux, в Windows вже не запуститься.

Розглянемо Паскаль для DOS. У сфері освіти до цих пір широко використовується остання 7-я версія Паскаля фірми Borland, створена більше восьми років тому. Зі своїм основним завданням компілятор Паскаля справляється, проте часто навіть школярі, які має ази програмування, натикаються на його обмеження. Одним з основних недоліків компілятора є його 16-розрядність. Обмеження в 64 Кбайт на всі статичні дані виглядає занадто жорстким при типових сьогодні 32-128 Мбайт оперативної пам'яті. Те ж стосується і графічних режимів: максимальний дозвіл, з яким здатний працювати Turbo / Borland Pascal, вимагає лише 150-Кбайт відеопам'яті, в той час як з'являються відеоадаптери, що несуть «на борту» вже 64 Мбайт.

Порівняння компіляторів Паскаля

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

Серед компіляторів, які досягли певної міри «зрілості», - TMT Pascal (www.tmt.com) і Free Pascal Compiler (FPC, www.ru.freepascal.org).

У числі інших проектів можна згадати P32V Джона Прінса (surf.to/p32) і Virtual Pascal (www.vpascal.com), що недавно став безкоштовним. Останній, мабуть, найбільш ретельно опрацьований, але в початковому вигляді не дозволяє робити DOS-додатки.

Примітно, що в розробці TMT і Free Pascal брали участь наші співвітчизники.

Версія 3.50 компілятора ТМТ справляє враження цілком налагодженого продукту - більша частина виявлених помилок усунена, сам він і його інтегроване середовище працюють стабільно і прості в установці. Позначається, правда, нечисленність колективу розробників: інтегроване середовище як дві краплі води схожа на аналогічні GUI-орієнтовані IDE і володіє досить обмеженими можливостями - вона не має навіть вбудованого отладчика. У вбудованому асемблері до цих пір немає підтримки SSE, хоча є 3DNow! і MMX. Повні зареєстровані версії компілятора починаючи з 1.0 містили IDE-середовище в текстовому режимі, з якою через безліч помилок все одно не можна було працювати, а вільно поширювані - обмеження на обсяг використовуваної пам'яті, але їх можна було елементарно обійти. Тому у версії 3.50 вони були зняті, а в останню безкоштовно надається добавлена ​​IDE-середовище.

Free Pascal був розроблений досить великим колективом ентузіастів. Він поставлявся разом з вихідними текстами, тому будь-який бажаючий міг взяти участь у процесі його створення. До речі, написаний Free Pascal на Паскалі, так що для нього проблема «курки і яйця» не виникає.

Версія компілятора позначається не двозначним, як зазвичай, а тризначним числом, оскільки значення 99 у молодшої частини версії з'явилася задовго до того, як основний було присвоєно 1.0. Зараз 1.0 нарешті вийшла, але вона виявилася чи не більше сирої, ніж попередня. Потім майже відразу ж була випущена версія 1.02, яка містить лише виправлення помічених помилок, а на момент написання статті готувалася до виходу версія 1.04. У комплект поставки компілятора входить інтегроване середовище, що працює в текстовому режимі. У його документації чесно попереджається про те, що це поки налагоджувальна версія. Та й сама IDE вимагає настроювання, яка на жаль описана невірно. Ця IDE є по суті текстовим редактором з вбудованим компілятором (чомусь не зовнішнім), в ній відсутній навіть контекстна підказка, не кажучи про відладчику.

Обидва компілятора певною мірою нагадують діалект Turbo / Borland Pascal, хоча і є деякі відмінності. В основному вони стосуються удосконалень мови: немає обмежень, пов'язаних з 16-розрядної сегментованої моделлю пам'яті, є Сі-подібні коментарі. До речі, ТМТ доповнився Сі-подібними операціями: «+:=», «-:=». У Free Pascal з'явилися перевантажуються функції, а у ТМТ - перевантажуються оператори і безліч удосконалень, що відображено і в документації. У Free Pascal бажане нерідко видається за дійсне. Так, в одній з попередніх версій він навідріз відмовився компілювати MMX-інструкції, в тому числі і приклад з документації.

Природно, обидва компілятора не у всьому схожі. У ТМТ відсутній 64-розрядний цілий тип comp. Притому, швидше за все, його введення і не передбачається, так як існує додатковий модуль для обробки комплексних чисел, що має те ж саме назву. У Free Pascal ж не передбачено зумовлених масивів Port і PortW, а в ТМТ є навіть PortD.

Оскільки обидва компілятора використовують 32-розрядну плоску модель пам'яті, функція seg в обох повертає 0, проте в системі програмування Free Pascal неправильно працює функція ptr. Наприклад, у виразі longint (ptr ($ 40, $ 6c) ^) ми можемо отримати все що завгодно, але тільки не значення лічильника часу BIOS (мабуть, програма припинить роботу помилково звернення до пам'яті). У TMT ж така конструкція виконується правильно.

Після компіляції мінімальний розмір виконуваного файлу для ТМТ становить близько 15 Кбайт, а для Free Pascal - 55 Кбайт. Крім того, другий вимагає ще зовнішнього DPMI-сервера на 20 Кбайт, тоді як у ТМТ він міститься всередині виконуваного файлу.

Щоб порівняти швидкості роботи виконуваних файлів, отриманих за допомогою цих компіляторів, можна використовувати тест Ветстоун за визначенням продуктивності системи з точки зору виконання операцій над числами з плаваючою комою, переписаний з Фортрану на Паскаль (табл. 2). Значно поступаючись TMT щодо оптимізації розміру, Free Pascal працює в півтора рази швидше. У той же час обидва компілятора залишають далеко позаду Borland Pascal, особливо на сучасних процесорах.

Проте деякі результати при вимірі продуктивності виглядають досить дивно. Написана на асемблері процедура пошуку найкоротшого шляху в графі за допомогою алгоритму Дейкстри, будучи скомпільованій тим же Free Pascal, виконувалася на 20% швидше, ніж ТМТ. При заповненні таблиці ваг дуг графа використовувався датчик випадкових чисел, вимірювання повторювалися 1000 разів, і отримані значення усереднювались, а процедури читання, запису і пересилання вмісту оперативної пам'яті виконувалися в обох випадках з однаковою швидкістю.

Середній час виконання цього тесту для компілятора ТМТ Pascal склало 2,20 с, а для Free Pascal - 1,81 с.

Крім оптимізації, яку робить сам компілятор, цікаво також подивитися, наскільки оптимально написані бібліотечні процедури. Це було вирішено зробити на прикладі графічної бібліотеки. Слід сказати, що в обох випадках склад процедур значно відрізнявся від прототипу, особливо у ТМТ. Втім, і Free Pascal виявився не на висоті. Хоча дисплей і відеоадаптер дозволяли працювати в режимі 1600x1200 точок (а серед констант, що описують дозвіл, було передбачено навіть 2048x1536 точок), однак насправді заявлений дозвіл встановити за допомогою Free Pascal не вдалося. Тому швидкість виведення графічних примітивів перевірялася в режимі 1280x1024 точки при 256 квітах (табл. 3). За швидкістю виведення на екран заштрихованих фігур ТМТ майже на порядок перевершує свого конкурента, що, мабуть, пояснюється більш досконалим алгоритмом. При малюванні ліній ТМТ практично в усьому відстає від FPC. Правда, в некомерційній версії ТМТ, де вироблялися вимірювання, на відміну від комерційної не використовується LFB, що при малюванні без екранного буфера повинно приводити до відчутної втрати продуктивності. Можливо, що відмінність результатів пояснюється цим.

При виведенні тексту ТМТ втричі відстає від FPC, однак не слід цього лякатися. Справа в тому, що тоді як Free Pascal слідом за Borland застосовує шрифт розміром 8x8, в ТМТ резонно припустили, що при роздільній здатності 640x480 пікселів і більше набагато краще буде виглядати шрифт розміром 8x16. Так що уповільнення виведення в значній мірі пов'язане із збільшенням розміру шрифту вдвічі.

У цілому реалізація графічної бібліотеки ТМТ справляє враження більш продуманою і налагодженої (хоча і менш повної по відношенню до Borland Pascal).

До речі, розділ документації Free Pascal, присвячений опису відмінностей реалізації графічних бібліотек для різних платформ, залишився порожнім, а графічна програма, яка працювала в DOS і перекомпілювати в графічний додаток Windows, відразу ж завершилася помилково.

Безкоштовна версія TMT Pascal дозволяє робити виконувані файли тільки для DOS, зате при використанні комерційної один і той же текст, будучи відкомпілювати і для DOS, і для Windows, працює візуально абсолютно однаково, хоча внутрішній механізм для DOS реалізований через VESA, а для Windows - через DirectDraw.

Рекомендації

Що ж, хоча великі фірми і відмовилися від ведення розробок Паскаля для DOS, невеликі компанії, колективи ентузіастів і навіть окремі програмісти вельми успішно продовжили цю справу, створюючи цілком гідну заміну перевіреного компілятору Turbo Pascal. Так що якщо вам потрібен надійний компілятор і ви не хочете возитися з установкою і налаштуванням його самого і прикладеною до нього середовища, а також якщо при вашій роботі висуваються жорсткі вимоги до обсягу коду, то краще зупинити свій вибір на ТМТ. До речі, при застосуванні зовнішнього DOS-розширювача пам'яті, наприклад DOS4GW, мінімальний обсяг виконуваного файлу можна скоротити до 3 Кбайт. Якщо ж вам не терпиться самому взяти участь у розробці компілятора Паскаля, якщо вам потрібен транслятор, що настроюється на ваші конкретні завдання і ви згідні над ним попрацювати, то слід віддати перевагу FPC. Втім, разом із вихідними текстами також поставляється Р32V, однак він на відміну від FPC компілюється в середовищі Borland Pascal. Правда, P32V - не повний компілятор, так як переводить текст на Паскалі не в об'єктний код, а в текст на мові асемблера, і тому потрібно зовнішній асемблер. Якщо ж ви працюєте з OS / 2, то доцільніше віддати перевагу Virtual Pascal.

Таблиця 1. 32-розрядні компілятори Паскаля

Компілятор Підтримувані ОС Наявність IDE
DOS32 WIN32 OS / 2 Linux
TMT Pascal + * * - +
Free Pascal + + + + +
P32V + + - - +
Virtual Pascal ** + + + +

* - Тільки у повній (комерційної) версії,

** - При наявності додаткових файлів, що не входять у комплект постачання.

Таблиця 2. Продуктивність обчислень з плаваючою комою, Mwhetstones

Компілятор Intel Pentium Intel Pentium III AMD Athlon
DOS-сесія DOS DOS-сесія DOS DOS-сесія DOS
Borland Pascal 27 35 76 99 57 80
TMT Pascal 41 41 200 219 156 163
Free Pascal 71 71 294 303 240 240

* - Тільки у повній (комерційної) версії,

** - При наявності додаткових файлів, що не входять у комплект постачання.

Таблиця 3. Час виведення на екран графічних примітивів, з

Компілятор Заштриховані кола Лінії Текст
TMT Pascal 15 163 39 *
Free Pascal 138 127 12 *
* - У ТМТ розмір шрифту становить 8x16 точок, а у FPC - 8x8.

Список літератури

Сергій Андріанов. Паскаль сьогодні.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
33.8кб. | скачати


Схожі роботи:
Паскаль 14
Мова Паскаль
Літопис мов Паскаль
Паскаль Pascal Блез
Паскаль робота з файлами
Паскаль обробка текстів
Паскаль Налагодження програм
Масиви у мові Паскаль
Основи програмування мовою Паскаль
© Усі права захищені
написати до нас