Р. ХАНТЕР
ПРОЕКТИРОВАНИЕ И
КОНСТРУИРОВАНИЕ
КОМПИЛЯТОРОВ
Перевод с английского С. М. КРУГОВОЙ
Под редакцией В. М. САВИНКОВА
МОСКВА
ФИНАНСЫ И СТАТИСТИКА
1984
3
ББК 32. 973
X19
Хантер Р. XI9 Проектирование и конструирование компиляторов/ Пер. с англ. ; Предисл. В. М. Савинкова. — М. : Финансы и статистика, 1984. — 232 с. ,
ил. В пер. : 1 р. 30 к.
17 000 экз. В книге известного английского автора рассматриваются проблемы
проектирования и построения компиляторов для языков программирования высокого
уровня, в частности Алгола 60, ПЛ/1, Алгола 68, Паскаля и Ады. Основное внимание
уделяется целям проектирования надежных компиляторов и средствам их достижения. Практические вопросы разъясняются посредством упражнений. Для математиков, разработчиков программного обеспечения ЭВМ и АСУ,
специалистов по алгоритмическим языкам, студентов к аспирантов вузов.
2405000000 — 031
X ------------------------- 113 — 84
ББК 32. 973
010(01) —84 6Ф7!3
© 1981 by John Wiley & Sons Ltd. © Перевод на русский язык, предисловие,
«Финансы и статистика», 1984
4
ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ
Структурные изменения парка ЭВМ, быстро возрастающая роль малых и
особенно персональных ЭВМ для массовых пользователей-непрограммистов не
нарушили основополагающего значения алгоритмических языков в
программировании. «Программистский бум» 80-х годов связывают прежде всего с такими
алгоритмическими языками, как Паскаль, Си, Ада и др. , с помощью которых
развивается базовое программное обеспечение ЭЕГМ всех типов и разрабатываются
программные средства для непрограммистов: системы запросов (простых и сложных),
генераторы отчетов, графические интерпретаторы, генераторы прикладных программ,
параметризованные пакеты прикладных программ, языки программирования
сверхвысокого уровня. Развитие архитектуры вычислительных машин и систем и аппаратная
поддержка многих функций традиционного «софтвера» сохранили алгоритмический
уровень спецификации задач. Следовательно, такие алгоритмические языки, как Ада
и Паскаль, и соответствующие компиляторы остаются инструментальным средством
не только профессиональных программистов, но и других специалистов,
занимающихся постановкой и решением задач на ЭВМ. Как известно, алгоритмические языки бесполезны без надежных и
эффективных трансляторов. Преимущественное распространение языка Алгол 60 в
нашей стране в 60—70-е годы было связано, прежде всего, со своевременной
разработкой трансляторов для основных типов отечественных ЭВМ. К сожалению, активная роль разработчиков компиляторов во внедрении новых
перспективных алгоритмических языков заметно снизилась. Примером тому может
служить язык Паскаль, опубликованный его автором еще в 1971 г. и ожидавший
около 10 лет своего компилятора на ЕС ЭВМ.