ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

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

    Нинішнє положення Паскаля

    Паскаль, розроблений в 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.     

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

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

    Для підготовки даної роботи були використані матеріали з сайту http://www.pascal.dax.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status