OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 10 Декабрь, 2018 16:17

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




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Пятница, 27 Апрель, 2012 22:45 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
...Хочу позаниматься внедряемыми компонентами под Линухом. И вообще внедрением компонент в разных окнах под Гномом. Как начало деятельности, думаю сбацать свою версию ОберонСкрипт.

Надо веб-апплеты на Обероне как-то замутить. Внедряемые в веб-хтмл страницы.

Я читал про Juice. Juice устарел. В смысле что компилер ускакал вперёд и Juice остался на старой версии компилера.

У меня есть более прогрессивный подход, чем Juice — слать полный сырец и прямо на клиенте сырец на Обероне компилять в натив. Это развяжет проект компилера и апплеты. По аналогии с Javascript. В технологии Javascript сырец шлётся.

Ну во всяком случае идея слать сырец, внедрённый в веб-страницу, меня более прельщает, чем идея развивать Juice, который опять устареет, как компилер обновят.

Juice сильно повязан на IR компилера, а формат IR-а быстро устаревает. А мой подход этот минус отсекает на корню. То есть в моём подходе этого минуса нет.

То есть OberonScript.

***

Библиотеки можно слать в виде отдельных файлов Xxx.Mod или Xxx.Mod.gz или oberon-applet.zip.

Разрядность не проблема. Делаем типы вроде NonNegativeNaturalNumber32Bit, и подобные. И этим все проблемы с разрядностью решены.

Разные хост-платформы решаются интерпретером на первых порах (интерпретатор, как более простой и менее времяёмкий по расходам на реализацию кода вариант) и компилером в натив как вариант, который потребует реализации движка апплетов для каждой платформы отдельно.

Компилер в натив — это более дорогой по затратам вариант.

Интерпретер написанный на С и*или С++ - это экономичный вариант (по затратам на реализацию движка веб-апплетов).

Причём компилер значительно более дорог.

***

Не на Обероне написано, потому что интерпретатор Оберона у меня уже написан на C++. Потом перепишу его на Обероне.

С компиляторами Оберона под Линуксом засада. Ни одного нормального компилятора Оберона не нашёл под Линух.

Ну разве что oo2c, но компилить через С — это тормоза и очень неприятно. Засада этот oo2c. Я не могу с ним.

ULM Оберон у меня не стал работать. Он какие-то гнилые ошибки выдает, я не разбирался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Суббота, 28 Апрель, 2012 16:43 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2229
А вы смотрели вот этот Оксфордский компилятор Оберона для Линукс?
Там уже 2.9 релиз вышел.
http://spivey.oriel.ox.ac.uk/corner/Ins ... elease_2.9


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Воскресенье, 29 Апрель, 2012 10:39 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
Оксфордский в байткод компилирует, как сказано в User's Guide. Хочется транслятор в машкод.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Воскресенье, 29 Апрель, 2012 11:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Вопросы:
  1. Апплет будет подобен Java-апплету в виде встраиваемого окна или же будет работать с помощью DOM (OberonScript -> JavaScript)? Каким образом будет интегрироваться в браузер? Установкой библиотеки поддержки выполнения, как Java?
  2. Чем лучше слать исходный текст, нежели абстрактное синтаксическое дерево или байт-код? Каким образом будут обрабатываться ошибки компиляции и исполнения?

Было бы лучше составить набор слайдов с более глубоким описанием применяемых технологий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Воскресенье, 29 Апрель, 2012 16:16 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2229
egphilippov писал(а):
Оксфордский в байткод компилирует, как сказано в User's Guide. Хочется транслятор в машкод.
С ключем -C кодирует в машинный код.
egphilippov писал(а):
С компиляторами Оберона под Линуксом засада. Ни одного нормального компилятора Оберона не нашёл под Линух.
Еще такой компилятор есть у Оберон Микросистем, но они видимо на него забили, потом забыли, и добро пропадает по сути в немногочисленных руках. Вот если бы вы написали им письмо, с просьбой открыть под какой-нибудь дружелюбной лицензией код компилятора для вашего проекта, то было бы чудесно всем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 04:08 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
Ну я не такой крутой логистик - суметь вымолить публикацию проекта. К тому же я в ленивом режиме пишу свой доморощенный компилятор Оберона в целях изучения теории компиляторов и оптимизаций на практике. Парсер AST уже готов, дело за малым - шучу :) Парсер AST опубликовал на Гугл Коде под GPL под тагом "complete".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 06:25 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
Иван:

В ``obc --help'' написано:

-C Build specialized runtime system into linker output

Так что такое впечатление, что меняется только runtime библиотека, а не код, в который компилируются Оберон-модули. Вероятно, код остаётся байткодом при указанном -C.

Иван --- поясните, пожалуйста, где документирована генерация в машинный код целевой платформы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 08:55 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2229
egphilippov писал(а):
Иван:

