Реферат: Летопись языков Паскаль
Характеризуя
замысел своего языка, Вирт пишет: «Главной инновацией Паскаля было введение
вариативности структур и типов данных подобно тому, как Алгол ввел
вариативность управляющих структур. Алгол предлагал только три базовых типа
данных: целые и вещественные числа, значения истинности, массивы; Паскаль ввел
дополнительные базовые типы и дал возможность определять новые базовые типы
(перечисление, диапазоны), а также новые виды структурирования: запись,
множество, файл (последовательность), часть которых была представлена в Коболе.
Наиболее важной стала, конечно, рекурсивность структурных описаний и вытекающая
из нее возможность осуществлять комбинирование и вложение структур>.
А
что же говорили противники языка? Из всех критических работ по Паскалю,
пожалуй, наибольшую известность получила статья Брайана Кернигана «Почему
Паскаль не является моим любимым языком программирования». В 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), то ни одному из этих стандартов они не соответствуют. В свою
очередь, они неявно сами задают соглашения, которым пытаются следовать
некоторые реализации.
Список литературы
Руслан
Богатырев. Летопись языков Паскаль
Для
подготовки данной работы были использованы материалы с сайта http://www.pascal.dax.ru/
|