Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[1]

Другими нововведениями стали экспорт только для чтения (после имени объекта при таком его экспорте ставится не "*", а "-"); открытые массивы в качестве базового типа указателей; расширенный оператор with.

Главное же новшество - связанные процедуры (виртуальные методы - в терминах Турбо Паскаля). Объясняя их отсутствие в Обероне, Вирт находил убедительные аргументы, отмечая, что определение действий, применимых к объектам некоторого типа непременно в составе определения самого этого типа, представляет собой догму, происходящую из концепции абстрактного типа данных и создающую некоторые препятствия при разработке больших систем. Решение, принятое в Обероне-2, несет черты компромисса -описания процедур-методов помещаются не в объявление самого типа, а отдельно. Эти процедуры лишь " связаны" с типом.

Оберон-2 является сейчас фактическим стандартом языка и поддерживается большинством Оберон-систем, которых существует довольно много. Это, во-первых, семейство систем ETH - Федерального технического университета (Цюрих, Швейцария), организация, где работает Н. Вирт. Это Oberon/F (Oberon Microsystems Inc., Цюрих) - коммерческая Оберон-система, снабженная более традиционным, чем системы ETH, пользовательским интерфейсом (в мае 1996-го выпущена версия 1.2). Это реализация университета Кеплера в Линце. Наконец, можно назвать компиляторы Модулы-2 и Оберона-2 (система XDS), созданные в Новосибирске учениками Андрея Петровича Ершова.

И все же "улучшать" создание классика - дело неблагодарное. Все, что предлагается Виртом, продумано им очень детально и глубоко. Поэтому некоторые новации Оберо-на-2, по-моему, не бесспорны. Заметно усложняется компилятор в части, относящейся к трансляции связанных процедур. Интерфейс модуля теперь перестает быть просто перечнем цитат, взятых из текста реализации модуля, а работа смотрителя затрудняется. Экспорт только для чтения мог порождать бессмысленные варианты, когда "только для чтения" экспортируется константа, тип или процедура. Лишь совсем недавно эта неточность была замечена и исправлена.

Оберон и Солнце. Кофе и Сок

В последнее время с интересом наблюдаю, как одно за другим в печати появляются признания поклонников Си++, их которых вдруг выясняется, что их любимый язык, оказывается, доставляет им массу проблем: сложен, механизмы контроля несовершенны, провоцирует на всякие опасные трюки (адресная арифметика и т. п.). Отчего такая откровенность? А дело в том, что компания Sun совершила трезвый поступок, предложив язык Java, который является модернизацией Си++, отличаясь от своего предшественника простотой и отказом от потенциально опасных возможностей. Все рукоплещут и каются. Но не кажется ли несколько неприличным такое запоздалое коллективное прозрение?

Направление модернизации Си++, приведшее к появлению языка Java, находится в русле тех принципов, которые Вирт исповедует на протяжении многих лет и блестяще воплотил в Обероне: простота, неизбыточность, безопасность. Я уже не говорю о таком решении, как сборщик мусора, который предусмотрен в Java и который Вирт использовал еще в языке Алгол W, а после того как избавился от записей с вариантами - и в Обероне. Так не отраженным ли светом маленького спутника по имени Оберон сияет огромная звезда Sun?

Язык Java (кофе - на американском жаргоне) является частью технологии распространения приложений. Но и здесь не обошлось без Оберона. В июле 1966 года в телеконференции comp.lang.oberon опубликовано сообщение о новой технологии Juice (сок), предназначенной для распространения исполнимого кода через World Wide Web и основанной на использовании Оберона. Авторы технологии Михаэль Франц и Томас Кистлер отмечают три ключевых компонента Juice:


•архитектурно-независимый формат распространения программ;

•компилятор, транслирующий с Оберона в переносимый формат Juice;

•дополнение (plug-in), позволяющее Netscape browser (смотрителю) исполнятьJuice-приложения.

Для пользователя Интернета преимущество технологии Juice проявляются в том, что, во-первых, Juice-версия переданной по Сети программы будет, скорее всего, выполняться много быстрее аналогичного Java-апплета, поскольку код Java, как правило, интерпретируется, а Juice всегда компилирует приложение в родной код целевой машины перед его выполнением. Во-вторых, переносимый формат Juice компактнее байт-кода Java, и пользователи с медленным подключением к Сети сберегут время, загружая приложения Juice. Наконец, использование Juice позволяет избежать многих проблем безопасности, поскольку он, в отличие от Java, не требует потокового анализа, чтобы убедиться, что загруженный код не выполнит запрещенных действий.

Мне нравятся Delphi и Оберон

Вам может показаться, что я люто ненавижу Object Pascal, Borland и Delphi. Ничего подобного. Вот уже около 8 лет я использую Турбо-Borland-Object Паскаль. Причем теперь наряду с Delphi имею счастье благодаря некоторой технической отсталости нашего института и невероятной надежности японских компьютеров Yamaha (ни одной сколь-нибудь серьезной поломки у 20 компьютеров за 8 лет!) видеть в работе Турбо-Паскаль 2.0. Поверьте, это классная программа. Что же касается Borland, то я не знаю другой компании, чьи программы были бы так же надежны, удобны, изящны, быстры и неприхотливы.

