OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 23:05

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




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Еще один компилятор Oberon-07
СообщениеДобавлено: Суббота, 12 Ноябрь, 2016 19:51 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Свежая версия obc поддерживает Oberon-07.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Суббота, 12 Ноябрь, 2016 21:54 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
В режиме Oberon-07, компилятор не принимает такой код:
Код:
Base* = RECORD
   do: PROCEDURE(VAR b: Base)
END;

Выдавая сообщение об ошибке про неизвестный тип Base, в то время как в обычном режиме у транслятора нет проблем. Это ошибка или такое поведение следует из описания языка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Воскресенье, 13 Ноябрь, 2016 16:30 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Похоже, такое поведение следует из описания даже для Оберона-2. Просто компилятор допускает послабления.

Интересно, компиляторы от ETH пропускают этот пример, а вот XDS Oberon-2 выдаёт
Цитата:
* type identifier "Base" shall not be used in declaring itself


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 11:22 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
А конкуренция между компиляторами Oberon-07 растет :) В какой-то момент количество должно перейти в качество.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 15:05 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Это неизбежно, как крах мирового капитализма.
Пока с промышленно-годным компилем вопросы ещё остаются, но число их можно снизить, если, скажем принять какой-то общий стандарт разбиения. Скажем, "сканер-AST- оптимизатор-построитель" для свободной замены различных частей. Собственно, будет чаще всего меняться оптимизатор и построитель. Причём, для одной архитектуры разница будет только в целевой ОС. Т.е. большая задача сужается до обозримой и частичной. Впрочем, идея не моя. Николай Вальтерович меня тут опередил. В википедии он внезапно стал Уолторовичем)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 28 Декабрь, 2016 13:01 

Зарегистрирован: Воскресенье, 04 Январь, 2009 12:00
Сообщения: 52
посмотрел документацию.
к сожалению это компилятор в байткод (что то типа java).

Цитата:
Description: Oxford Oberon-2 compiler
This compiler translates Oberon-2 into a portable bytecode, and comes
with an interpreter (or on some architecures, a JIT) for the bytecode.


Цитата:
There’s something a little unusual about the Oberon compiler we’ll be us-
ing, and that’s the fact that (like most compilers for Java) it doesn’t actually
translate your program into instructions for the physical computer you are
using. Instead, the designer of the compiler has invented a simple ‘virtual’
computer specially for implementing Oberon, and the file fac contains in-
structions for that computer instead. The gap between the virtual computer
and the actual, physical computer is bridged in one of two ways: either by
means of an interpreter program that uses the physical computer to carry
out a simulation of the virtual computer, or by means of a just-in-time trans-
lator (JIT) that compiles code for the physical machine after the program is
loaded, but before each piece of it starts to run. The biggest advantage of
using a virtual machine is that the compiler can be ported to a new computer
just by making a new interpreter – and since the interpreter is itself written
in a highish-level language (C), that’s usually just a matter of re-compiling it
on the new computer. JIT translators must be designed separately for each
machine architecture, though they may share common parts. At present,
translators exist for the x86 architecture used by PCs and Macs and for the
ARM architecture used by the Raspberry Pi.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Четверг, 29 Декабрь, 2016 04:08 
Аватара пользователя

Зарегистрирован: Пятница, 23 Май, 2008 09:24
Сообщения: 40
Откуда: Ленинград
Плохо, что каждый свой интерпретатор городит. У LLVM был сценарий, когда установщик докомпилирует из внутреннего формата в целевой. У Google был PNaCl на базе LLVM. Не прижилось, но попытки хорошие, уж явно лучше неоправданного новодела.

Сейчас перспективными являются WebAssembly и EBC (EFI ByteCode). Первый ожидается как долгожданный стандарт в браузере, и если это будет в браузере, то было бы здорово иметь общий код в браузере и приложениях. Второй — в драйверах. Там какая-то интересная модификация x86, где каждая инструкция имеет отдельную интерпретацию в x86 и x64, и сложно было сделать компилятор, который бы по одним рельсам гнал код для разных разрядностей и объединял их в один байткод. Только у Intel появился такой компилятор для не совсем обычного C, и коммерческий. Если появляется общедоступный компилятор EBC для вменяемого языка программирования, определённой категории будет некуда деться: либо на ассемблере пиши EBC, либо дорогим компилятором, либо вот ещё бесплатный компилятор чуть менее популярного языка программирования, но явно более популярного, чем ассемблер EBC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Суббота, 07 Октябрь, 2017 22:10 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
А вот еще один: https://github.com/congdm/Patchouli-Compiler


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 10:26 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Очень недурственно. Лицензия CC 1.0. Поддерживает через SYSTEM разрядность 8, 16 ,32 бита. Ввод/вывод присутсвует. Похоже, надо парню вешать "Star" и "Watch".
Текстовая вики на проекте доставляет)) Есть сборщик мусора, вызываемый вручную.
Трурлъ, сеньксь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 11:03 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Там самое интересное, что 64-битный. Некоторые его очень хотели.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 11:15 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 710
Откуда: Псков
Не совсем новый, уже здесь сообщалось.
viewtopic.php?f=30&t=5983&p=99944&hilit=congdm#p99944

