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

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

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

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

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

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

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

С учетом дополнительной сложности, вносимой вкомпилятор для их поддержки, и принимая во внимание дополнительные усложнения правилвидимости, которые должны быть внесены в описание языка, отказ от локальных модулейвыглядит вполне логичным решением.Квалификацию «M.x» импортируемого объекта «x» именем экспортируемого его модуля «M» вModula можно обойти за счет использования оператора FROM M IMPORT x.

От такой возможностив Oberon мы также отказались. Опыт работы с системами программирования, оперирующимибольшим количеством модулей, показал, что явная квалификация каждого использованияобъекта «x» — это наиболее предпочтительное решение. Связанное с этим упрощениекомпилятора носит в данном случае второстепенное значение.Двойственная роль головного (main) модуля в Modula приводит к концептуальной неясности. Содной стороны, головной модуль задает модуль в смысле пакета данных и процедур с замкнутойобластью видимости, а, с другой, он определяет единственную процедуру, называемую основнойпрограммой.

Модуль состоит из двух блоков, которые называются описательной частью (definitionМИР ПК – ДИСК. 2003. № 8. СТУДИЯ ПРОГРАММИРОВАНИЯ3/12ИСКУССТВО ПРОГРАММИРОВАНИЯАВГУСТ 2003part) и исполнительной частью (implementation part). В случае головного модуля описательнаячасть отсутствует.В отличие от такого подхода в языке Oberon модуль является самостоятельным и законченнымстроительным блоком и определяет единицу компиляции. Описательная и исполнительная частислиты воедино: имена, которые должны быть видны в клиентских модулях, т.е. экспортируемыеидентификаторы, помечаются специальными знаками: они обычно предшествуют описаниям техобъектов, которые не экспортируются. При компиляции генерируется измененный объектныйфайл (object file) и новый символьный файл (symbol file).

В последнем содержится информацияоб экспортируемых объектах, которая впоследствии используется при компиляции модулейклиентов данного модуля. Генерирование нового символьного файла должно управлятьсяспециальной опцией компилятора, поскольку новая версия такого файла сделаетнедействительной компиляцию всех модулей-клиентов.Понятие основной программы не вошло в язык Oberon. Ее место занял набор модулей, связанныхдруг с другом через механизм экспорта-импорта и содержащих процедуры без параметров. Этипроцедуры рассматриваются как независимо активируемые и они называются «командами».Активация имеет вид «M.P», где «P» обозначает команду, а «M» — содержащий ее модуль.Результат работы команды рассматривается не просто как обычный прием входных данных дляосновной программы и трансформирование их в выходные, а как изменение состояния,выражаемого глобальными данными.ОператорыОператор WITH языка Modula-2 также не вошел в Oberon.

Также как и в случае симпортируемымиидентификаторами,здесьпредпочтительноявноеуказаниеполяидентификатора. В Oberon была введена другая форма оператора WITH; она носит совершенноиную функцию, называется локальным охранником (regional guard) и будет затронута позднее.Отказ от оператора FOR — другой пример разрыва древней традиции. Замысловатый механизмоператора FOR, принятый в языке Algol-60, был значительно упрощен в языке Паскаль (и вModula). Незначительная практическая ценность этого оператора привела к тому, что в Oberon онотсутствует.Низкоуровневые средстваModula обеспечивает доступ к машиннозависимым средствам через низкоуровневые конструкции,такие, как типы данных ADDRESS и WORD, абсолютные адреса переменных и функцииприведения типов. Большинство из них содержится в модуле, который называется SYSTEM.Предполагалось, что эти средства будут использоваться крайне редко, и заметить использованиеих в программе можно будет легко по наличию идентификатора SYSTEM в списке импорта.Однако практика показала, что значительное число программистов импортирует этот модульвесьма неразборчиво.

Особенную опасность здесь составляют функции приведения типов (typetransfer functions).Предпочтительно отказывать в претензии на переносимость тем программам, которыеимпортируют «стандартный», но системнозависимый модуль. По этим причинам функцииприведения типа, которые обозначались идентификатором соответствующего типа, в Oberon невошли, а модуль SYSTEM был ограничен предоставлением нескольких машиннозависимыхфункций, которые обычно компилируются в прямые вставки (inline code). Типы ADDRESS и WORDбыли заменены типом BYTE, для которого правила совместимости несколько ослаблены. Каждаяреализация языка может предоставлять в модуле SYSTEM и свои дополнительные средства.Использование модуля SYSTEM делает программу явно зависящей от реализации и следовательнонепереносимой.МИР ПК – ДИСК.

