С разрешения автора переношу статью к нам на форум, а то там она затерялась в черновиках. Можно расценить как первые шаги «традиционного» программиста в освоении Оберон-технологий.
Вдохновившись
примером nerfur я решил написать статью про язык программирования Компонентный Паскаль.
Компонентный Паскаль — язык программирования c моделью компонентно-ориентированного программирования. Создан на основе языка Оберон-2 компанией
Oberon microsystems, Inc. Является прямым наследником языка Паскаль. Вот полная цепочка наследования:
Паскаль → Модула → Модула-2 → Оберон → Оберон-2 → Компонентный Паскаль
Русскоязычная документация по этому языку есть на сайте
http://oberoncore.ru.
Существуют две реализации этого языка:
BlackBox Component BuilderGardens Point Component PascalМы будем использовать первую.
Текущую версию 1.5 можно скачать с
http://www.oberon.ch/zip/SetupBlackBox15.exeПосле установки надо запустить среду с ярлыка на рабочем столе.
Особенности текстового редактора среды:
Отсутствует подсветка синтаксических конструкция языка (она тут, в принципе, не нужна, все конструкции набираются большими буквами).
Все документы по умолчанию сохраняются в формат .odc (Oberon DoCument), не открываемый текстовым редактором Блокнот
Главное окно среды имеет следующий вид:
Через меню File создать новый документ, назвать его к примеру HelloWorld:
В документ ввести следующий текст:
Код: "OBERON"
MODULE HelloWorld;
IMPORT StdLog;
PROCEDURE Hello*;
BEGIN
StdLog.String("Hello, world! "); StdLog.Ln;
END Hello;
END HelloWorld.
^QHelloWorld.Hello
Вместо ^Q нажать ctrl + q (должен появиться черный кружочек с восклицательным знаком внутри):
Нажать ctrl + k для компиляции.
После чего нажать командер (кружочек с восклицательным знаком), радостно прочитать в Log'е долгожданный «Hello, World!»
Командер вызывает указанную процедуру из указанного модуля.
Синтаксис командера: Имямодуля.Имяпроцедуры.
Теперь разберем нашу программу построчно.
Строка 1: MODULE HelloWorld;
Слово MODULE служит для объявления имени программы.
Синтаксис: MODULE ИмяпапкиИмяпрограммы;
Т.е. в данном случае программа лежит в папке Hello и называется World.
Все команды обязательно завершаются точкой с запятой.
Строка 2: IMPORT StdLog;
Слово IMPORT служит для подключения дополнительных модулей.
Синтаксис: IMPORT ИмяпапкиИмямодуля;
Т.е. в данном случае модуль лежит в папке Std и называется Log.
Строка 3: PROCEDURE Hello*;
Слово PROCEDURE служит для объявления процедуры
Синтаксис: PROCEDURE Имяпроцедуры;
Звездочка указывает на то, что процедура импортирована т.е. доступна для вызова извне программы.
Строка 4: BEGIN;
Начало чего-либо(в этом случае процедуры).
Строка 5: StdLog.String("Hello, world! ");
ВЫзов процедуры String (вывод строки в log) из модуля StdLog.
Обращение к процедуре выглядит так: Имямодуля.Имяпроцедуры.
В языке компонетный паскаль нет различия между стандартными и написанными самостоятельно модулями, т.е. возможно из другой программы предварительно импортировав в неё этот модуль произвести вызов типа: HelloWorld.Hello;
Строка 6: StdLog.Ln;
ВЫзов процедуры Ln (преход на новую строку) из модуля StdLog.
Строка 7: END Hello;
Конец процедуры Hello.
Строка 8: END HelloWorld.
Конец модуля HelloWorld. После объявления конца модуля ставится точка.
Подвал
Определение языка и цепочка наследия взяты с
http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D0%9F%D0%B0%D1%81%D0%BA%D0%B0%D0%BB%D1%8CЗ.Ы Готов выслушать конструктивную критику в комментариях.
.
Я признателен Роману за разрешение опубликовать статью у нас. Приятно осознавать, что остались энтузиасты, осваивающие новые просторы не за рубли, а для души. С надеждой, что это не последняя Ваша попытка разрулить Обероны, желаю успехов в Вашей деятельности.