OberonCore https://forum.oberoncore.ru/ |
|
Восток - Транслятор Oberon-07 https://forum.oberoncore.ru/viewtopic.php?f=115&t=6217 |
Страница 1 из 3 |
Автор: | Дмитрий Дагаев [ Воскресенье, 21 Январь, 2018 12:37 ] |
Заголовок сообщения: | Восток - Транслятор Oberon-07 |
Проект "Восток", автор Comdiv. Цитата: Транслятор Oberon-07. Цель - создание транслятора из ряда диалектов Oberon в читаемый, устойчивый к ошибкам код для ряда промышленных языков программирования, таких как: C, C++, Javascript и других, а также в машинный код, не исключая посредников вроде LLVM. Написан на собственном входном языке. Генерирует совместимый с gcc, clang и tcc код на С. Код транслятора доступен под лицензией LGPL, а библиотеки - под Apache License. https://github.com/ComdivByZero/vostok https://comdivbyzero.blogspot.ru/search/label/%22%D0%92%D0%BE%D1%81%D1%82%D0%BE%D0%BA%22 Ранее на форуме упоминался вскользь, но проект развивается, 392 коммита. |
Автор: | Иван Денисов [ Воскресенье, 21 Январь, 2018 14:19 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
На форуме ZX есть обсуждение Востока. https://zx.oberon2.ru/forum/viewtopic.p ... 2116#p2116 Там есть пример как откомпилировать модуль. Откомпилировал "Привет мир", в целом выглядит достойно. Ни на чем более сложном пока не испытывал. |
Автор: | Comdiv [ Воскресенье, 21 Январь, 2018 19:14 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Могу расшифровать эти слова в описании - "устойчивый к ошибкам". Помимо стандартного для Оберона контроля за целостностью памяти, по возможности диагностируются другие ошибки: арифметическое переполнение целых и дробей, переполнение множеств, использование неинициализированных переменных, частичная проверка FOR и WHILE, правильность вызова встроенных процедур. Часть диагностируется во время трансляции. Переполнение при смене знака целого невозможно, что в ряде случаев упрощает логику и о чём на практике часто забывают. |
Автор: | ilovb [ Воскресенье, 21 Январь, 2018 22:02 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Вопрос (не было времени потыкать): На винде это можно компилить через TDM GCC? |
Автор: | Comdiv [ Воскресенье, 21 Январь, 2018 23:05 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Теоретически - да. На практике не пробовал. Точно знаю, что работает в связке с Tiny C Compiler. |
Автор: | Trurl [ Воскресенье, 21 Январь, 2018 23:13 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
С mingw работает, с clang тоже. |
Автор: | Comdiv [ Воскресенье, 21 Январь, 2018 23:24 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Здорово, что работает. Сейчас установил TDM GCC в WINE - работает, но как и в случае с tcc требуется явно указывать компилятор -cc gcc, так как TDM не создаёт cc.exe |
Автор: | ilovb [ Понедельник, 22 Январь, 2018 11:39 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Comdiv, как думаете, сишный интерфейс IUP сложно будет заюзать? Интересует в первую очередь динамическая линковка. Если это легко сделать, то опишите в двух словах, плиз (на функции с переменным числом параметров не обращайте внимания там - они не обязательные). |
Автор: | Comdiv [ Понедельник, 22 Январь, 2018 14:12 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Привязка к библиотекам Си делается следующим образом: 1. В неком каталоге Decl пишется на Обероне модуль Iup.mod с пустыми процедурами 2. Модуль транслируется в Си в некий каталог Impl с помощью команды "o7c to-c Iup Impl -m Decl" 3. Полученные *.h *.c файлы редактируются для вызова соответствующих функций Си 4. Модуль IupHello, который использует Iup собираем командой "o7c to-bin IupHello IupHello.exe -infr . -m . -i Decl -c Impl -cc 'gcc -liup' " Команды в примере приблизительны. На мой взгляд, для iup.h и iup_config.h за день можно сделать прямолинейную привязку к Оберону. Если поднапрячься, то и остальное. |
Автор: | ilovb [ Понедельник, 22 Январь, 2018 14:19 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Понятно. Спасибо. Ну на обвязку у меня некоторый опыт есть уже: https://github.com/Spirit-of-Oberon/cp- ... od/Lib.cps |
Автор: | ilovb [ Понедельник, 22 Январь, 2018 14:25 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
comdiv, пардон за глупые вопросы (это наверно где-то написано...) Короткий вопрос: Гошный сервер я на винде заведу? Он там через что оберон (в смысле сишный выхлоп) компилит? |
Автор: | Comdiv [ Понедельник, 22 Январь, 2018 14:36 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Нет, я это не описывал. Вчера я подправил сервер для работы в Windows. Под WINE работало, но без timeout на выполняемые задачи, как это есть в GNU/Linux. Сервер использут транслятор Оберона, с указанием компилятора Си - tcc, так как он самый быстрый. Если tcc не установлен, то сервер нужно подправить. Если не забуду, вечером добавлю ему опцию по выбору компилятора Си. |
Автор: | ilovb [ Понедельник, 22 Январь, 2018 14:44 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
OK, понял. Было бы хорошо иметь поддержку tdm-gcc из коробки на винде. Это довольно популярный пакет mingw |
Автор: | Comdiv [ Понедельник, 22 Январь, 2018 16:19 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Учту. Как я понимаю, после установки tdm в командной строке становится доступным gcc. Вообще, я собирался сделать перебор компиляторов, но пока руки не дошли. |
Автор: | ilovb [ Понедельник, 22 Январь, 2018 16:48 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Хотя наверно не стоит заморачиваться на tdm. Я похоже отстал от жизни. Он что-то давно не обновлялся (с 15 года) Лучше таки наверно оригинальный дистрибутив mingw поддерживать (если поддерживать вообще) |
Автор: | Comdiv [ Вторник, 23 Январь, 2018 01:40 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Серверу добавлен параметр -сс для выбора компилятора Си для сбора промежуточного исполнимого файла. По умолчанию - по прежнему, tcc. |
Автор: | Comdiv [ Вторник, 23 Январь, 2018 01:42 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Смотрю - iup даже нет в репозитории Ubuntu. Чем он так приглянулся? |
Автор: | Trurl [ Вторник, 23 Январь, 2018 10:11 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
А разве Vostok там есть? |
Автор: | ilovb [ Вторник, 23 Январь, 2018 10:20 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
Comdiv: Не знаю что там с репозиторием (автору скорее всего просто пофиг, т.к. это изначально университетская разработка для своих нужд как я понял). На убунте я его запускал. Работает. А так это просто маленький но мощный гуй без претензий на красивый внешний вид. Достаточно легко программируется. Есть родной Lua API. Там в поставке есть архив с примерами на Lua и C. Можно потыкать/поправить/посмотреть Бинарники качать тут: https://sourceforge.net/projects/iup/fi ... ecutables/ Примеры тут: https://sourceforge.net/projects/iup/fi ... 20Sources/ В бинарниках лежит простенькая среда для запуска примеров |
Автор: | Trurl [ Вторник, 23 Январь, 2018 10:52 ] |
Заголовок сообщения: | Re: Восток - Транслятор Oberon-07 |
ilovb писал(а): это изначально университетская разработка для своих нужд как я понял. Не совсем для своих. Библитека делалась для Petrobras. Точнее, для Petrobras делались какие-то программы, а для них была нужна графическая библиотека. |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |