Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 29 мар 2024, 01:59

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Статья про КП/BlackBox на Хабре
СообщениеДобавлено: 29 апр 2013, 23:44 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
С разрешения автора переношу статью к нам на форум, а то там она затерялась в черновиках. Можно расценить как первые шаги «традиционного» программиста в освоении Оберон-технологий.

Роман писал(а):
Вдохновившись примером nerfur я решил написать статью про язык программирования Компонентный Паскаль.

Компонентный Паскаль — язык программирования c моделью компонентно-ориентированного программирования. Создан на основе языка Оберон-2 компанией Oberon microsystems, Inc. Является прямым наследником языка Паскаль. Вот полная цепочка наследования:

Паскаль → Модула → Модула-2 → Оберон → Оберон-2 → Компонентный Паскаль

Русскоязычная документация по этому языку есть на сайте http://oberoncore.ru.

Существуют две реализации этого языка:

BlackBox Component Builder
Gardens Point Component Pascal

Мы будем использовать первую.
Текущую версию 1.5 можно скачать с http://www.oberon.ch/zip/SetupBlackBox15.exe
После установки надо запустить среду с ярлыка на рабочем столе.

Особенности текстового редактора среды:

    Отсутствует подсветка синтаксических конструкция языка (она тут, в принципе, не нужна, все конструкции набираются большими буквами).

    Все документы по умолчанию сохраняются в формат .odc (Oberon DoCument), не открываемый текстовым редактором Блокнот

Главное окно среды имеет следующий вид:

Через меню File создать новый документ, назвать его к примеру HelloWorld:

В документ ввести следующий текст:

Код: "OBERON"
  1. MODULE HelloWorld;
  2. IMPORT StdLog;
  3.  
  4. PROCEDURE Hello*;
  5. BEGIN
  6. StdLog.String("Hello, world! "); StdLog.Ln;
  7. END Hello;
  8.  
  9. END HelloWorld.
  10.  
  11. ^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
З.Ы Готов выслушать конструктивную критику в комментариях.
Автор: Ищенко Роман.

Я признателен Роману за разрешение опубликовать статью у нас. Приятно осознавать, что остались энтузиасты, осваивающие новые просторы не за рубли, а для души. С надеждой, что это не последняя Ваша попытка разрулить Обероны, желаю успехов в Вашей деятельности.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья про КП/BlackBox на Хабре
СообщениеДобавлено: 30 апр 2013, 00:41 
Не в сети

Сообщения: 53
Откуда: Россия, Самара
Нужны именно такие статьи, как программировать используя оберон. В тех статьях которые лежат в архиве OberonDocu.zip, есть описание языка + сравнение с другими языками. Нужно делать туториалы. В блэкбоксе, как я понял они есть. Хотя если знаешь паскаль, разобраться не сложно.

Язык уменьшился. Ничего нового учить не надо.

Олег, есть ли в блекбоксе строки как в free pascal, s1 + s2. Вы показывали пример перегрузки операторов, в блекбоксе она есть?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья про КП/BlackBox на Хабре
СообщениеДобавлено: 30 апр 2013, 06:56 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Не, перегрузки, как в OberonX, в ББ нет, но строки (они же массивы ARRAY OF CHAR) и конкатенация (склейка вида s1 + s2) — есть конечно, как же без них-то.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club