Я просто хочу, чтобы мы отдавали себе отчет в том, что направление, которое приняла эволюция языка Паскаль в системах Borland, далека от идеала. Напротив, качество и проработка среды программирования систем Borland выше всяких похвал. В этом отношении Оберон-системам очень трудно (если вообще возможно) конкурировать с Borland. Системы, разработанные в ETH, имеют весьма своеобразный, хотя и концептуально очень простой пользовательский интерфейс. А среда разработки Oberon/F, хотя и оснащена интерфейсом традиционным, но, по крайней мере, на первый взгляд выглядит заметно беднее Delphi.

Вообще и разработчики, и н6екоторые аналитики придают очень большое значение самой идеологии построения Оберон-систем, употребляя всякие магические слова вроде "объектная прикладная среда", "компонентное программное обеспечение", "документо-ориентированные системы" и т. п. Мне кажется, что основная ценность - в самом языке Оберон. Пользовательская парадигма видоизменяется довольно быстро, языки же более консервативны. Когда система навязывает человеку слишком многое в способе его существования в компьютерной среде, это может не устраивать творчески настроенного индивидуума. Утверждать же, что рядовые пользователи-непрограммисты когда-либо будут обитать в Оберон-среде, было бы опрометчиво.

Будущее Оберона предвидеть не просто. Мне, например, представляется, что Обе-рон - идеальный язык для изучения программирования. Сочетание простоты, строгости и неизбыточности предоставляет начинающему программисту великолепную возможность, не заблудившись в дебрях, выработать хороший стиль, освоив при этом и структурное, и объектно-ориентированное, и модульно-компонентное программирование. Но от слишком многих обстоятельств, часто не имеющих прямого отношения к достоинствам самого языка, зависит его судьба.


Те, кто заинтересуется Обероном, могут узнать о нем подробнее. Вот перечень известных мне публикаций на русском языке.

1.Т.Джонсон, Р.Браун, Л.Содерблом. Спутники Урана. "В мире науки", №6, 1987

2.В.Ш.Кауфман. Языки программирования. Концепции и принципы. - М., "Радио и связь", 1993

3.А.Д.Супрун. Oberon - новый продукт создателей Pascal и Modula-2. "Компьюте-ры+программы", №5, 1994

4.Р.Богатырев. Java и Juice: дуэль технологий?! "Компьютерра", №34, 1996

А это работы Вирта и его соратников :

1.N.Wirth. The Programming Language Oberon. Software - Practice and Experience, 18, 7 (July 1988), pp. 671-690

2.N.Wirth and Gutknecht. The Oberon System. Software - Practice and Experience, 19, 9 (Sept 1989)

3.M. Reiser. The Oberon System. Addison-Wesley, 1991

4.M. Reiser and N.Wirth. Programming in Oberon. Steps beyond Pascal and Modula. Addison-

Wesley, 1992

5.N.Wirth and Gutknecht. Project Oberon. The Design of an Operating System and Compiler.

Addison-Wesley, 1992

6.H.Moessenboek. Object oriented Programming (in Oberon-2). Springer. 1993

7.N.Wirth. Theory and Techniques of Compiler Construction. Addison-Wesley, 1996

Больше всего сведений можно найти, разумеется, в Интернете.

Чтобы получить описание языка Оберон-2 из первоисточника, вам достаточно отправить по адресу ftpmail@relcom.ru письмо такого содержания:

open ftp.inf.ethz.ch

cd/pub/Oberon/Docu

get Oberon2 Report.Text

На том же ftp-сервере находятся дистрибутивы нескольких Оберон-систем:

•В каталоге /pub/Oberon/Windows содержится ETH-Oberon v4 для Windows. Файл oberon.zip имеет размер 955185 байт. Это 32-битная система, которая будет работать с Windows-95 и Windows NT, а для запуска под управлением Windows 3.1 и 3.11 требует установки расширения Win32s.

•Oberon/F для Windows 1.2 (май 1966) находится в каталоге /pub/Oberon/OberonF/WinOberonF12. Минимальный комплект состоит из файлов disk1.exe (1268843 байт) и disk2.exe (1292641 байт) и позволяет установить систему

в Win-95/NT

•Из каталога /pub/Oberon/Sources вы можете получить файл ProjectOberon.v4.tar.gz (178933 байт), содержащий исходный текст (на Обероне, ес-тетственно) Оберон-системы (включая компилятор, написанный лично Н.Виртом) для компьютера Ceres. Этот файл представляет собой созданный утилитами Unix сжатый архив, для распаковки которого вам потребуются соответствующие программы.



[стр.Начало] [стр.1] [стр.2]