В ``obc --help'' написано:

-C Build specialized runtime system into linker output

Так что такое впечатление, что меняется только runtime библиотека, а не код, в который компилируются Оберон-модули. Вероятно, код остаётся байткодом при указанном -C.

Иван --- поясните, пожалуйста, где документирована генерация в машинный код целевой платформы?

Вот начало программы (из hexedit) собранной с ключем -C
Код:
00000000   7F 45 4C 46  01 01 01 00  00 00 00 00  00 00 00 00  .ELF............
00000010   02 00 03 00  01 00 00 00  F0 8B 04 08  34 00 00 00  ............4...
00000020   34 0E 01 00  00 00 00 00  34 00 20 00  09 00 28 00  4.......4. ...(.
А это начало, программы собранной без ключа -C.
Код:
00000000   23 21 2F 75  73 72 2F 6C  6F 63 61 6C  2F 6C 69 62  #!/usr/local/lib
00000010   2F 6F 62 63  2F 6F 62 78  6A 0A 23 B3  05 23 F3 F7  /obc/obxj.#..#..
00000020   23 90 F3 F7  0F 0C 82 02  DB D4 B3 07  0F 0C 82 F6  #...............

Если удалить виртуальную машину /usr/local/lib/obc/obxj, то вторая программа работать не будет, а первая прекрасно работает, если вообще все вычистить от obc. "Build specialized runtime system into linker output" надо понимать, видимо, как "машина исполнения встраивается в код программы", и больше от нее не зависит. При этом размер скомпилированного файла увеличивается на 70kb.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 09:16 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
1. Ну вот, тем не менее. Хоть и запускаемый файл становится независимым от файлов OBC, но, тем не менее, вероятно, состоит из интерпретатора байткода + интерпретируемого байткода. Хочется обойтись без интерпретации вообще --- чтобы интерпретатором кода был процессор, без промежуточных уровней интерпретации.

2. Сейчас я смотрю, легко ли выкусить Stand-alone Oberon translator из UnixAOS. Сделать комманд-лайновый таким макаром. Без GUI. И вместе с комманд-лайновым хочется иметь процедуру-вызов транслятора для Оберон-кода, находящегося в ОЗУ (и Оберон-кода, который коллбэки вытаскивают в ОЗУ, как-то приблизительно так). Ещё думаю этот вызов сделать неблокирующим (асинхронным) с передачей событий о прогрессе компиляции.

P.S. Всё-таки написал, а потом подумал вот что - не буду использовать код трансляторов, которые не GPL. Только GPLные буду, а таких вроде бы нет, кроме моих начатков. То есть всё буду делать в рамках парадигмы GPL. Это почти исключает создание слайд-презентации, поскольку технологий имеющихся существует немного - firefox, chromium, xul-runner, webkit и подобные. Проприетарные вещи реализовывать пока оставляю любителям их.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 10:22 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
egphilippov писал(а):
Компилер в натив — это более дорогой по затратам вариант.

Интерпретер написанный на С и*или С++ - это экономичный вариант (по затратам на реализацию движка веб-апплетов).

Причём компилер значительно более дорог.

egphilippov писал(а):
Хочется обойтись без интерпретации вообще --- чтобы интерпретатором кода был процессор, без промежуточных уровней интерпретации.

Так, всё же, какой код генерировать расчитывается?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 10:25 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 571
Откуда: Россия, Санкт-Петербург
egphilippov писал(а):
1. Ну вот, тем не менее. Хоть и запускаемый файл становится независимым от файлов OBC, но, тем не менее, вероятно, состоит из интерпретатора байткода + интерпретируемого байткода. Хочется обойтись без интерпретации вообще --- чтобы интерпретатором кода был процессор, без промежуточных уровней интерпретации.

2. Сейчас я смотрю, легко ли выкусить Stand-alone Oberon translator из UnixAOS. Сделать комманд-лайновый таким макаром. Без GUI. И вместе с комманд-лайновым хочется иметь процедуру-вызов транслятора для Оберон-кода, находящегося в ОЗУ (и Оберон-кода, который коллбэки вытаскивают в ОЗУ, как-то приблизительно так). Ещё думаю этот вызов сделать неблокирующим (асинхронным) с передачей событий о прогрессе компиляции.

P.S. Всё-таки написал, а потом подумал вот что - не буду использовать код трансляторов, которые не GPL. Только GPLные буду, а таких вроде бы нет, кроме моих начатков. То есть всё буду делать в рамках парадигмы GPL. Это почти исключает создание слайд-презентации, поскольку технологий имеющихся существует немного - firefox, chromium, xul-runner, webkit и подобные. Проприетарные вещи реализовывать пока оставляю любителям их.

А чем вас не устраивает OPCL ?
Он компилирует самостоятельный код, не зависящий от интерпретатора. Компилирует из командной строки. Доступен в исходных кодах. Поддерживает диалекты Oberon, Oberon-2, Active Oberon.

Собственно нужно дописать линкер ELF файлов и готов компилятор для Linux'a, а потом уже можно заниматься оптимизацией компилируемого им кода.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 10:49 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Также вспомнил о OPCL. Большинство компиляторов Оберона генерируют native-код.
Поэтому, если принципиально нового компилятора не планируется, то, пожалуй, лучше доработать один из существующих. А то до встраивания в браузер не добраться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 11:02 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2289
Откуда: Россия, Санкт-Петербург
egphilippov писал(а):
2. Сейчас я смотрю, легко ли выкусить Stand-alone Oberon translator из UnixAOS. Сделать комманд-лайновый таким макаром. Без GUI. И вместе с комманд-лайновым хочется иметь процедуру-вызов транслятора для Оберон-кода, находящегося в ОЗУ (и Оберон-кода, который коллбэки вытаскивают в ОЗУ, как-то приблизительно так). Ещё думаю этот вызов сделать неблокирующим (асинхронным) с передачей событий о прогрессе компиляции.
OPCL был получен именно таким образом из Native Oberon (или WinOberon, не важно). Линкер - это отдельная утилитка, её-то и надо получить в варианте для целевой платформы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 12:25 
Аватара пользователя

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 434
Откуда: Егорьевск
egphilippov писал(а):
1. Ну вот, тем не менее. Хоть и запускаемый файл становится независимым от файлов OBC, но, тем не менее, вероятно, состоит из интерпретатора байткода + интерпретируемого байткода. Хочется обойтись без интерпретации вообще --- чтобы интерпретатором кода был процессор, без промежуточных уровней интерпретации.

Там есть JIT. Правда, глючит.

egphilippov писал(а):
2. Сейчас я смотрю, легко ли выкусить Stand-alone Oberon translator из UnixAOS. Сделать комманд-лайновый таким макаром. Без GUI...

Как пишут, OPCL, скорее всего, оптимальный вариант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Понедельник, 30 Апрель, 2012 17:15 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
Цитата:
А то до встраивания в браузер не добраться.


Почему не добраться. Добраться. Дописать кодогенератор для моего обобщённого AST ридера - дело нескольких недель, если взяться. Я компилятор кастом асма за 4 часа написал, баг был только один, и тот косметический.

Чем OPCL не полностью устраивает — хочется GPL софт развивать, а OPCL имеет ETH лицензию.

Ну вместо того чтобы выкусывать транслятор из LinuxAOS, можно и OPCL доделать до Линуха... Не знаю каким проектом сейчас заняться, по правде говоря. Хобби — оно и есть хобби.


Последний раз редактировалось egphilippov Вторник, 01 Май, 2012 14:27, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Вторник, 01 Май, 2012 14:18 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
Посмотрел я исходный код OPCL. Нет атрибутной грамматики — плохо. Синтаксис языка расширять сложнее сложного. Не годится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Вторник, 26 Июнь, 2012 14:24 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
Ещё близкородственный опыт демонстрирует Гугл --- в бесплатно распространяемой технологии GWT (Google Web Toolkit) вроде бы (доказать пока нечем, уточню на работе) транслирует ява-код в исполняемый в рамках www-браузера Javascript. Т.е. фактически Javascript браузера служит средой-аналогом JVM. Вместо .class файлов используется Javascript. Обмен с www-сервером может осуществляться через REST-запросы или другими способами.

Есть в GWT также методы с ключевым словом native, у которых в комментарии указан код на Javascript, вот пример такого метода (синтаксис приблизительный, надо уточнить на работе):
Код:
native void showAlert() /*{
    window.alert("Test");
}*/;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Среда, 27 Июнь, 2012 05:54 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
А вот я и ошибся. Синтаксис в Гугле выбрали вот такой:

Код:
native void showAlert() /*-{
    window.alert("Test");
}-*/;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Среда, 27 Июнь, 2012 10:54 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 571
Откуда: Россия, Санкт-Петербург
Идея у GWT блестящая, только вот отлаживать скомпилированный javascript код практически невозможно. Поэтому можно посчитать по пальцам проекты на GWT (по крайней мере во всех известных мне местных фирмах).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OberonScript, или Oberon embeddable into HTML
СообщениеДобавлено: Вторник, 30 Октябрь, 2012 23:04 
Аватара пользователя

Зарегистрирован: Понедельник, 09 Апрель, 2012 16:22
Сообщения: 88
Откуда: Иркутск
1. почему невозможно. там прекрасный дебагер есть для фф и хрома и эклипса (про ие не знаю)

2.

(0:21:04) еф: чёта я подумал - ну что за монополизм проприетарных java и флеша на рынке браузеров
(0:21:10) еф: нада свой движок :)


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

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


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

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


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

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