2003. № 8. СТУДИЯ ПРОГРАММИРОВАНИЯ4/12ИСКУССТВО ПРОГРАММИРОВАНИЯАВГУСТ 2003ПараллельностьСистема Oberon не требует никаких языковых средств для описания параллельных процессов.Следовательно соответствующим зачаточным средствам языка Modula, в частности, сопрограммам(coroutine), в Oberon места не нашлось.

Это является всего лишь отражением наших реальныхпотребностей в данном конкретном проекте, а отнюдь не отношением к общей актуальностииспользования параллельности в программировании.Средства, введенные в OberonНа фоне большого числа не вошедших в язык средств нововведения в количественномвыражении выглядят крайне скромно. Наиболее важными концепциями явились расширениетипов (type extension) и включение типов (type inclusion). Кроме того, открытые массивы могутиметь несколько измерений (индексов), тогда как в Modula могло быть только одно.Расширение типовНаиболее важным добавлением является механизм расширенных типов записи. Он позволяетконструировать новые типы на основе уже существующих и задает определенную степеньсовместимости между новыми и старыми типами. Предположим, что у нас имеется типT = RECORD x,y: INTEGER ENDВ дополнение к существующим полям могут быть заданы новые:T0 = RECORD (T) z: REAL ENDT1 = RECORD (T) w: LONGREAL ENDЗдесь определяются типы с полями x,y,z и x,y,w соответственно.

Мы говорим, что тип T’T’ = RECORD (T) <описание_полей> ENDявляется (прямым) расширением типа T, и наоборот, T называется (прямым) базовым (base)типом для T’. Расширенные типы, в свою очередь, могут быть сами расширены. Из этого вытекаетследующее определение.Тип T’ является расширением типа T, если T’ = T или если T является прямым расширениемрасширения типа T. И наоборот, T является базовым типом для T’, если T = T’ или если Tявляется прямым базовым типом базового типа для типа T’.

Это отношение мы обозначаем T’—>T.Правило совместимости по присваиванию устанавливает, что значения расширенного типа могутприсваиваться переменным его базового типа. Например, запись типа T0 может быть присвоенапеременной типа T. Это присваивание затрагивает только поля «x» и «y» и по сути осуществляетпроекцию значения на пространство, определяемое базовым типом.Важно разрешить модулям, которые импортируют базовый тип, иметь возможность самимопределять расширенные типы.

На практике это вполне нормальная ситуация.Концепция расширенного типа данных с особой силой проявляется в случае работы суказателями. Соответственно мы говорим, что ссылочный тип P’, указывающий на T’, расширяетссылочный тип P, если P указывает на тип T, который является базовым по отношению к T’.Правило присваивания справедливо и для этой ситуации. Теперь стало возможным формироватьтакие структуры данных, узлы которых имеют различающиеся типы, иными словами,МИР ПК – ДИСК. 2003. № 8.

СТУДИЯ ПРОГРАММИРОВАНИЯ5/12ИСКУССТВО ПРОГРАММИРОВАНИЯАВГУСТ 2003неоднородные структуры данных. Неоднородность автоматически появляется за счет того, чтоузлы соединены через указатели с общим базовым типом.Как правило, ссылочные поля размещаются в структуре элемента базового типа T, а процедуры,обеспечивающие работу с данной структурой, определяются в том же самом (базовом) модуле,где описан тип T. Отдельные расширения (варианты) определяются в клиентных модулях вместес процедурами, оперирующими с узлами расширенного типа. Такая схема находится в полномсоответствии с понятием расширяемости системы (system extensibility): новые модули,определяющие новые расширения, могут быть добавлены в систему, не требуя ни изменениябазовых модулей, ни даже их перекомпиляции.Доступ к отдельному узлу через указатель, связанный с базовым типом, обеспечивает толькопроецируемый взгляд на данные узла, а потому необходимо средство для расширения этоговзгляда.

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