Главная » Просмотр файлов » Н. Вирт - Программирование на языке Модула-2

Н. Вирт - Программирование на языке Модула-2 (1160777), страница 28

Файл №1160777 Н. Вирт - Программирование на языке Модула-2 (Н. Вирт - Программирование на языке Модула-2) 28 страницаН. Вирт - Программирование на языке Модула-2 (1160777) страница 282019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 28)

Но, поскольку Модула была задумана и как инструмент созданияоперационных систем, включение соответствующих средств работы с устройствами ипрерываниями было неизбежно. Их использование, однако, должно быть ограничено такназываемыми автономными системами, которые не поддерживаются (и не обременены)конкретной операционной системой.Сообщение о языке программирования Модула-21. ВВЕДЕНИЕЯзык Модула-2 возник из практических нужд как универсальный и эффективный языксистемного программирования для мини-ЭВМ.

Его предшественниками были Паскаль и Модула. Отпоследнего он унаследовал имя, важное понятие модуля и систематический современныйсинтаксис, а от первого - почти все остальное. Сюда входят, в частности, структуры данных, т.е.массивы, записи, записи с вариантами, множества и указатели. В число структурных оператороввходят условный оператор, оператор выбора, цикл с условием окончания, цикл с условиемпродолжения и оператор присоединения. Синтаксис структурных операторов таков, что каждыйоканчивается специальным символом.Язык по существу машинно-независим. Исключение составляют ограничения, связанные сдлиной слова.

Может показаться, что это противоречит понятию языка системногопрограммирования, в котором должна быть возможность выразить все операции базовой машины.Эта дилемма разрешается при помощи понятия модуля. Машинно-зависимые понятия вводятся139при помощи специальных модулей, поэтому их использование может быть очерченоопределенными рамками. В частности, в этих случаях язык дает возможность ослабить правиласовместимости типов.

На хорошем языке системного программирования должна бытьвозможность написать процедуры преобразования при вводе-выводе, подпрограммы обработкиФайлов, распределения памяти, управления процессами и другие. Поэтому такие возможностидолжны быть не элементами самого языка. а модулями (как говорят, низкого уровня),являющимися компонентами большинства написанных программ. Поэтому такой наборстандартных модулей является существенной частью реализации Модулы-2.Вместо процессов и их синхронизации с помощью сигналов, введенных в Модуле, вМодуле-2 используется низкоуровневое понятие сопрограммы .

При этом, однако, можносформулировать (стандартный) модуль, реализующий эти процессы и сигналы. Преимуществотого, что они не включаются собственно в язык, состоит в том, что программист,запрограммировав самостоятельно соответствующий модуль, имеет возможность выбрать такойалгоритм управления процессами, который отвечает его нуждам. В простых (но частовстречающихся) случаях, например когда взаимодействующие процессы выступают только какдрайверы устройств, эти программы могут быть вообще опущены.Современный язык системного программирования должен поддерживать разработкубольших программ, возможно, создаваемых несколькими людьми. Модули, написанные каждымиз них, имеют хорошо специфицированные интерфейсы.

Формулируемые независимо отреализации. В Модуле-2 это поддерживается разделением модулей определений и модулейреализации. Первые определяют все объекты, экспортируемые из соответствующего модуляреализации. В некоторых случаях, таких, как процедуры и типы, в модуле определенийспецифицируется только то, что существенно для описания интерфейса, т.е. для пользователямодуля.Данное сообщение отнюдь не учебник по языку Модула-2. Его цель - дать сжатое и(надеемся) ясное описание.

Оно предназначено быть справочным пособием для программистов,реализаторов и авторов руководств и арбитром в сомнительных случаях.2. СИНТАКСИСЯзык - это бесконечное множество предложений, удовлетворяющих его синтаксису. Вслучае Модулы-2 предложения называются единицами компиляции. Они представляют собойконечные последовательности символов из конечного словаря.

Словарь Модулы-2 состоит изидентификаторов, чисел, строк, операций и ограничителей. Они называются лексическимисимволами (лексемами) и состоят из последовательности литер.Для описания синтаксиса используются расширенные Формы Бэкуса-Наура (РБНФ).Квадратные скобки [] означают, что заключенная в них сентенциальная Форма можетотсутствовать, а Фигурные скобки О означают ее повторение (возможно, 0 раз).

Синтаксическиепонятия (нетерминальные символы) обозначаются словами, выражающими их интуитивныйсмысл. Символы словаря языка (терминальные символы) изображаются словами, написаннымипрописными буквами (резервированные слова) или цепочками литер, заключенными в кавычки(далее просто цепочки). Синтаксическим правилам (продукциям) предшествует символ $ в началестроки.3. СЛОВАРЬ И ИЗОБРАЖЕНИЕИзображение терминальных символов посредством литер зависит от имеющегося наборалитер. В данном сообщении используется набор ASCII; при этом надо иметь в виду следующиелексические правила. Пробелы не должны встречаться внутри символов (исключение составляютцепочки). Пробелы и концы строк игнорируются, если они несущественны для разделениясимволов.1.

Идентификаторы - последовательности букв и цифр. Первым символом должна бытьбуква.140$Идентификатор = Буква {Буква | Цифра }.Примеры:х scan Modula ETH ВзятьСимвол перваяБуква2. Числа могут быть целыми (возможно, без знака) или действительными. Целое —последовательность цифр. Если за числом следует буква В, оно рассматривается каквосьмеричное; если буква Н - как шестнадцатеричное; если буква С - число рассматривается каклитера с данным (восьмеричным) порядковым номером (и имеющая тип CHAR, см. п.6.1). (* Здесьи далее, если не оговорено особо, имеются в виду ссылки на настоящее сообщение.

-Прим.перев.*)Целое i в диапазоне 0<=i<=MaxInt можно рассматривать как типа INTEGER, так и типаCARDINAL. Если оно лежит в диапазоне MaxInt<=i<=MaxCard, то имеет тип CARDINAL. Для 16разрядных машин: MaxInt=32767, MaxCard=65535.Действительное число всегда обычно содержит десятичную точку. Кроме того, оно можетсодержать порядок. Буква Е означает "десять в степени".

Действительное число имеет тип REAL.$Число=Целое | Действительное.$Целое - Цифра { Цифра } | ВосьморичнаяЦиФра${ ВосьмеричнаяЦиФра } ("В"|"С") |$Цифра { ШестнадцатеричнаяЦиФра } "Н".$$Действительное = Цифра {Цифра}"." {Цифра} [Порядок].$Порядок = "Е" [ "+" | "-" ] Цифра { Цифра }.$ШестнадцатеричнаяЦиФра =$Цифра |"A"|"B"|"C"|"D"|"E"|"F".$Цифра = ВосьмеричнаяЦиФра |"8"|"9".$ВосьмеричнаяЦиФра =$"0"|"1"|"2"|"3"|"4"|"5"|"6"|"7".Примеры:1980 3764В 7ВСН ЗЗС 12.3 45.67Е-83. Цепочки - последовательности литер, заключенные в кавычки. В качестве кавычек могутиспользоваться как одиночные кавычки (апострофы), так и двойные кавычки. Однакооткрывающей и закрывающей кавычкой должна быть одна и та же литера, не встречающаяся встроке.

Цепочка литер не может переноситься на другую строку.$Цепочка = "'" { Литера } "'" | '"' { Литера } '"'.Цепочка, состоящая из п литер, имеет тип (см. п.6.4)ARRAY [0..n-1] OF CHARПримеры: "MODULA" "C'est chic!" 'Шлягер "Бразилия"'1414. Операции и ограничители - специальные литеры, пары литер или резервированныеслова, перечисленные ниже. В резервированные слова входят только прописные буквы, и они немогут выступать в качестве идентификаторов. Символы # и о - синонимы, как и символы & иAND, ~ и NOT.+=ANDFORQUALIDENT=#ARRAYFROMRECORD*<BEGINIFREPEAT/>BYIMPLEMENTATION RETURN:=<>CASEIMPORTSET&<=CONSTINTHEN.>=DEFINITION LOOPTO,..DIVMODTYPE;:DOMODULEUNTIL()ELSENOTVAR[]ELSIFOFWHILE{}ENDORWITH^|EXITPOINTEREXPORTPROCEDURE~5. Комментарии - произвольная последовательность литер, заключенная в скобки (* и *).Комментарии могут помещаться между любыми двумя символами программы.

Они могут бытьвложенными и не влияют на смысл программы.4. ОПИСАНИЯ И ПРАВИЛА ВИДИМОСТИКаждый идентификатор, встречающийся в программе, должен быть описан, если он неявляется стандартным идентификатором. Последние считаются предописанными и допускаютиспользование в любой части программы. Поэтому они называются проникающими. Описания служатдля задания объект локален. Это правило видимости дополняется следующими случаями:1.

Если идентификатор х, определенный описанием D1, используется в другом описании(но не в операторе) D2, то D1 должно текстуально предшествовать D2.2. Тип Т1 может использоваться в описании типа указателя Т (см. п.6.7), текстуальнопредшествующего описанию Т1, если как Т, так и Т1 описаны в одном и том же блоке. Этонекоторое ослабление правила 1.3. Если идентификатор, определенный в модуле Ml, экспортируется, в область еговидимости включается блок, содержащий Ml.

Если Ml - единица компиляции (см. гл. 14), то вобласть . видимости включаются все единицы компиляции, импортирующие Ml.4. Использование идентификаторов полей записи (см. п.6.5) допустимо только вобозначениях полей и в операторах присоединения, ссылающихся на переменную этого типазаписи.Идентификатор может быть квалифицирован.

В этом случае в качестве приставки к немуиспользуется другой идентификатор, обозначающий модуль (см. гл. 11), в котором определен142квалифицируемый идентификатор. Эти идентификаторы разделяются точкой. Ниже перечисленыстандартные идентификаторы с указанием пунктов, где они вводятся. $КвалИдент =Идентификатор {.

"." Идентификатор }.ABS(10.2) INCL(10.2)BITSET(6.6)INTEGER(6.1)BOOLEAN(6.1)LONGINT(6.1)CAP(10.2) LONGREAL(6.1)CARDINAL(6.1)MAX(10.2)CHAR(6.1)MIN(10.2)CHR(10.2) NIL(6.7)DEC(10.2) ODD(10.2)EXCL(10.2) ORD(10.2)FALSE(6.1)PROC(6.8)FLOAT(10.2) REAL(6.1)HALT(10.2) SIZE(10.2)HIGH(10.2) TRUE(6.1)INC(10.2)(10.2)VAL(10.2)TRUNC5. ОПИСАНИЯ КОНСТАНТОписание константы связывает идентификатор со значением константы.некоторыхнеизменных свойств объекта, таких, например, как является ли он константой, типом, переменной,процедурой или модулем.После описания идентификатор используется для ссылки на соответствующий объект.

Характеристики

Тип файла
PDF-файл
Размер
2,76 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее