Почвеннический перевод Оберона. На сегодня не имеет приличного сайта без навязчивой рекламы, кто знает, где найти копию?)
Код: Выделить всё
ЗАДАЧА ЧитатьЦел-(ц+:ЦЕЛ);
ПЕР
знак:ЗНАК;
УКАЗ
ц:=0;
ЧитатьЗнак(знак);
ПОКА ("0" <= знак) И (знак <= "9") ВЫП
ц:=10*ц+(ВЦЕЛ(знак)-ВЦЕЛ("0"));
ЧитатьЗнак(знак)
КОН
КОН ЧитатьЦел;
ЗАДАЧА log2(x:ЦЕЛ):ЦЕЛ; (* x > 0 *)
ПЕР
о:ЦЕЛ;
УКАЗ
о:=0;
ПОКА x > 1 ВЫП
x:=x ДЕЛИТЬ 2;
УВЕЛИЧИТЬ(о)
КОН;
ВОЗВРАТ о
КОН log2;
Сделана в рамках проекта „Информатика-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)
КОНЕЦ ОкноСоздать;
(* ... *)
НАЧАЛО
Настроить
КОНЕЦ модРедактор.
Артур Ефимов и соратники.
https://github.com/oberoncompiler/InterOberon
Насколько я понял, неполная реализация Оберона, зато можно писать на трёх разных языках - русский, английский и латышский