Х. Мёссенбёк, Н. Вирт - Язык программирования Оберон-2
Описание файла
PDF-файл из архива "Х. Мёссенбёк, Н. Вирт - Язык программирования Оберон-2", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
1This document is in Windows 1251 cyrillic codingThe Programming Language Oberon-2H.Moessenboeck, N.WirthInstitut fur Computersysteme, ETH ZurichJuly 1996Институт компьютерных систем, ETH, ЦюрихИюль 1996Перевод с английского С.СвердловаЯзык программирования Оберон создан автором Паскаля и Модулы-2 Никлаусом Виртом в 1987году в ходе разработки одноименной операционной системы для однопользовательской рабочейстанции Ceres. Язык и операционная система названы именем одного из спутников планеты Уран Оберона, открытого английским астрономом Уильямом Гершелем ровно за двести лет доописываемых событий."Сделай так просто, как возможно, но не проще того" - это высказывание А.Эйнштейна Виртвыбрал эпиграфом к описанию языка. Удивительно простой и даже аскетичный Оберон является,вероятно, минимальным универсальным языком высокого уровня.
Он проще Паскаля и Модулы-2и в то же время обогащает их рядом новых возможностей. Важно то, что автором языкаруководили не сиюминутные коммерческие и конъюнктурные соображения, а глубокий анализреальных программистских потребностей и стремление удовлетворить их простым, понятным,эффективным и безопасным образом, не вводя по возможности новых понятий.Являясь объектно-ориентированным языком, Оберон даже не содержит слова object. Оберонпредставляется идеальным языком для изучения программирования. Сочетание простоты,строгости и неизбыточности предоставляет начинающему программисту великолепнуювозможность, не заблудившись в дебрях, выработать хороший стиль, освоив при этом иструктурное и объектно-ориентированное и модульно-компонентное программирование.В 1992 году сотрудничество Н.Вирта с Ханспетером Мёссенбёком привело к добавлению в языкряда новых средств.
Новая версия получила название Оберон-2. Описание именно этого языка посостоянию на 1 октября 1996 года (последние изменения внесены авторами в июле 1996 года) идается в настоящем переводе. Оберон-2 представляет собой почти правильное расширениеОберона и является фактическим стандартом языка, который поддерживается большинствомсовременных Оберон-систем. В Оберон-2 добавлены:связанные с типом процедуры;экспорт только для чтения;открытые массивы в качестве базового типа для указателей;оператор with с вариантами;оператор for.Отдельного внимания заслуживает само описание, с которым вам предстоит познакомиться.
Вирти его соавтор достигли совершенства не только в искусстве разработки, но, несомненно, и в делеописания языков программирования. Поражают изумительная точность и краткость этого2документа. Почти каждая его фраза превращается при написании компилятора в конкретныестроки программного кода.Возникшие при переводе описания Оберона-2 на русский язык терминологические вопросырешались исходя из следующих соображений: предпочтительным является буквальный перевод;недопустимо добавление терминов, отсутствующих в оригинале; должны быть учтеныотечественные традиции в терминологии алголоподобных языков; предпочтительно использованиетерминов, привычных широкому кругу программистов, вместо узкоспециальных. Ниже приведенсписок терминов, перевод которых не представляется очевидным.(direct) base typearray compatiblearray typeassignment compatiblebasic typebrowsercase statementcharacterdeclarationdesignatordirect extensionequal typesexit statementexpression compatiblefor statementfunction procedureif statementloop statementmatchingoperatorpointer typepredeclaredprivate fieldproper procedurepublic fieldqualifiedrealrecord typerepeat statementreturn statementsame typescale factorscopestatementstringsymboltype extensiontype guardtype inclusiontype tagtype test(непосредственный) базовый типсовместимый массивтип массивсовместимый по присваиваниюосновной типсмотрительоператор caseсимвол, знакобъявлениеобозначениенепосредственное расширениеравные типыоператор выходасовместимое выражениеоператор forпроцедура-функцияоператор ifоператор loopсовпадениеоперациятип указательстандартныйскрытое полесобственно процедурадоступное полеуточненныйвещественныйтип записьоператор repeatоператор возвратаодинаковый типпорядокобласть действияоператорстрокасловорасширение типаохрана типапоглощение типатегпроверка типа3type-bound procedures связанные с типом процедурыwhile statementоператор whilewith statementоператор withС.
Свердловс3с@uni-vologda.ac.ru2 октября 1996 г. - 12 июня 1998 г.ВологдаОберон-2 - язык программирования общего назначения, продолжающий традицию языков Паскальи Modula-2. Его основные черты - блочная структура, модульность, раздельная компиляция,статическая типизация со строгим контролем соответствия типов (в том числе межмодульным), атакже расширение типов и связанные с типами процедуры.Расширение типов делает Оберон-2 объектно-ориентированным языком. Объект - этопеременная абстрактного типа, содержащая данные (состояние объекта) и процедуры, которыеоперируют этими данными. Абстрактные типы данных определены как расширяемые записи.Оберон-2 перекрывает большинство терминов объектно-ориентированных языков привычнымсловарем языков императивных, обходясь минимумом понятий в рамках тех же концепций.Этот документ не является учебником программирования.
Он преднамеренно краток. Егоназначение - служить справочником для программистов, разработчиков компиляторов и авторовруководств. Если о чем-то не сказано, то обычно сознательно: или потому, что это следует издругих правил языка, или потому, что потребовалось бы определять то, что фиксировать дляобщего случая представляется неразумным.В приложении A определены некоторые термины, которые используются при описании правилсоответствия типов Оберона-2. В тексте эти термины выделены курсивом, чтобы подчеркнуть ихспециальное значение (например, одинаковый тип).Для описания синтаксиса Оберона-2 используются Расширенные Бэкуса-Наура Формы (РБНФ).Варианты разделяются знаком |. Квадратные скобки [ и ] означают необязательность записанноговнутри них выражения, а фигурные скобки { и } означают его повторение (возможно 0 раз).Нетерминальные символы начинаются с заглавной буквы (например, Оператор). Терминальныесимволы или начинаются малой буквой (например, идент), или записываются целиком заглавнымибуквами (например, BEGIN), или заключаются в кавычки (например, ":=").Для представления терминальных символов предусматривается использование набора знаковASCII.
Слова языка - это идентификаторы, числа, строки, операции и разделители. Должнысоблюдаться следующие лексические правила. Пробелы и концы строк не должны встречатьсявнутри слов (исключая комментарии и пробелы в символьных строках). Пробелы и концы строкигнорируются, если они не существенны для отделения двух последовательных слов. Заглавные истрочные буквы считаются различными.1. Идентификаторы - последовательности букв и цифр. Первый символ должен быть буквой.идент = буква {буква | цифра}.Примеры: x Scan Oberon2 GetSymbol firstLetter42.
Числа - целые или вещественные (без знака) константы. Типом целочисленной константысчитается минимальный тип, которому принадлежит ее значение (см. 6.1). Если константазаканчивается буквой H, она является шестнадцатеричной, иначе - десятичной.Вещественное число всегда содержит десятичную точку. Оно может также содержать десятичныйпорядок. Буква E (или D) означает "умножить на десять в степени". Вещественное число относитсяк типу REAL кроме случая, когда у него есть порядок, содержащий букву D. В этом случае оноотносится к типу LONGREAL.числоцелоевещественноеПорядокшестнЦифрацифра=целое | вещественное.=цифра {цифра} | цифра {шестнЦифра} "H".=цифра {цифра} "." {цифра} [Порядок].=("E" | "D") ["+" | "-"] цифра {цифра}.=цифра | "A" | "B" | "C" | "D" | "E" | "F".="0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".Примеры:19910DH12.34.567E80.57712566D-6INTEGERSHORTINTREALREALLONGREAL19911312.34567000000.000000577125663.
Символьные константы обозначаются порядковым номером символа в шестнадцатеричнойзаписи, оканчивающейся буквой X.символ = цифра {шестнЦифра} "X".4. Строки - последовательности символов, заключенные в одиночные (') или двойные (") кавычки.Открывающая кавычка должна быть такой же, что и закрывающая и не должна встречаться внутристроки.
Число символов в строке называется ее длиной. Строка длины 1 может использоватьсявезде, где допустима символьная константа и наоборот.строка = ' " ' {символ} ' " ' | " ' " {символ} " ' ".Примеры: "Oberon-2""Don't worry!""x"5. Операции и разделители - это специальные символы, пары символов или зарезервированныеслова, перечисленные ниже. Зарезервированные слова состоят исключительно из заглавных букв ине могут использоваться как идентификаторы.+*/~&.,;|([:=^=#<><=>=..:)]IMPORTBEGINBYCASECONSTDIVDOELSEELSIFENDEXITFORARRAYINISLOOPMODMODULENILOFORPOINTERPROCEDURERECORDRETURNTHENTOTYPEUNTILVARWHILEWITH5{}IFREPEAT6. Комментарии могут быть вставлены между любыми двумя словами программы.