Літопис мов Паскаль

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

скачати

Паскаль ... Хто з програмістів не знає про такий мовою? Його тріумф припав на 80-ті роки - час революції в індустрії персональних комп'ютерів і період розквіту структурного програмування. Він став свого роду точкою відліку початку нової ери мов. Сьогодні майбутнє Паскаля представляється невизначеним, але, незважаючи на всі злами долі, він продовжує служити вірою і правдою своїм шанувальникам.

Народження Паскаля

Формально ювілей Паскаля припав на листопад 2000 р., коли виповнилося 30 років з моменту першої офіційної публікації опису мови. Але то був недоступний широкій аудиторії технічний звіт Швейцарського федерального технологічного інституту ETH (Eidgenoessische Technische Hochschule). У самому початку 1971 р. звіт був передрукований в першому номері журналу Acta Informatica. Так що народження нової мови можна відраховувати і з цього моменту.

Його автор, швейцарський професор Ніклаус Вірт, багато в чому став відомий саме завдяки появі Паскаля. Але й наступні його проекти переконливо довели світові, що ключ до таємниць комп'ютерів - в гармонії математики, інженерії та програмування. І якщо грамотно підійти до справи, то можна реалізувати мови, операційні системи і навіть створити чудові комп'ютери, що перевершують промислові зразки, силами звичайних студентів!

Паскаль нерідко протиставляють іншої мови - Сі. Але ось що сказав у присутності Вірта з цього приводу Денніс Рітчі, автор Сі (1993): «Я стверджую, що Паскаль дуже близький мови Сі. Одні, можливо, цьому здивуються, інші - ні ... Навіть цікаво, наскільки вони близькі один одному. Ці мови більше розходяться в деталях, але в основі своїй суті однакові. Якщо ви поглянете на використовувані типи даних, а також на операції над типами, то виявите дуже велику ступінь збігу ... І це незважаючи на те, що наміри Вірта при створенні Паскаля дуже відрізнялися від наших у мові Сі. Він створював мову для навчання, а тому переслідував дидактичні цілі. І, як я помітив це по Паскалю і за його пізнішим мовам, Вірт був у владі свого прагнення обмежити виражальні засоби як можна сильніше ... »

Так, Паскаль, на відміну від Сі, не створювався як мова системного програмування. В ім'я простоти і ефективності на тому рівні розуміння програмування Вірт свідомо пішов на явне обмеження можливостей мови, перш за все щодо спілкування з зовнішнім світом (введення-виведення і системно-залежні засоби). І все ж думати, що Паскаль - мова виключно для викладання, було б невірно. Послухаємо з цього приводу думку самого Вірта (1984): «Стверджувалося, що Паскаль був розроблений в якості мови для навчання. Хоча це твердження справедливо, але його використання при навчанні не було єдиною метою. Насправді я не вірю в успішність застосування під час навчання таких інструментів і методик, які не можна використовувати при вирішенні якихось практичних завдань. За сьогоднішніми мірками Паскаль мав явними недоліками при програмуванні великих систем, але 15 років тому він представляв собою розумний компроміс між тим, що було бажано, і тим, що було ефективно ».

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

Мови Паскаль і Сі багато в чому визначили шляхи розвитку програмування в кінці XX століття. Їхнє протистояння нагадало романтичну епоху 60-х років, коли прихильники Фортрану і Алгол-60 також опинилися по різні боки барикад.

При всій повазі до таких масштабних мов, як Кобол, ПЛ / 1 і Алгол-68, що панували в 70-і роки, настільки явно виражену боротьбу людей та ідей нам вдалося спостерігати лише в 80-е (Паскаль і Сі) і в самому кінці 90-х років - Сі + + і Java.

Можна назвати як мінімум три десятки мов, які відіграли помітну роль у розвитку програмування, але все ж саме ці три пари - Алгол-60 і Фортран, Паскаль і Сі, Java і С + + - стали найяскравішими, найпомітнішими на комп'ютерному небосхилі.

Це, звичайно, чисто суб'єктивні відчуття, але в певні моменти еволюції можна було спостерігати чи не беззастережне панування тієї чи іншої мови, що тут же відбивалося на вимогах промисловості, на складанні навчальних планів у вузах та університетах. У 70-і роки на піку популярності серед універсальних мов був Фортран, в 80-ті - Паскаль, в 90-ті роки - Сі + +. На щастя, мови програмування, на відміну від небесних світил не вмирають, а продовжують своє життя, розчиняючись через роки і десятиліття в нових собі подібних зірках.

Творці мов намагалися робити їх у меншій мірі схожими на середовище спілкування між людиною і комп'ютером і більшою - на впорядкований набір знаків і символів. Першим тримати курс на традиційну і усталену математичну символіку запропонував Х. Рутісхаузер (1952), що став родоначальником ідеї мов програмування і одним з авторів мови Алгол-60. Широке розповсюдження і застосування його ідеї отримали лише в 1957 р., після того, як корпорація IBM опублікувала опис мови Фортран та реалізувала для нього компілятор, що транслював програми в машинний код. По суті, з цього моменту і почалася епоха мов програмування.

Якщо поглянути на історію мов з точки зору географії їх створення, то неважко дійти висновку, що дві нині найвідоміші гілки генеалогічного древа - Паскаль і Сі, що дали життя багатьом своїм нащадкам, є яскравими виразниками відповідно до європейської та американської шкіл. При цьому в Старому Світі архітектори мов активно використовують напрацювання американських дослідницьких центрів і лабораторій, а представники Нового Світу намагаються збагачуватися ідеями європейських фахівців (Швейцарія, Норвегія, Англія, Данія). Європейська школа частіше ратує за чистоту і компактність своїх мов програмування, тоді як заокеанська не в силах уникнути сумбурного включення новомодних рішень. Ну майже як у житті: чистота і консерватизм французької мови проти нестримних запозичень англійської в його американському діалекті.

ETH Pascal і P-код

Перший компілятор Паскаля (ETH Pascal) був написаний в 1970 р. Перше офіційне опис Паскаля з викладом синтаксису і семантики було опубліковано Віртом наприкінці 1970 р. Нова версія мови вийшла у світ в 1972 р. Тоді ж Вірт і його англійський колега Чарльз Ентоні Хоар (Charles Anthony Richard Hoare) випустили аксіоматичне опис Паскаля.

«Наш перший компілятор Паскаля був реалізований на сімействі комп'ютерів CDC-6000 і написаний на самому Паскалі. Ніякого PL6000 не треба було, і я розглядав це як суттєвий крок вперед », - згадує Вірт. Неіснуючий мова PL6000 Вірт згадав у зв'язку з тим, що кількома роками раніше для ефективної реалізації компілятора мови Algol-W на комп'ютері IBM/360 йому знадобилося розробити низькорівневий мова PL360. Тепер же в цьому необхідності не було.

Чому було обрано саме комп'ютер фірми Control Data Corporation? Відповідь проста: на той момент в ETH активно використовувалися саме ці машини, а вибір мов на них був більш ніж скромним: асемблер або Фортран. Конкурувати з Фортраном в ефективності на цій платформі було непросто, адже набір команд CDC-6000 створювався з прицілом саме на реалізацію Фортрану.

Написання компілятора в 1969 р. Вірт доручив одному своєму студенту (Е. Мармье). У той момент Мармье володів лише Фортраном і писав компілятор на цій мові з подальшою трансляцією його в Паскаль. Потім компілятор Паскаля повинен був піддатися процесу розкрутки (переписаний на самому Паскалі). Як зазначає Вірт, вибір Фортрану був серйозною помилкою. Він не міг адекватно виражати складні структури даних компілятора, що все більше заплутувало програму.

Друга спроба створити компілятор почалася з того, що він відразу формулювався на самому Паскалі (згідно з описом 1970 р.). Синтаксичний аналіз нового однопрохідного компілятора здійснювався методом рекурсивного спуску. Тепер до команди розробників увійшли У. Амман, Е. Мармье і Р. Шілд. Після того як компілятор був написаний на ще не існуючому мовою, Шілд був відправлений до себе додому на два тижні, де весь цей час він вручну транслював програму в допоміжний низькорівневий мову, доступний на CDC-6000. Отже, в середині 1970 компілятор ETH Pascal був готовий.

Він був цікавий не тільки тим, що став однією з перших реалізацій мов високого рівня на самому собі, приблизно на два роки випередивши компілятор Сі. У ході робіт над ним у 1973 р. була придумана абстрактна Pascal-машина (P-машина), виконуюча спеціальний P-код. Щоб вирішити проблему перенесення компілятора Паскаля на різні платформи, Вірт вирішив скористатися випробуваними часом методами інтерпретації. З найбільш відомих рішень, що передували P-коду, можна назвати реалізацію мови Snobol-4 (Р. Грісуолд, 1967), де в якості коду абстрактної машини використовувалася мова SIL (System Implementation Language).

Як відомо, введення віртуальної (абстрактної) машини Java підносилося її розробниками з Sun Labs чи як не фундаментальне відкриття в практиці мов програмування. Один з учнів Вірта, Міхаель Франц, зауважив з цього приводу наступне: «Переносимість Java заснована на наявності віртуальної машини, що дозволяє легко імітувати велике число архітектур. Ідея віртуальної машини була дуже популярна вже понад двадцять років тому, хоча згодом про неї забули. Тоді мова йшла про Pascal-P - створеної в ETH реалізації Паскаля, яка зіграла вирішальну роль у поширенні цієї мови. Цікаво, що віртуальні машини для Паскаля і Java вельми схожі по архітектурі: в обох використовуються однобайтові інструкції без адрес (операнди поміщаються в стек) ».

Ідеї ​​P-коду знайшли застосування не тільки в платформах Java і NET, не тільки в інших мовах і машинах баз даних, але і в реалізації апаратних засобів. Наприклад, для безпосереднього виконання P-коду в Western Digital в 1979 р. був розроблений спеціальний набір WD9000 P-Engine. У Стенфордському університеті в 1980 р. був створений експериментальний процесор POMP. Розгромна в 1978 р. комерційна реалізація Паскаля - UCSD Pascal стала ще відомішою, і багато хто забув, де ж вперше виникли P-код і P-машина. Ось що говорить про це Вірт: «Після того як стало відомо про існування Паскаля, кілька людей попросили нас допомогти в його реалізації на різних машинах, підкреслюючи, що вони мають намір використовувати його для навчання і що швидкодія для них не має першорядного значення. Після цього ми вирішили створити версію компілятора, яка генерувала б код для машини нашої власної конструкції. Пізніше цей код став відомий як P-код ... Pascal-P виявився винятково вдалим мовою для розповсюдження серед великого числа користувачів. І якщо б у нас вистачило мудрості передбачити масштаби такого розвитку подій, то ми доклали б більше зусиль і ретельності при розробці і документуванні P-коду ».

Для зручності використання в ETH створили P-інструментарій, до якого увійшли компілятор в P-код і його інтерпретатор, причому все це у вигляді вихідних текстів. Одним з отримали такий набір став Університет Каліфорнії в Сан-Дієго.

Третя спроба реалізації в ETH компілятора Паскаля, що став згодом відомим під назвою P2, була зроблена учнем Вірта Урсом Амманом; в 1974 р. вона завершилася успіхом. Завдяки високій якості Р2 отримав широке поширення в університетах та компаніях.

UCSD Pascal і початок комерційного розповсюдження

У 1975 р. професор Кеннет Боулес, що працював в Університеті Каліфорнії в Сан-Дієго (University of California at San Diego - UCSD), отримав з Цюріха P-інструментарій, який разом з компілятором P2 і був покладений в основу UCSD Pascal. В Інституті вивчення інформації каліфорнійського університету Боулес разом зі Стефеном Франкліном і Альфредом Борко зайнялися створенням системи програмування та операційної системи на базі Паскаля для мікрокомп'ютерних архітектур. У UCSD Pascal були внесені зміни як на рівні мови (у плані розширення і використання низькорівневих вставок коду, в тому числі і P-коду), так і на рівні P-машини. Вона була перероблена. Для ефективності використання Паскаля на різних комп'ютерах була включена додаткова можливість генерування машинного коду для потрібної архітектури відразу після отримання P-коду. Дуже значним удосконаленням мови в UCSD Pascal стало введення unit-блоків, необхідних для підтримки роздільної компіляції. Згодом вони були успадковані у мові Turbo Pascal.

Цікаво, що взята ця ідея була із специфікацій мови Ада, які до того моменту підходили до свого завершення. У той же час сам Вірт з мови Mesa запозичив куди більш досконалу конструкцію, ввів її в Модулі-2 і назвав «модулем» (module). Власне, вона і дала назву новому мови Вірта Modula-2 (MODUlar LAnguage).

За три роки команда Боулеса розробила закінчену систему, до якої увійшли текстовий редактор, файлова система, а також відладчик. У порівнянні з тим режимом роботи, до якого вже звикли користувачі великих машин (введення програм і даних з перфострічок і перфокарт, а також спрощений термінальний введення-виведення), це був величезний крок вперед. З'явився прообраз того, що сьогодні називають IDE-середовищем (інтегрованої середовищем розробки). UCSD Pascal стала прародителькою системи Turbo Pascal, яка домоглася небувалою популярністю.

Що стосується UCSD Pascal, то ця реалізація для Паскаля означала серйозний прорив: завдяки Боулесу сфера застосування мови значно розширилася, що, у свою чергу, дало помітний імпульс розвитку мікрокомп'ютерної революції.

Розробкою UCSD Pascal, зуміла стати закінченим комерційним продуктом, зацікавилися багато компаній. Причому їх увагу привернула і перспективна P-машина, на яку UCSD продав чимало ліцензій. В якості одного з прикладів можна навести процесор ITS, створений в Nippon Electric (1980) і призначений для виконання P-коду UCSD Pascal. Але і зараз, в епоху Java, інтерес до UCSD-реалізації не охолов. Так, зокрема, англійська компанія Cabot International продає нові версії P-машини по ліцензії UCSD. Це пропонується в якості альтернативи для Java в галузі ТБ-приставок і побутової електроніки (інтерактивне цифрове ТБ).

Turbo Pascal

Величезну роль у масовому поширенні Паскаля зіграла компанія Borland International. На основі ідей UCSD Pascal вона зуміла створити знамениту Turbo-середовище розробки. Це був значний крок вперед у полегшенні процесу програмування. Зручність візуальних засобів у поєднанні з тісною інтеграцією інструментарію стали для сотень тисяч програмістів у нагоді.

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

Що стосується модулів-2, яка домоглася затвердження свого ISO-стандарту, то компілятор для цієї мови (Turbo Modula-2) не тільки був створений в компанії Borland (для CP / M), що досить ретельно ховається, а й надійшов у продаж (у Північній Америці та Європі). Однак керівництво компанії (Філіп Кан) відмовилося породжувати власного конкурента вкрай успішному Turbo Pascal. Обурений віце-президент Borland Нільс Йенсен (один із засновників компанії) разом зі своєю командою розробників в 1987 р. пішов з Borland, викупив права на Turbo Modula-2 і створив компанію JPI (Jensen & Partners International). В Англії нею під маркою TopSpeed ​​була випущена одна з кращих лінійок компіляторів для процесорів сімейства x86: Assembler, Modula-2, Pascal, C / C + +, Ada.

А що ж Turbo Pascal? Мова видозмінювався чи не з кожною версією середовища розробки! У версії 3.0 з'явилася вбудована графіка, у версії 4.0 - модулі, у версії 5.5 - засоби об'єктно-орієнтованого програмування. Починаючи з версії 7.0 Turbo Pascal був перейменований в Borland Pascal, а з появою Delphi - у Object Pascal.

Відносно мови Turbo Pascal Ніклаус Вірт висловлюється досить дипломатично (1993): «Фактичний стандарт для Паскаля був визначений компанією Borland просто тому, що ними був створений компілятор, який поширювався широко й дешево. Borland розширювала Паскаль протягом ряду років, і деякі з цих нововведень були не настільки добре інтегровані в мову, як мені б того хотілося. Я був менш компромісним щодо власних розширень і тому дав новому проекту інше ім'я (мова йде про мову Модула-2. - Прим. Ред.) Наприклад, те, що Borland назвала UNIT, ми називали MODULE. Однак UNIT - це вставки у вигляді вихідного тексту, тоді як MODULE є окремою одиницею компіляції, яка допускає повний контроль типів і компоновку на етапі завантаження ». На питання про те, яку б оцінку Вірт поставив Модулі-2, якщо виходити з того, що Фортран заслужив «2», а Паскаль - «5», він відповів: «6». (У школах Швейцарії це найвищий бал.)

У тіні марки Borland виявилося ім'я автора Turbo Pascal данця Андерса Хейльсберга. У 1983 р. Borland викупила ліцензію на компілятор Хейльсберга і прийняла автора на роботу. У листопаді того ж року на ринку з'явився Turbo Pascal 1.0 для CP / M і комп'ютерів 8086. Історія зберегла навіть дані про компактності тієї реалізації: розмір виконуваного. COM-файлу компілятора становив 33 Кбайт, а всі файли займали 130 Кбайт. У січні 1989 р. Microsoft випустила Quick Pascal, позиціювалися як конкурент Borland Pascal. Але він протримався недовго. Microsoft з Borland поділили ринок, розвівши гілки Сі і Паскаля ще далі один від одного.

Що стосується Хейльсберга, то він 13 років пропрацював в компанії і став керівником проекту Delphi. У жовтні 1996 р. Андерса Хейльсберга за 3 млн. дол придбала корпорація Microsoft, і тепер він провідний архітектор мов. NET, а також автор мови C #. (При розробці C #, за словами Хейльсберга, розглядалися Сі + +, Java, Модула-2, Smalltalk.)

Його колишня компанія, повернувши собі ім'я Borland після кількох років роботи під вивіскою Inprise, робить тепер активні кроки щодо зміцнення позицій свого Паскаля в бурхливо розвивається ОС Linux. Забезпечуючи простоту міграції програм, створених для Windows на Visual Basic і Object Pascal, в середу Linux під єдиним інструментарієм Kylix, Borland Software має намір завдати серйозного удару по, здавалося, непорушним позиціях Microsoft.

Особливості Паскаля і його наступники

Мова Паскаль з'явився не просто ревізією Algol-W. Він створювався Віртом під впливом ідей Чарльза Ентоні Хоара, опублікованих згодом у роботі «Нотатки з структуризації даних» (Hoare CAR Notes on Data Structuring Academic Press, 1972). Внесок англійського вченого у розробку мови був настільки значний, що його сміливо можна назвати хрещеним батьком Паскаля.

Від мови Паскаль прийнято відлічувати епоху структурного програмування. А все почалося з того, що відомий голландський фахівець Едсгер Дейкстра опублікував статтю «Структурне програмування» (Dijkstra EW Structured Programming / / NATO Science Committee, 1969). У ній він запропонував обмежити логіку управління програми всього трьома формами: проходженням (sequence), розгалуженням (selection) і циклом (iteration). З цього випливало, що в мовах Алгол і ПЛ / 1 оператор безумовного переходу (goto) був уже просто не потрібен. Вірт, правда, не ризикнув вилучити його з Паскаля. Але головне полягало в іншому: структурне програмування задавало спадний принцип розробки (покрокова декомпозиція), передбачало структурування логіки і даних, за рахунок простоти та математичної основи підвищувало надійність ПЗ. Все це органічно вписувалося в можливості лаконічного Паскаля.

«Майже всі в програмному забезпеченні може бути реалізовано, продано і навіть використано, якщо проявити достатню наполегливість ... Але існує одна якість, яку не можна купити таким чином, - це надійність. Ціна надійності - це гонитва за крайньої простотою. Це ціна, яку дуже багатому найважче заплатити »- так Ентоні Хоар визначив для себе головний критерій, що став домінантою і для Вірта.

Зважений підхід, простота і лаконічність - ось запорука надійності. Вірт зазначає: «Підтримка мови максимально простим і регулярним завжди було пріоритетом у моїй роботі: опис Паскаля займало близько 50 сторінок, Модуль-2 - близько 40, а Оберона - і зовсім 16. І я розглядаю цю тенденцію як прогресивну. Справжня цінність мов програмування залежить від якості та практичності їх абстракцій>.

Характеризуючи задум своєї мови, Вірт пише: «Головною інновацією Паскаля було введення варіативності структур і типів даних подібно до того, як Алгол ввів варіативність керуючих структур. Алгол пропонував тільки три базових типи даних: цілі та дійсні числа, значення істинності, масиви; Паскаль ввів додаткові базові типи і дав можливість визначати нові базові типи (перерахування, діапазони), а також нові види структурування: запис, безліч, файл (послідовність) , частина яких була представлена ​​в Коболе. Найбільш важливою стала, звичайно, рекурсивность структурних описів і яка з неї можливість здійснювати комбінування і вкладення структур>.

А що ж говорили противники мови? З усіх критичних робіт по Паскалю, мабуть, найбільшу популярність здобула стаття Брайана Керніган «Чому Паскаль не є моїм улюбленим мовою програмування». У 1981 р. вона з'явилася на світ у вигляді препринти AT & T Bell Laboratories. Оскільки ряд авторитетних журналів відмовилися її публікувати, вона стала розходитися «нелегальними» шляхами. У широкому друці їй довелося вийти лише в 1984 р. у збірнику «Comparing and Assessing Programming Languages» (Prentice-Hall, 1984).

Як відомо, Керніган разом з Рітчі готував докладний опис мови Сі, а тому його думка особливо цікаво. Почалося все з того, що Керніган вирішив адаптувати вихідні тексти своєї книги «Software Tools» з Сі для Паскаля. До роботи над прикладами з книги, як пише Керніган, він приступив навесні 1980 р. і завершив її лише в січні 1981

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

Керніган пише: «Паскаль може бути чудовою мовою для навчання новачків тому, як писати програми ... Він безумовно вплинув на проектування нових мов, з яких Ада, мабуть, є найбільш важливим. Але в своєму стандартному вигляді (як нинішньому, так і пропонованому) Паскаль не підходить для написання реальних програм ».

Багато конкретні претензії зроблені по суті. Однак, по всій видимості, Керніган трохи лукавив, кажучи про недоліки Паскаля та замовчуючи про роботи Вірта, спрямованих на їх усунення. Але ж до весни 1980 Вірт і його колеги не тільки вже завершили роботи по комп'ютеру Ліліт і мови Модула-2, але й опублікували їхні результати. До того ж в 1977 р. у відомому журналі Software - Practice & Experience вийшла стаття Хоара, Уелша і Снірінгера з аналізом проблем Паскаля.

Прорахунки при створенні Паскаля були усунені в подальших мовах швейцарської школи (Вірта і його колег). Всі вони чітко слідували основним тенденціям розвитку технології програмування. Програмування структурний (Паскаль), модульне (Модула-2), об'єктно-орієнтоване (Оберон-2), компонентне (Component Pascal) - все це значні кроки в індустрії ПЗ.

«Наша кінцева мета, - пише Вірт, - розширюване програмування (extensible programming). Під цим я розумію можливість конструювання таких ієрархій модулів, коли кожен модуль додає нову функціональність в систему. Розширюване програмування має на увазі, що додавання модуля можливе без необхідності вносити будь-які зміни в існуючі модулі - не повинно бути необхідності навіть їх перекомпілювати. Нові модулі не тільки додають нові процедури, але, що більш важливо, додають також нові (розширені) типи даних. Ми продемонстрували практичність і економічність цього підходу при проектуванні Oberon System ».

Паскаль живий?!

Говорячи про відстороненому і упереджене ставлення людей до «чужих» мовам, Вірт зазначає: «Багато хто відноситься до стилів та мов програмування, як до релігійних конфесій: якщо ви належите до однієї з них, то не можете належати до іншої. Але це хибна аналогія, і вона свідомо підтримується з причин комерційного порядку ».

У самому справі, протистояння двох таборів - Сі і Паскаля - всі ці роки навмисно заохочувалося. Між ними методично зводили високу стіну, а потім почали знищувати поодинці. В особі UNIX мова Сі знайшов собі надійний захист від надто агресивних модерністів-реформаторів. У Паскаля ж такого «панцира» не виявилося. Він продовжує свій шлях багато в чому завдяки відданості своїх шанувальників, яка часом просто вражає.

* * *

На закінчення надамо слово опоненту Ніклауса Вірта - Деннісу Рітчі: «Паскаль - дуже елегантний мову. Він як і раніше живий. Він породив чимало своїх послідовників і зробив глибокий вплив на проектування мов ».

ПРО АВТОРА:

Руслан Богатирьов - керівник «Студії програмних технологій 1024» при видавництві «Відкриті системи». E-mail: bogatyrev@osp.ru.

З біографії М. Вірта

Професор Ніклаус Вірт (Niklaus K. Wirth), автор мови Паскаль, закінчив Швейцарський федеральний технологічний інститут ETH (Eidgenoessische Technische Hochschule) в рідному Цюріху (1958). У Лавальском університеті в Квебеку (Канада) він отримав ступінь магістра (1960). У 1963 р. в Університеті Каліфорнії в Берклі (США) Вірт під керівництвом професора Гаррі Хаскі реалізував розширення Алгола-60 (мова Euler) і захистив дисертацію. У 1963-1967 рр.. Вірт викладав у Стенфордському університеті (США). У цей же час він був запрошений в міжнародну експертну групу IFIP Working Group 2.1, яка займалася проектуванням мови Алгол-68.

У 1967 р. Вірт повернувся на батьківщину і став доцентом Університету Цюріха. У 1968 р. він перейшов у ETH, де зайнявся розробкою мови Паскаль. У 1970 р. було завершено перший компілятор Паскаля. У період 1978-1981 рр.. Вірт очолював проект, в результаті якого була розроблена мова Модула-2, орієнтований на нього 16-розрядний персональний комп'ютер Ліліт (Lilith) і ОС Medos. Всі ПЗ, включаючи системне, було повністю реалізовано на Модулі-2. У 1984 р. Ніклаус Вірт за великий внесок у розвиток мов програмування і за створення персонального комп'ютера Ліліт був удостоєний премії Алана Тьюрінга - найпрестижнішої і почесною в комп'ютерному світі, яка за своїм значенням стоїть в одному ряду з Нобелівською премією.

У період 1986-1989 рр.. Вірт вів проект зі створення нової мови Oberon, розширюваної об'єктно-орієнтованої ОС Oberon і 32-розрядної робочої станції Ceres. Багато ідей того проекту були покладені співробітниками Sun Labs в основу мови і технології Java.

З 1990 р. Вірт керував Інститутом комп'ютерних систем при ETH. У 1999 р. він пішов на заслужений відпочинок і став почесним професором рідного ETH.

Найбільш важливі реалізації Паскаля

Система Рік Керівник Географія Організація
ETH Pascal 1970 Ніклаус Вірт Європа ETH
UCSD Pascal 1978 Кеннет Боулес Америка UCSD
Turbo Pascal 1983 Андерс Хейльсберг Америка Borland Int.

Стандарти Паскаля

У 1977 р. під час конференції з Паскалю в Саутгемптоні Е. Еддіман попросив надати допомогу у формуванні комітету зі стандартизації при Британському інституті стандартів BSI (British Standards Institute). У 1978 р. для обговорення розширення Паскаля на конференції в Сан-Дієго, що проходила під керівництвом Кеннета Боулеса, зустрілися представники промислових кіл. З цього і почалася стандартизація мови.

У 1982 р. Міжнародна організація зі стандартизації (ISO) випустила стандарт ISO 7185:1983. У цей же час вийшов американський стандарт ANSI / IEEE 770X3.97: 1983. Прийнято виділяти три принципово різних стандарту: Unextended Pascal (вихідний), Extended Pascal (розширений) і Object-Oriented Extensions to Pascal (об'єктно-орієнтований). У 1989 р. стандарт ISO 7185:1983 був відкорегований, після чого потреба в самостійному ANSI-стандарті відпала і він був замінений посиланням на ISO 7185:1990. Одним з головних відмінностей Extended Pascal стало введення модульності, необхідної для роздільного компіляції. Extended Pascal закріплений в міжнародному стандарті ISO / IEC 10206 (1991) і американському ANSI / IEEE 770X3.160: 1989. У 1993 р. об'єктно-орієнтовані розширення по відношенню до Extended Pascal були сформульовані в технічному звіті ANSI/X3-TR-13: 1994.

Що стосується найпоширенішою реалізації мови - Turbo Pascal, а також Object Pascal (Delphi), то жодному з цих стандартів вони не відповідають. У свою чергу, вони неявно самі задають угоди, яким намагаються слідувати деякі реалізації.

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

Руслан Богатирьов. Літопис мов Паскаль

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

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

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


Схожі роботи:
Київський літопис
Літопис хімії
Літопис епохи лірика
Галицько-Волинський літопис
Ахматова а. - Літопис епохи
Літопис рідного села М-Олександрівка
Класична наука літопис відкриттів
Гоголь н. в. - Художня літопис часу
Шолохов м. а. - Художня літопис колективізації
© Усі права захищені
написати до нас