Показательны выводы человека в двух его заметках.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 11 Октябрь, 2017 10:25 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
albobin писал(а):
Не совсем новый, уже здесь сообщалось.
viewtopic.php?f=30&t=5983&p=99944&hilit=congdm#p99944

Показательны выводы человека в двух его заметках.

Спасибо! Раньше не обращал внимание на эти заметки.
Интересно "Rewriting all the compiler in Component Pascal"... выходит, что этот компилятор он написал на Компонентном Паскале. Намечается некий тренд...
* Александр пишет компилятор O7 на Компонентном Паскале.,
* congdm пишет компилятор Patchouli Oberon-07 Compiler на Компонентном Паскале.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 11 Октябрь, 2017 10:27 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Trurl писал(а):
Там самое интересное, что 64-битный. Некоторые его очень хотели.

Исходники компилятора жаль закрыты. Было бы полезно ознакомиться для поддержки в Блэкбоксе архитектуры AMD64.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 11 Октябрь, 2017 10:30 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
В каком месте они закрыты? https://github.com/congdm/Patchouli-Com ... erator.mod


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 11 Октябрь, 2017 10:47 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
А вот со второй заметкой можно и не согласиться:
https://github.com/congdm/Patchouli-Com ... er-(part-2)
Очевидно, что разработчик принял INTEGER за 32 битное целое, и поэтому для адресов ему понадобился новый тип ADDRESS.
Но у Вирта, как я понял задумку Oberon-07, INTEGER должен быть той разрядности, что и адрес. А уже для более меленькой разрядности использовать SYSTEM.INT32, SYSTEM.INT16 и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 11 Октябрь, 2017 11:00 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
ilovb писал(а):
В каком месте они закрыты? https://github.com/congdm/Patchouli-Com ... erator.mod

Так там уже не на КП, а на Обероне-07 исходники. Компилятор то рекурсивный.

Но твой вопрос заставил покопаться и найти в другом хранилище в одной из старых веток версию на Компонентном Паскале!
https://github.com/congdm/Patchouli-Com ... 0.6/source

Правда кадр использовал GPCC компилятор судя по build.bat
Код:
gpcp /nowarn Sys.cp
gpcp /nowarn Base.cp
gpcp /nowarn /unsafe Scanner.cp
gpcp /nowarn SymTable.cp
gpcp /nowarn /unsafe Generator3.cp
gpcp /nowarn Parser.cp
gpcp /nowarn AyaCompile.cp

Но это не беда! Всё равно - хороший опыт. Легко перенести в Блэкбокс. Пока без динамической загрузки модулей, но тем не менее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 11 Октябрь, 2017 11:13 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
На днях еще в жабу компилятор появился: https://github.com/lboasso/oberonc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Среда, 11 Октябрь, 2017 21:05 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
albobin писал(а):
Не совсем новый, уже здесь сообщалось.
viewtopic.php?f=30&t=5983&p=99944&hilit=congdm#p99944

Ах, его переименовали. Не узнал. А тот проект мне казался заброшенным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Пятница, 13 Октябрь, 2017 16:28 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Клонировал компилятор Пачоли. От того, что добавил пару десятков пробелов и отформатировал код может измениться бинарник?? Или мне гит показывает контрольную сумму другую из-за изменившегося времени компиляции?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один компилятор Oberon-07
СообщениеДобавлено: Пятница, 13 Октябрь, 2017 19:07 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Оно может втягиваться под винду с изменением переносов строк на виндовый формат.

А потом при отправке изменений обратно в юниксовый трансформироваться.

Если не путаю. В SVN было так.
Офигенная логика, конечно.


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

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


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

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


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

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