Русские вычислители

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



oberon-07 в KolibriOS

Сообщений 1 страница 8 из 8

1

пока вы тут языками чешете, у людей уже компилятор oberon-07 работает, прогамму под русскую ОС пишут: http://board.kolibrios.org/viewtopic.php?p=63856#p63856

0

2

А чей компилятор?

0

3

компилятор ихний, тот чувак написал

0

4

Теперь будем знать. Компилятор не абы чей, а ИХНИЙ; написал не абы кто, а ЧУВАК. Спасибо за содержательный ответ.

0

5

Беглый поиск по Оберону вот что дал: http://exaprog.com/. Правда, товарищ всё пишет по английски. Когда-то с кем-то из Казани я контактировал по поводу Оберона-07, возможно, это одно и то же лицо.

0

6

https://github.com/prospero78/Oberon07ru - Oberon07ru исходники и экзишники на гитхабе! работает под win 32 Linux и ColibriOS

Разработчик  - Антон Кротов

Что замечательно все исходники компилятора переведены на русский язык! т.е. это первый русский компилятор который сам себя собирает.

-- - заготовка вики статьи про Оберон07рус

0

7

Код выглядит примерно так
МОДУЛЬ Compiler;

ИМПОРТ мДец := DECL,
    мСкан := SCAN,
    мУтиль := UTILS,
    X86, SYSTEM,
    мКонст := modConstante,
    мКо := modConstErr,
    мФк := modFuncCompiler,
    мСтр := modString,
    мСпис := modList,
    мТипы := modType,
    мОш := modError,
    мПроц := modProcess,
    мКонс := modConsole,
    мПров := modAssertion;

ТИПЫ

    тМетка = УКАЗАТЕЛЬ НА ЗАПИСЬ (мСпис.тУзел)
        a, b: ЦЕЛОЕ
    КОНЕЦ;

ПЕРЕМ
    pExpr, pFactor: ПРОЦЕДУРА (ПЕРЕМ e: мДец.тВыражение);
    pOpSeq: ПРОЦЕДУРА;
    Lex: мСтр.тСтрока;
    sttypes: мДец.тТипНабор;

ПРОЦЕДУРА BaseOf(тип0_, тип1_: мТипы.туТип): БУЛЕВО;
    ПЕРЕМ
        усл1, усл2 :БУЛЕВО;
    НАЧАЛО
        усл1 := (тип0_.тип_узла = тип1_.тип_узла);
        усл2 := (тип0_.тип_узла ВХОДИТ {мКонст._тЗапись, мКонст._тУказатель});
        ЕСЛИ усл1 & усл2 ТОГДА
            ЕСЛИ тип0_.тип_узла = мКонст._тУказатель ТОГДА
                тип0_ := тип0_.предок;
                тип1_ := тип1_.предок
            КОНЕЦ;
            ПОКА (тип1_ # ПУСТО) & (тип1_ # тип0_) ДЕЛАТЬ
                тип1_ := тип1_.предок
            КОНЕЦ
        КОНЕЦ
        ВЕРНУТЬ тип0_ = тип1_
    КОНЕЦ BaseOf;

ПРОЦЕДУРА Designator(ПЕРЕМ выраж_: мДец.тВыражение);
    ПЕРЕМ
        имя_узел: мДец.туИмя;
        узел: мСкан.туУзел;
        выраж1: мДец.тВыражение;
        строка_ном, позиция, i, n, bases, glob, loc, idx: ЦЕЛОЕ;
        imp, break, guard: БУЛЕВО;
        f: мДец.туПоле;
        T, тип_предка: мТипы.туТип;
        s: мДец.туСтрКонст;

0

8

Глагол намного качественнее переведён. А в этом Обероне русского маловато, тупо иностранщину русскими буквами записали. Тогда уж лучше писать на чистом Обероне, чтобы не коверкать русский язык.

0



форум на 24bb Создать форум бесплатно