Modula2 vs Oberon, страница 4

PDF-файл Modula2 vs Oberon, страница 4 Языки программирования (53891): Другое - 7 семестрModula2 vs Oberon: Языки программирования - PDF, страница 4 (53891) - СтудИзба2019-09-19СтудИзба

Описание файла

PDF-файл из архива "Modula2 vs Oberon", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 4 страницы из PDF

И вновь этот процесс был вызван стремлением к упрощению иобобщению. Различия между исходной версией [8] и пересмотренной версией [9] следующие.1.Описательная и исполнительная части модуля слиты воедино. Это вызвано желаниемиметь спецификацию модуля с точки зрения программиста и с точки зрения компиляторав виде одного документа. Спецификация интерфейса для клиентов модуля (описательнаячасть) может быть получена автоматически.

Объекты, ранее описываемые в описательнойчасти (и еще раз встречающиеся в исполнительной части), помечаются специальнымзначком экспорта. Таким образом, отпадает необходимость компилятору проводитьструктурное сопоставление двух текстов.2.Синтаксис списка типов параметров в описании процедурного типа выглядит точно также,как и для заголовков обычных процедур. Из этого следует, что вводятся фиктивныеидентификаторы; они могут быть полезны в качестве комментариев.3.Ослаблены правила обязательного следования описания типов только после описанияконстант и описания переменных только после описания типов.4.Апостроф более не является разграничителем строк.5.Ослабленное правило совместимости параметров для формального типа ARRAY OF BYTEприменимо только к параметрам, передаваемым по ссылке.ИтогиЯзык Oberon возник из языка Modula-2 и вобрал в себя опыт многих лет программирования наModula. Было удалено значительное количество языковых средств.

Они в большей степениусложняли язык и компилятор, нежели представляли истинную силу и гибкость выразительныхвозможностей. Было добавлено небольшое число новых механизмов, наиболее важным изкоторых является концепция расширения типа.Эволюция нового языка, который стал гораздо меньше и при этом еще мощнее, чем егопредшественник, резко контрастирует с общепринятой практикой и в то же время имеетнеоценимые преимущества. Помимо более простых компиляторов, результатом этого сталолаконичное описание [9] — необходимое условие для любого инструмента, который долженслужить для построения изощренных и надежных систем.МИР ПК – ДИСК.

2003. № 8. СТУДИЯ ПРОГРАММИРОВАНИЯ9/12ИСКУССТВО ПРОГРАММИРОВАНИЯАВГУСТ 2003БлагодарностиПросто невозможно поблагодарить всех тех, кто так или иначе подпитывал своими идеями то, чтотеперь называется Oberon. Большинство идей пришло от использования и изучениясуществующих языков, таких как Modula-2, Ada, Smalltalk и Cedar, которые часто предостерегалинас от того, как не надо делать. Особых слов благодарности достоин первый пользовательOberon — Юрг Гуткнехт (J. Gutknecht). Автор признателен за его настойчивость в деле изъятияотмерших средств и подведения основательного математического фундамента под оставшиесямеханизмы.

И, наконец, хочется выразить свою признательность моим анонимным рецензентам,кто очень внимательно прочитал рукопись и внес весьма ценные замечания для улучшения этойстатьи.ПРИЛОЖЕНИЕСинтаксис языка Oberonident = letter {letter | digit}.number = integer | real.integer = digit {digit} | digit {hexDigit} «H».real = digit {digit} «.» {digit} [ScaleFactor].ScaleFactor = («E» | «D») [«+» | «-»] digit {digit}.hexDigit = digit | «A» | «B» | «C» | «D» | «E» | «F».digit = «0» | «1» | «2» | «3» | «4» | «5» | «6» | «7» | «8» | «9».CharConstant = “«“ character “«“ | digit {hexDigit} «X».string = “«“ {character} “«“ .identdef = ident [«*»].qualident = [ident «.»] ident.ConstantDeclaration = identdef «=» ConstExpression.ConstExpression = expression.TypeDeclaration = identdef «=» type.type = qualident | ArrayType | RecordType | PointerType | ProcedureType.ArrayType = ARRAY length {«,» length} OF type.length = ConstExpression.RecordType = RECORD [«(« BaseType «)»] FieldListSequence END.BaseType = qualident.FieldListSequence = FieldList {«;» FieldList}.FieldList = [IdentList «:» type].IdentList = identdef {«,» identdef}.PointerType = POINTER TO type.ProcedureType = PROCEDURE [FormalParameters].VariableDeclaration = IdentList «:» type.designator = qualident {«.» ident | «[« ExpList «]» | «(« qualident «)» | «^» }.МИР ПК – ДИСК.

