Оберон-клуб «ВЄДАsoft»
https://zx.oberon2.ru/forum/

OMinc-версия Ofront (Component Pascal to C Translator)
https://zx.oberon2.ru/forum/viewtopic.php?f=112&t=284
Страница 1 из 2

Автор:  Zorko [ 28 апр 2016, 17:24 ]
Заголовок сообщения:  OMinc-версия Ofront (Component Pascal to C Translator)

Получено разрешение на публикацию модифицированной Oberon microsystems версии транслятора Ofront, адаптированной для трансляции Компонентного Паскаля в Си. Под лицензией, разрешающей коммерческое использование транслятора и его дальнейшую доработку.

Как и Ofront для Windows, транслятор выполнен в виде подсистемы для BlackBox Component Builder.

Marc Frei писал(а):
Dear Oleg,

thanks for your nice message.

Please find attached our version of Ofront “as is”.

You may distribute derived versions of this package under the terms of the simplified BlackBox Open Source License (http://choosealicense.com/licenses/bsd/) also attached to this message.

Thanks again and kind regards,
Marc


Вложения:
BB-License.odc [2.27 КБ]
Скачиваний: 400
BB-License.rtf [1.58 КБ]
Скачиваний: 285
Ofront.zip [438.17 КБ]
Скачиваний: 285

Автор:  Zorko [ 11 авг 2016, 21:35 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Чтобы не путать транслятор КП в Си с транслятором Оберона-2 в Си, буду называть его CPfront.

Поскольку внутреннее устройство CPfront очень близко к Ofront, есть желание продолжить его разработку. Я с интересом изучаю этот проект, нашёл и зафиксил багу в реализации ASH. И поскольку транслятор дан нам как есть, то принимаются баг-репорты и пожелания. Разработка будет вестись здесь:

https://github.com/Oleg-N-Cher/CPfront

Автор:  ivan_denisov [ 25 окт 2016, 04:28 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Олег, а возможно ли адаптировать Ofront под BlackBox 1.7 ?
Вопрос по поддержке юникодных идентификаторов возникает... Наверное их придется как-то транслитерацией представлять, но тогда возможны коллизии с уже существующими идентификаторами. Или пуникод использовать тогда.

Автор:  Zorko [ 25 окт 2016, 09:58 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Иван, конечно! Всё можно сделать. Вас больше интересует наверное CPfront, а не оригинальный Ofront Темпла или наш Ofront+?

Как я себе это представляю. Темпл придерживается того мнения, что генерируемый сишный код должен быть легко читаем. Было бы хорошо, если бы юникодные идентификаторы транслитерировались латинскими буквами, а возможные при этом коллизии разрешались путём добавления к иденту доп. цифр. Примерно так реализовано в Ofront'е отображение на Си цикла FOR:

Код: "C"
	INTEGER i, _for__54;
_for__54 = (*f).Count;
i = 1;
while (i <= _for__54) { ...

Или как-то иначе? Как это ещё может выглядеть?

Автор:  ivan_denisov [ 14 фев 2018, 11:02 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Так как планирую испытывать CPfront, то вчера Олег меня добавил в разработчики и я "причесал" хранилище.
https://github.com/Oleg-N-Cher/CPfront
Первая проверка создания простейшей библиотеки для Linux прошла успешно.

Автор:  Comdiv [ 14 фев 2018, 11:45 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Разрешите поинтересоваться, Иван, с какой целью Вы испытываете трансляторы? Просто из любопытства или что-то планируете? Что в таком случае Вам нужно от транслятора?

Автор:  ivan_denisov [ 14 фев 2018, 16:41 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Несколько задач.
1. Ускорение критических мест расчетных приложений
2. Запасная перспектива для выхода на 64-битную платформу

Вот для первой задачи CPfront лучше всего подходит. Так как я могу работать в инфраструктуре ББ во время разработки, а потом только переключаться без изменения кода на библиотеки, полученные с помощью транслятора.

На этом снимке экрана пример, что алгоритм сортировки пузырьком в 1.5 раза быстрее работает с оптимизацией -O3.

Вложение:
cpfront_test.png
cpfront_test.png [ 440.88 КБ | Просмотров: 8550 ]


Настроил уменьшалку изображений.

Автор:  ivan_denisov [ 25 фев 2018, 06:19 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Проверил, с компилятором Intel такую задачку ещё быстрее считает.

Оформил подсистему в хранилище:
https://blackbox.obertone.ru/component/CPfront

В планах теперь проверить как это добро работает со структурами типа список.

Автор:  Дмитрий Дагаев [ 18 май 2018, 12:16 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

ivan_denisov писал(а):
Оформил подсистему в хранилище:
https://blackbox.obertone.ru/component/CPfront

А он вообще работает? А то Log не находит, сишный файл не генерит. Кто смотрел, там какие-нибудь опции запуска хитрые или как?

Автор:  Zorko [ 18 май 2018, 21:12 ]
Заголовок сообщения:  Re: OMinc-версия Ofront (Component Pascal to C Translator)

Опции задаются в CPfront/Rsrc/Strings.odc

Он вполне рабочий. Мы c Иваном транслировали им простые модули и компилировали полученный Си-код с помощью GCC, MinGW и Intel C.

Пересобрать сам BlackBox транслятором в его текущем виде точно не удастся. Но если есть коммерческий интерес, допилим до любой нужной кондиции. Обращайтесь. ;-)

Группа поддержки CPfront в Telegram:


P.S. А что значит не находит Log?

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