OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 22 Октябрь, 2019 08:59

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Восток - Транслятор Oberon-07
СообщениеДобавлено: Воскресенье, 21 Январь, 2018 12:37 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 381
Откуда: Москва
Проект "Восток", автор 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 коммита.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Воскресенье, 21 Январь, 2018 14:19 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2402
На форуме ZX есть обсуждение Востока.
https://zx.oberon2.ru/forum/viewtopic.p ... 2116#p2116
Там есть пример как откомпилировать модуль.

Откомпилировал "Привет мир", в целом выглядит достойно. Ни на чем более сложном пока не испытывал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Воскресенье, 21 Январь, 2018 19:14 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Могу расшифровать эти слова в описании - "устойчивый к ошибкам".
Помимо стандартного для Оберона контроля за целостностью памяти, по возможности диагностируются другие ошибки: арифметическое переполнение целых и дробей, переполнение множеств, использование неинициализированных переменных, частичная проверка FOR и WHILE, правильность вызова встроенных процедур. Часть диагностируется во время трансляции. Переполнение при смене знака целого невозможно, что в ряде случаев упрощает логику и о чём на практике часто забывают.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Воскресенье, 21 Январь, 2018 22:02 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Вопрос (не было времени потыкать):
На винде это можно компилить через TDM GCC?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Воскресенье, 21 Январь, 2018 23:05 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Теоретически - да. На практике не пробовал. Точно знаю, что работает в связке с Tiny C Compiler.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Воскресенье, 21 Январь, 2018 23:13 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1202
С mingw работает, с clang тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Воскресенье, 21 Январь, 2018 23:24 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Здорово, что работает.

Сейчас установил TDM GCC в WINE - работает, но как и в случае с tcc требуется явно указывать компилятор -cc gcc, так как TDM не создаёт cc.exe


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 11:39 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Comdiv, как думаете, сишный интерфейс IUP сложно будет заюзать?
Интересует в первую очередь динамическая линковка.
Если это легко сделать, то опишите в двух словах, плиз (на функции с переменным числом параметров не обращайте внимания там - они не обязательные).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 14:12 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Привязка к библиотекам Си делается следующим образом:
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 за день можно сделать прямолинейную привязку к Оберону. Если поднапрячься, то и остальное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 14:19 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Понятно. Спасибо.

Ну на обвязку у меня некоторый опыт есть уже: https://github.com/Spirit-of-Oberon/cp- ... od/Lib.cps


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 14:25 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
comdiv, пардон за глупые вопросы (это наверно где-то написано...)
Короткий вопрос: Гошный сервер я на винде заведу? Он там через что оберон (в смысле сишный выхлоп) компилит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 14:36 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Нет, я это не описывал.
Вчера я подправил сервер для работы в Windows. Под WINE работало, но без timeout на выполняемые задачи, как это есть в GNU/Linux.
Сервер использут транслятор Оберона, с указанием компилятора Си - tcc, так как он самый быстрый. Если tcc не установлен, то сервер нужно подправить. Если не забуду, вечером добавлю ему опцию по выбору компилятора Си.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 14:44 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
OK, понял. Было бы хорошо иметь поддержку tdm-gcc из коробки на винде. Это довольно популярный пакет mingw


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 16:19 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Учту. Как я понимаю, после установки tdm в командной строке становится доступным gcc.
Вообще, я собирался сделать перебор компиляторов, но пока руки не дошли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Понедельник, 22 Январь, 2018 16:48 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Хотя наверно не стоит заморачиваться на tdm. Я похоже отстал от жизни. Он что-то давно не обновлялся (с 15 года)
Лучше таки наверно оригинальный дистрибутив mingw поддерживать (если поддерживать вообще)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Вторник, 23 Январь, 2018 01:40 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Серверу добавлен параметр -сс для выбора компилятора Си для сбора промежуточного исполнимого файла. По умолчанию - по прежнему, tcc.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Вторник, 23 Январь, 2018 01:42 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 909
Откуда: Киев
Смотрю - iup даже нет в репозитории Ubuntu. Чем он так приглянулся?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Вторник, 23 Январь, 2018 10:11 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1202
А разве Vostok там есть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Вторник, 23 Январь, 2018 10:20 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Comdiv:
Не знаю что там с репозиторием (автору скорее всего просто пофиг, т.к. это изначально университетская разработка для своих нужд как я понял).
На убунте я его запускал. Работает.

А так это просто маленький но мощный гуй без претензий на красивый внешний вид.
Достаточно легко программируется. Есть родной Lua API.

Там в поставке есть архив с примерами на Lua и C. Можно потыкать/поправить/посмотреть

Бинарники качать тут: https://sourceforge.net/projects/iup/fi ... ecutables/
Примеры тут: https://sourceforge.net/projects/iup/fi ... 20Sources/

В бинарниках лежит простенькая среда для запуска примеров


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Восток - Транслятор Oberon-07
СообщениеДобавлено: Вторник, 23 Январь, 2018 10:52 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1202
ilovb писал(а):
это изначально университетская разработка для своих нужд как я понял.

Не совсем для своих. Библитека делалась для Petrobras. Точнее, для Petrobras делались какие-то программы, а для них была нужна графическая библиотека.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB