Летопись языков Паскаль
Категория реферата: Рефераты по информатике, программированию
Теги реферата: исторические рефераты, контрольная по физике
Добавил(а) на сайт: Jasevich.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата
Что касается 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 C.A.R. Notes on Data Structuring Academic Press, 1972). Вклад английского ученого в разработку языка был столь значителен, что его смело можно назвать крестным отцом Паскаля.
От языка Паскаль принято отсчитывать эпоху структурного программирования. А все началось с того, что известный голландский специалист Эдсгер Дейкстра опубликовал статью «Структурное программирование» (Dijkstra E.W. 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 язык Си нашел себе надежную защиту от чересчур агрессивных модернистов-реформаторов. У Паскаля же такого «панциря» не оказалось. Он продолжает свой путь во многом благодаря преданности своих почитателей, которая подчас просто поражает.
* * *
В заключение предоставим слово оппоненту Никлауса Вирта - Деннису Ритчи: «Паскаль - очень элегантный язык. Он по-прежнему жив. Он породил немало своих последователей и оказал глубокое воздействие на проектирование языков».
Рекомендуем скачать другие рефераты по теме: конспекты 9 класс, курсовые рефераты.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата