OberonCore
https://forum.oberoncore.ru/

Проект MultiOberon
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423
Страница 1 из 4

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 09:03 ]
Заголовок сообщения:  Проект MultiOberon

МультиОберон это компилятор языка Оберон с различными сменными бэкендами:
- Генератором нативного кода x86 для системы BlackBox;
- Транслятором Ofront в язык C;
- Генератором кода LLVM.

МультиОберон это кроссплатформенный компилятор с поддержкой:
- Windows X86;
- Windows X64.

МультиОберон это масштабируемая технология на основе систем ограничений с начальной точкой в виде синтаксиса Компонентного Паскаля. МультиОберон предназначен для работы из среды BlackBox и из командной строки.

Ссылка на гитхабе здесь

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 09:43 ]
Заголовок сообщения:  Re: Проект MultiOberon

Как работать с Omb - бэкендом BlackBox ссылка на форуме
Как работать с Omf - бэкендом OFront ссылка на форуме
Как работать с Oml - бэкендом LLVM ссылка на форуме

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 10:34 ]
Заголовок сообщения:  Multi бэкенды

Структура компилятора - пре/постпроцессорная, на основе OP2. Это значит более сложная структура, чем компилятор Oberon-0,
Вирт писал(а):
которая больше подходит для включения в его состав алгоритмов оптимизации.

И еще цитата
Вирт писал(а):
существенное преимущество такой структуры: разделение компилятора на целенезависимый препроцессор и целезависимый постпроцессор


В МультиОбероне более четко определены интерфейсы с бэкендами и реализованы сменные бэкенды. Естественно, состав сменных бэкендов может наращиваться.

Сменные бкенды существенно диверсифицируют среду разработки:
- нативный BlackBox дает лучшую компактность и скорость компиляции;
- LLVM дает возможность оптимизации кода и кроссплатформенность;
- OFront дает возможность ставить на такие системы, для которых, кроме С-компилятора ничего не создавалось.

Все это вместе дает повышенную живучесть. Как я уже писал, прилетит Черный Лебедь в виде проекта только 64-бит - и что тогда...

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 12:23 ]
Заголовок сообщения:  Multi платформы

Кодогенераторы для данной 5.0 версии LLVM заявляют поддержку следующих целевых платформ (см. файлы LLVM/Mod/For*.odc):
- AArch64;
- AMDGPU;
- ARM;
- BPF;
- Hexagon;
- Lanai;
- MSP430;
- Mips;
- NVPTX;
- PowerPC;
- Sparc;
- SystemZ;
- X86;
- XCore.
Появляется возможность работать с этими платформами. Я пока пробовал только с X86/X86_64.

В данной версии представлены пакеты для работы с OS Windows. Работы для Linux в области моих интересов.

И, наконец, исполняющая система реализована и для 32-bit, и для 64-бит. Например, System/Mfwe/Kernel.odc реализован для 32-бит OFront. А System/Mfwr/Kernel.odc реализован для 64-бит OFront.

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 12:41 ]
Заголовок сообщения:  Re: Проект MultiOberon

Для размещения каталогов файлов, относящихся к разным платформам приняты трехбуквенные обозначения [backend].[os].[mode]:
- где backend: b - BlackBox, f - oFront, l - Llvm;
- где os: w - Windows, u - Unix;
- где mode: e - extended 32-bit, r - real 64-bit.

Таким образом, с исходником платформо-зависимого файла Kernel работаем из:
- Mfwe для 32-битного OFront под Windows;
- Mfwr для 64-битного OFront под Windows;
- Mlwe для 32-битного LLVM под Windows;
- Mlwr для 64-битного LLVM под Windows;
- Mod для версии по умолчанию, если не найдена платформо-зависимая.

Аналогичным образом формируются каталоги для кодовых файлов: Cbwe, Cfwe, Cfwr, Clwe, Clwr.
Аналогичным образом формируются каталоги для символьных файлов: Sbwe, Sfwe, Sfwr, Slwe, Slwr.

Бинарники приложений расположены в:
- Bbwe для OmbSh.exe приложения 32-битной оболочки Omb для BlackBox;
- Bfwe для OmfSh.exe приложения 32-битной оболочки Omf для OFront;
- Bfwr для OmfSh.exe приложения 64-битной оболочки Omf для OFront;
- Blwe для OmlSh.exe приложения 32-битной оболочки Oml для LLVM;
- Blwe для OmlSh.exe приложения 64-битной оболочки Oml для LLVM.

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 12:55 ]
Заголовок сообщения:  Multi языковость

Я обрисовывал свое видение масштабируемой технологии на основе системы ограничений USE на дне Оберона 2018 и уже в виде RESTRICT на OSDAY 2019
Пока еще RESTRICT в стадии реализации.

В любом случае в качестве нулевой начальной точки принимается синтаксис Oberon/ComponetPascal.

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 13:00 ]
Заголовок сообщения:  Multi форматность

И, наконец, работа нужна как из графической среды, так и из командной строки.

Так или иначе приходится использовать скрипты для разных целей. Это может быть и Оберон shell.

Автор:  Иван Денисов [ Суббота, 17 Август, 2019 13:01 ]
Заголовок сообщения:  Re: Проект MultiOberon

Вот это новость! Спасибо, что выложили.

Автор:  maliya [ Суббота, 17 Август, 2019 13:13 ]
Заголовок сообщения:  Re: Проект MultiOberon

so wonderful project! first one llvm backend outcome, interesting!

Автор:  Дмитрий Дагаев [ Суббота, 17 Август, 2019 13:40 ]
Заголовок сообщения:  Re: Проект MultiOberon

Проект MultiOberon на сайте OberonCore.

Автор:  Илья Ермаков [ Суббота, 17 Август, 2019 15:52 ]
Заголовок сообщения:  Re: Проект MultiOberon

Дмитрий Викторович, поздравляю!

Это большая веха для Оберона и сообщества! :)

Автор:  Comdiv [ Суббота, 17 Август, 2019 19:03 ]
Заголовок сообщения:  Re: Проект MultiOberon

Выглядит интересно, особенно с учётом работы над GNU/Linux версией. Когда она выйдет, надеюсь её увидеть в общем репозитории для удобной установки.

Автор:  SovietPony [ Воскресенье, 18 Август, 2019 13:06 ]
Заголовок сообщения:  Re: Проект MultiOberon

Шикарненько. Обязательно утяну LLVM-генератор к себе.
Вижу что повсюду изменён стиль исходников... диффать немножко проблемно.
В CPfront починена поддержка 64 бит, какие есть ещё изменения в генераторах 486 и CPfront?
Как у LLVM с поддержкой мета-информации?

Автор:  GameHunter [ Вторник, 10 Сентябрь, 2019 22:09 ]
Заголовок сообщения:  Re: Проект MultiOberon

Это компилятор оригинального виртовского оберона?

Планируется поддержка комплексных чисел?

Планируется поддержка многопоточности?

Автор:  Дмитрий Дагаев [ Среда, 11 Сентябрь, 2019 09:44 ]
Заголовок сообщения:  Re: Проект MultiOberon

Это профилируемый компилятор с начальной точкой в виде компонентного Паскаля, который можно настроить под 07 или 13 с помощью системы ограничений. Профилированное расширение отработанными решениями входит в концепцию. Планов чего-то включать в ближайшее время нет.

Автор:  Comdiv [ Среда, 11 Сентябрь, 2019 11:56 ]
Заголовок сообщения:  Re: Проект MultiOberon

Дмитрий Дагаев писал(а):
Это профилируемый компилятор с начальной точкой в виде компонентного Паскаля, который можно настроить под 07 или 13 с помощью системы ограничений.
И расширимость записей по умолчанию?

Автор:  Дмитрий Дагаев [ Среда, 11 Сентябрь, 2019 13:00 ]
Заголовок сообщения:  Re: Проект MultiOberon

Пользы от наличия EXTENSIBLE больше, чем от отсутствия.

Автор:  Comdiv [ Среда, 11 Сентябрь, 2019 13:12 ]
Заголовок сообщения:  Re: Проект MultiOberon

То есть, речь не про O7, а про подмножество, похожее на O7?

Автор:  Дмитрий Дагаев [ Среда, 11 Сентябрь, 2019 13:50 ]
Заголовок сообщения:  Re: Проект MultiOberon

Да. Но профили для приведения к виду, семантически подобному О7, я не выставлял.

Автор:  Wlad [ Четверг, 12 Сентябрь, 2019 17:15 ]
Заголовок сообщения:  Re: Проект MultiOberon

Спасибо. Поздравляю. Успехов!

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/