2003. № 8. СТУДИЯ ПРОГРАММИРОВАНИЯ10/12ИСКУССТВО ПРОГРАММИРОВАНИЯАВГУСТ 2003ExpList = expression {«,» expression}.expression = SimpleExpression [relation SimpleExpression].relation = «=» | «#» | «<« | «<=» | «>» | «>=» | IN | IS.SimpleExpression = [«+»|«-»] term {AddOperator term}.AddOperator = «+» | «-» | OR .term = factor {MulOperator factor}.MulOperator = «*» | «/» | DIV | MOD | «&» .factor = number | CharConstant | string | NIL | set |designator [ActualParameters] | «(« expression «)» | «~» factor.set = «{« [element {«,» element}] «}».element = expression [«..» expression].ActualParameters = «(« [ExpList] «)».statement = [assignment | ProcedureCall |IfStatement | CaseStatement | WhileStatement | RepeatStatement |LoopStatement | WithStatement | EXIT | RETURN [expression] ].assignment = designator «:=» expression.ProcedureCall = designator [ActualParameters].StatementSequence = statement {«;» statement}.IfStatement = IF expression THEN StatementSequence{ELSIF expression THEN StatementSequence}[ELSE StatementSequence] END.CaseStatement = CASE expression OF case {«|» case}[ELSE StatementSequence] END.case = [CaseLabelList «:» StatementSequence].CaseLabelList = CaseLabels {«,» CaseLabels}.CaseLabels = ConstExpression [«..» ConstExpression].WhileStatement = WHILE expression DO StatementSequence END.RepeatStatement = REPEAT StatementSequence UNTIL expression.LoopStatement = LOOP StatementSequence END.WithStatement = WITH qualident «:» qualidentDO StatementSequence END.ProcedureDeclaration = ProcedureHeading «;» ProcedureBody ident.ProcedureHeading = PROCEDURE [«*»] identdef [FormalParameters].ProcedureBody = DeclarationSequence [BEGIN StatementSequence] END.ForwardDeclaration = PROCEDURE «^» ident [«*»] [FormalParameters].DeclarationSequence = {CONST {ConstantDeclaration «;»} |TYPE {TypeDeclaration «;»} | VAR {VariableDeclaration «;»}}{ProcedureDeclaration «;» | ForwardDeclaration «;»}.FormalParameters = «(« [FPSection {«;» FPSection}] «)» [«:» qualident].FPSection = [VAR] ident {«,» ident} «:» FormalType.FormalType = {ARRAY OF} (qualident | ProcedureType).МИР ПК – ДИСК.

2003. № 8. СТУДИЯ ПРОГРАММИРОВАНИЯ11/12ИСКУССТВО ПРОГРАММИРОВАНИЯАВГУСТ 2003ImportList = IMPORT import {«,» import} «;» .import = ident [«:=» ident].module = MODULE ident «;» [ImportList] DeclarationSequence[BEGIN StatementSequence] END ident «.» .Литература[1]Wirth N. (1982) Programming in Modula-2 // Springer-Verlag.[2]Gutknecht J., Wirth N. (1989) The Oberon System // Software — Practice andExperience, Vol.19, No.9, p.857-893.[3]Wirth N. (1988) Type Extensions // ACM Transactions on Programming Languagesand Systems, Vol.10, No.2, p.204-214.[4]Birtwistle G. et al.

(1973) Simula Begin // Auerbach.[5]Goldberg A., Robson D. (1983) Smalltalk-80: The Language and its Implementation //Addison-Wesley.[6]Tesler L. (1985) Object Pascal Report // Structured Language World, Vol.9, No.3, p.10-14.[7]Stroustrup B. (1986) The Programming Language C++ // Addison-Wesley.[8]Wirth N. (1988) The programming language Oberon // Software — Practice andExperience, Vol.18, No.7, p.671-690.[9]Wirth N. (1990) The programming language Oberon (Revised Report) // ETH.МИР ПК – ДИСК.

2003. № 8. СТУДИЯ ПРОГРАММИРОВАНИЯ12/12.

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