Варианты русскоязычного Оберона

Языки программирования, процессоры, операционные системы, в которых русский язык занимает достойную роль в процессе разработки.
Ответить
БудДен
Сообщения: 2977
Зарегистрирован: 07.10.18 14:01

Варианты русскоязычного Оберона

Сообщение БудДен » 25.04.22 13:46

Язык программирования Глагол

Почвеннический перевод Оберона. На сегодня не имеет приличного сайта без навязчивой рекламы, кто знает, где найти копию?)

Код: Выделить всё

ЗАДАЧА ЧитатьЦел-(ц+:ЦЕЛ);
ПЕР
  знак:ЗНАК;
УКАЗ
  ц:=0;
  ЧитатьЗнак(знак);
  ПОКА ("0" <= знак) И (знак <= "9") ВЫП
    ц:=10*ц+(ВЦЕЛ(знак)-ВЦЕЛ("0"));
    ЧитатьЗнак(знак)
  КОН
КОН ЧитатьЦел;
 
ЗАДАЧА log2(x:ЦЕЛ):ЦЕЛ; (* x > 0 *)
ПЕР
  о:ЦЕЛ;
УКАЗ
  о:=0;
  ПОКА x > 1 ВЫП
    x:=x ДЕЛИТЬ 2;
    УВЕЛИЧИТЬ(о)
  КОН;
  ВОЗВРАТ о
КОН log2;
Школьная сборка BlackBox

Сделана в рамках проекта „Информатика-XXI“ - проект покойного Ф.В.Ткачёва и соратников. Сборка BlackBoxComponentBuilder, в которой использовались для обучения школьников русские ключевые слова. См. https://вече.программирование-по-русски ... p?f=6&t=23

Язык программирования, используемый в ЯОС (Яр-22)

См. https://tvoygit.ru/budden/ja-o-s/src/br ... ификаторов

Компилятор Оберона07 от prospero78

Вариант от prospero78 (см. также другие темы про него на этом форуме). Пример вот отсюда:

https://github.com/prospero78/Oberon07r ... актор.ob07

Код: Выделить всё

МОДУЛЬ модРедактор;

ИМПОРТ mSys := SYSTEM,
   API := модАПИ;

КОНСТ
   hot_new = 0;
   hot_open = 1;

ТИПЫ
   STRING = МАССИВ 2048 ИЗ СИМВ;
   
ПЕРЕМ
   CreateWindowEx: ПРОЦЕДУРА [winapi] (dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y,
                                       nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam: ЦЕЛОЕ): ЦЕЛОЕ;
   blocksel: БУЛЕВО;
   paramcolor: ЦЕЛОЕ;
   Shift, hotkeys: SET;
   
   тОкно = ЗАПИСЬ
   
      КОНЕЦ;
   
ПРОЦЕДУРА ОкноСоздать(lpClassName, lpWindowName: МАССИВ ИЗ СИМВ;
                      dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam: ЦЕЛОЕ): ЦЕЛОЕ;
   ПЕРЕМ
      n: ЦЕЛОЕ; class, window: ЦЕЛОЕ;
   НАЧАЛО
     ВЕРНУТЬ CreateWindowEx(0, mSys.ADR(class), mSys.ADR(window), dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
   КОНЕЦ ОкноСоздать;
   
(* ... *) 

НАЧАЛО
   Настроить
КОНЕЦ модРедактор.
InterOberon

Артур Ефимов и соратники.

https://github.com/oberoncompiler/InterOberon

Насколько я понял, неполная реализация Оберона, зато можно писать на трёх разных языках - русский, английский и латышский
code1ru.png
code1ru.png (29.72 КБ) 3661 просмотр

Ответить