Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Простейшая программа на Обероне




В Обероне нет понятия главной программы или главного модуля. По замыслу авторов языка должна быть обеспечена возможность вызова из среды Оберон-системы любой процедуры без параметров, экспортированной любым модулем. Такая процедура называется командой. Поэтому первый пример законченного модуля, позволяющего напечатать «Hello, World!», таков: MODULE Hello; IMPORT Out; PROCEDURE Run*; BEGINOut.String(" Hello, World! "); Out.Ln (* Перевод строки *)END Run; END Hello. Средства ввода-вывода не являются частью языка Оберон. Модуль Hello импортирует средства модуля Out, который входит в стандартный набор, рекомендованный «Дубовыми требованиями» и имеется в любой Оберон-системе. Знак «*» после названия процедуры Run (это не обязательное название, можно было выбрать и другое) говорит о том, что это имя экспортируется модулем Hello, то есть доступно из тех модулей, которые импортируют Hello, и из среды Оберон-системы. После компиляции модуля Hello и выполнения в Оберон-среде команды Hello.Run модуль Hello загружается, и процедура Run выполняется.Обратите внимание, что при вызове процедур string и Ln, импортированных из Out, используются их уточненные имена вида ИмяМодуля. ИмяПроцедуры. В Обероне предусмотрен только такой вариант импорта. Несколько удлиняя запись, он обеспечивает полную надежность, исключая любые коллизии имен.Многие системы программирования на Обероне не поддерживают или не полностью поддерживают концепцию команд. Это связано, в частности, с тем, что в таких системах предусматривается создание программ, способных работать вне Оберон-системы в среде Windows, Unix, JVM или на веб-странице. В таком случае программа «Hello, World!» будет оформлена по-другому. Рассмотрим, как это будет выглядеть в отечественных системах программирования на Обероне.Компилятор XDS, транслирующий как с Оберона, так и с Модулы-2, предусматривает наличие главного модуля, который помечается директивой < *+ main * >, форма которой соответствует стандарту ISO на язык Модула-2. < *+ MAIN *> (* Простейшая программа для XDS Oberon-2 *)MODULE Hello; IMPORT Out; BEGINOut.String(" Hello, World! "); Out.LnEND Hello. Модуль Hello в этой редакции содержит инициализирующую часть (начинается словом begin), которая выполняется при загрузке модулей в память. В системе XDS выполнение программы начинается с инициализирующей части модуля, помеченного как главный.Формат простейшей программы для компилятора JOB определяется тем, что нужно обеспечить совместимость с виртуальной машиной языка Ява (JVM), в среде которой выполняются программы, полученные с помощью JOB. По правилам языка Ява (и JVM) выполнение программы начинается с метода (процедуры) с именем main. (* Простейшая программа для компилятора JOB *)MODULE Hello; IMPORT javalang, Out; PROCEDURE main*(VAR args: ARRAY OF javalang.PString); BEGINOut.StringCHello, World! "); Out.Ln; END main; END Hello. Процедура main должна иметь параметр — массив из Ява-строк. Это требование тоже соблюдается в приведенном примере. Модуль javalang (один из модулей совместимости компилятора JOB со средой JVM) импортируется для того, чтобы указать при описании массива-параметра нужный тип для его элементов.После компиляции этого примера с помощью JOB его можно выполнить, вызвав виртуальную машину: C: \Lang& Trans\OBERON> java Hello Hello, World!

Данная страница нарушает авторские права?





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.