Математика | ||||
Программирование на языке Модула-2-Вирт Н. М.; Мир, 1987. —224 с., ил | ||||
Вирт Н.
Программирование на языке Модула-2: Пер. с англ. — М.; Мир, 1987. —224 с., ил. Книга известного швейцарского специалиста по системному программированию, знакомого советским читателям по переводам его книг «Введение в системное программирование» (М.: Мир, 1977} и «Алгоритмы + структуры данных = программы» (М.; Мир, 1985). Язык Модула-2 является преемником известного языка Паскаль и ориентирован на однопроцессорные малые ЭВМ. Книга сочетает в себе достоинства учебного пособия и справочного руководства по этому языку. Для системных программистов, для специалистов, работающих с языком Модула-2. ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА Более 15 лет .назад появился язык Паскаль, который быстро завоевал ПОПУЛЯРНОСТЬ, получив широкое распространение. Создан < он был для целей обучения программированию, однако очень скоро нашел другое поприще - системное программирование. И пожалуй, в дальнейшем (в том числе и у нас) он больше всего используется именно для создания программного обеспечения. Правда, целый ряд черт языка мешал этому. Прежде всего отсутствовала модульность. Немалую роль играли также такие моменты, как отсутствие в языке параллельных процессов, затруднения с организацией работы различных независимых устройств вычислительной машины и др. Видимо, все это привело Н.Вирта к шее разработки языка Модула, а затем и настоящей его модификации - Модула-2. С того момента, когда этот язык стал известен системным программистам в СССР, число его сторонников постоянно увеличивалось. Можно смело рассчитывать на то, что в ближайшее время, кроме зарубежных, мы будем располагать целым рядом высококачественных отечественных трансляторов, в большей степени приспособленных к нашей специфике работы на ЭВМ. ТРУДНО объяснить причины успеха (или неуспеха) какого—либо языка программирования. Помимо привычки (возможно, основной причины, объяснявшей распространенность, например, Фортрана), есть еще какие-то Факторы. И не исключено, что весьма существенным для языков, создаваемых Н.Виртом, и в частности для Модулы-2, является относительная простота: при всей широте возможностей и мощности изобразительных средств описание его требует всего 40 страниц ("Сообщение о языке программирования Модула-2" в настоящей книге). Это, конечно, существенно облегчает изучение языка и его использование. Следует все же сказать, что в языке не все может нравиться. В таких оценках много субъективного, но тем не менее хочется отметить, например, отсутствие динамических массивов, бедность аппарата параллельных процессов и средств их взаимодействия, отсутствие способов гибкого задания отображения типов на Физическую память машины. Создалось впечатление, что сложные зистемные программы будут ориентированы на те ЭВМ, для которых эни пишутся, и перенос программ с одних ЭВМ на другие будет затруднен. Впрочем, язык Модула-2 не следует рассматривать как жончательно сформированный и законченный, и возможно, что как ОГЛАВЛЕНИЕ Предисловие редактора перевода..........................5 Предисловие.............................................7 Предисловие к третьему издании..........................9 Часть 1 ................................................10 1. Введение..........................................10 2. Первый пример.....................................12 3. Нотация для записи синтаксиса Модулы..............15 4. Представление программ на Модуле..................17 5. Операторы и выражения.............................20 6. Управляющие структуры.............................24 6.1. Операторы повторения (циклы) ..................24 6.2. Условные операторы............................26 7. Элементарные типы данных..........................31 7.1. Тип INTEGER (целый) ...........................31 7.2. Тип CARDINAL (натуральный) ....................32 7.3. Тип REAL (действительный) .....................33 7.4. Тип BOOLEAN (логический) ......................35 7.5. Тип CHAR (литерный) ...........................37 7.6. Тип BITSET....................................39 8. Описания констант и переменных....................40 9- Массивы...........................................41 Часть 2................................................53 10. Процедуры...............:.........................53 11. Понятие локальности...............................54 12. Параметры.........................................56 12.1. Параметры-переменные..........................58. 12.2. Параметры-значения............................58 12.3. Гибкие массивы-параметры......................59 13. Процедуры-Функции.................................60 14. Рекурсия..........................................62 Часть 3................................................71 15. Описания типов....................................71 16. Перечислимые типы.................................72 17. Тип диапазон......................................73 18. Тип множество.....................................74 19. Тип запись........................................76 ао. записи с вариантными частями......................79 21. Динамические структуры данных и указатели.........82 22. Процедурные типы..................................87 Часть 4................................................89 23. Модули..................---.......................89 24. Раздел определений и раздел реализации............91 25. Разбиение программы на модули.....................95 26. Локальные модули---..... ввод и вывод ________. uri ODV4U И ВЫВОД....................111 28. Экранный ввод и вывод ........... ___......................................103 27. Последовательный ввод и BUM*-— 111 -.121 Часть 5...............................................133 29. Средства программирования низкого уровня.........133 30. Параллельные процессы и сопрограммы..............137 31. Управление внешними устройствами, параллельность и прерывания.......................................146 Сообщение о языке программирования Модула-2...........151 1. Введение.........................................151 2. Синтаксис........................................152 3. Словарь и изображение ----.......................152 4. Описания и правила видимости........'.............154 5. Описания констант................................155 6. Описания типов...................................156 6.1. Основные типы..............'..................156 6.2. Перечисления.................................157 6.3. Тип диапазон.................................157 6.4. Тип массив...................................158 6.5. Тип запись...................................158 6.6. Тип множество................................159 6.7. Тип указатель........................,.......160 6.8. Тип процедура................................160 7. Описания переменных..............................160 8. Выражения..........................-........,---161 8.1. Операнды.....................................161 8.2. Операции..........---.......................162 8.2.1. Арифметические операции..................163 8.2.2. Логические операции---..................163 8.2.3. Операции над множествами —..............163 8.2.4. Отношения................................164 Э. Операторы............................---.........165 9.1. Присваивания......'...........................165 9.2. Вызовы процедур..............................166 9.3. Последовательности операторов................166 9.4. Условный оператор............................166 9.5. Оператор выбора..............................167 9.6. Цикл с условием продолжения..................167 9.7. Цикл с условием окончания....................168 9.8. Цикл с шагом .................................168 9.9. Безусловный цикл.............................169 9.10. Оператор присоединения......................170 9.11. Операторы выхода и возврата.................170 10. Описания процедур................................170 10.1. Формальные параметры.........................171 10.2. Стандартные процедуры........................173 11. Модули...........................................174 12. Системно-зависимые возможности...................177 13. Процессы.........................................179 13.1. Порождение процессов и передача управления ...179 13.2. Процессы устройств и прерывания..............180 14. Единицы компиляции...............................180 Приложение 1. Синтаксис Модулы-2......................183 Перекрестные ссылки...............................185 Приложение 2. Стандартные вспомогательные модули......189 Terminal ..........................................189 F11 eSystem........................................ 190 InOut...........................---..............192 RealInOut .........................................194 Windows...........................................194 TextUlndows.......................................195 Graph icUindows...........................".*........197 Cursor-Mouse..............................:........198 Menu..............................................199 Storage...........................................199 МаШЛЬ0..........................................200 Приложение 3. Таблица литер кода ASCII ................201 Приложение 4. Синтаксические диаграммы Модулы-2.......202 Предметный указатель..................................214 v \ . i I Цена: 150руб. |
||||