Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн авг 20, 2018 8:26 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 83 сообщения ]  На страницу Пред. 1 2 3 4 5 6
Автор Сообщение
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Ср май 09, 2018 10:41 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1302
Теперь пакет синтаксической подсветки опубликован в репозитории HippoEDIT среди остальных синтаксических схем(название Oberon-07) https://hippoedit.com/syntax_files.php?lang=ru
Кроме этого, синтаксические схемы размещены на GitHub https://github.com/hippoedit/syntax/tre ... /Oberon-07
Также существует тема на форуме HippoEDIT https://forum.hippoedit.com/syntax-files/oberon-07

Спасибо разработчикам HippoEDIT за помощь в допиливании синтаксической схемы — с такими людьми приятно иметь дело!
Алсо, теперь у меня есть Free Full License https://hippoedit.com/free_licensed_copy.php?lang=ru


Вернуться к началу
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Чт май 10, 2018 4:39 pm 
Не в сети

Зарегистрирован: Вс окт 27, 2013 8:13 pm
Сообщения: 118
Хорошо.

Заранее напишу список синтаксических изменений в новом компиляторе, влияющих на подсветку:

- Удалены предопределенные индентификаторы LONGREAL, LONG, SHORT. Встроенную процедуру COPY я всё же сохранил.
- Добавлен идентификатор BYTE.
- В вещественных константах допускается только символ "E", но не "D": 3.14E0.
- Удален системный флаг для записей [union]. Я не нашел ему применения и не использовал в своих программах. Может быть, это могло быть полезным при использовании библиотек, написанных на C, но так и не пригодилось. А вот [noalign] безусловно нужен, и этот флаг сохранен.
- Добавлен системный флаг для процедур [kosapi]. Действие то же, что и у флага [winapi] - stdcall с необязательным сохранением результата.

Тем временем, компилятор уже портирован в KolibriOS. Осталось только полностью портировать библиотеки и сделать генерацию obj-библиотек. По Windows сделано уже всё.
По кодогенерации есть еще небольшие недоработки.

Портировал FB2 Reader на новый компилятор. Размер сжатого бинарника остался таким же (+- несколько десятков байт). Но вот производительность не улучшилась... Вероятно, скорость работы упирается в системные вызовы и рантайм, который пока не оптимизирован (почти полностью написан на Обероне, машинных вставок мало).


Вернуться к началу
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Ср май 23, 2018 9:16 am 
Не в сети

Зарегистрирован: Вс окт 27, 2013 8:13 pm
Сообщения: 118
Итак, в целом, готово. Пока в виде транслятора в FASM. Есть еще кое-какие недоработки:
- не оптимизирован рантайм
- несовершенная обработка ошибок компиляции: номерные сообщения об ошибках, не очень информативные, не всегда точно указывается место ошибки. Хотя мне всегда всё понятно)
- не поддерживаются относительные пути
- не поддерживается Linux (впрочем это меня пока мало интересует)

Довольно много еще можно сделать для улучшения кодогенерации, но я это пока отложу - надо добавить второй таргет, тогда лучше будет видно, как усовершенствовать промежуточный код. Да и x86 мне порядком надоел. Сделаю перерыв, а потом начну делать другой таргет.

Провел сравнение с Black Box, тесты те же. Этот компилятор неоптимизирующий, но производит довольно хороший код (для неоптимизируещего), реализует язык Component Pascal. Впрочем, он только называется "pascal", а фактически это улучшеный Oberon-2, поэтому все тестовые программы подверглись лишь небольшой модификации. Здесь, конечно, результат не в мою пользу, но Black Box выигрывает не так уж много -- в 1.2 - 1.5 раза:

bubble 0.81
bubbleOA 0.69
fib 0.85 (0.94 если не использовать возврат из середины процедуры)
queens 0.68
blur 0.79

Видно, что скорость выполнения программ составляет примерно 70-80% от скорости Black Box.

Перенес на новый компилятор все "большие" программы.

Editor: размер уменьшился с 114 кб до 103 кб. О скорости ничего определенного сказать нельзя -- он и раньше работал удовлетворительно даже на старом P4 Celeron 2004 года выпуска.

FB2 Reader: загрузка процессора при быстром пролистывании уменьшилась примерно на 15%, остальное съедает рантайм, системные функции и операция копирования больших объемов данных при очистке графического буфера, которая не подлежит оптимизации. Открытие файла даже вроде немного замедлилось -- рантайм надо оптимизировать. В остальном -- ничего не изменилось.

TLS: вот здесь преимущество нового компилятора хорошо заметно -- скорость приема данных (AES-128) увеличилась в 2.2 раза.

Снова возникла проблема с антивирусами. Теперь угрозу видит "Защитник Windows", причем не только в графических, но и в консольных программах. Заметил я это совсем недавно: то ли "Защитник Windows" у меня раньше был выключен, то ли обновился... Ну и ладно, пока не важно.

Компилятор пока с закрытым кодом: надо чистить и добавлять второй таргет, чтобы всё встало на свои места.
Библиотеки старые, адаптированные для нового компилятора.
Такой вот пока, как тут один выражался, "полуфабрикат".


Вложения:
oberon-07.rar [162.43 КБ]
23 скачивания
Вернуться к началу
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Ср май 23, 2018 11:29 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4452
Поздравляю с релизом :)

_________________
Через тернии к звездам


Последний раз редактировалось Leency Ср май 23, 2018 2:37 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Ср май 23, 2018 11:53 am 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 596
Возможно это было :)
Попутно встретился проект оберона в нативный код x86 (пост от comdiv)
на данной страничке oberon foruma

P.S. А здесь на форуме Оберона
кто то хотел транслировать Оберон в Forth VM, но тему закрыл как не перспективную :)
А у меня остались некоторые наработки по трансляции С -> Forth на базе кода LCC компилятора и некоторого бэк-энда к нему. (отталкивался от проекта C2Forth у MPE LTD)


Вернуться к началу
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Чт май 24, 2018 4:59 am 
Не в сети

Зарегистрирован: Вс окт 27, 2013 8:13 pm
Сообщения: 118
Leency писал(а):
Поздравляю с релизом :)

Спасибо.

Kopa писал(а):
Возможно это было :)
Попутно встретился проект оберона в нативный код x86 (пост от comdiv)
на данной страничке oberon foruma

P.S. А здесь на форуме Оберона
кто то хотел транслировать Оберон в Forth VM, но тему закрыл как не перспективную :)
А у меня остались некоторые наработки по трансляции С -> Forth на базе кода LCC компилятора и некоторого бэк-энда к нему. (отталкивался от проекта C2Forth у MPE LTD)

Оберон и Форт в чём-то похожи. Оба представляют больше академический интерес, чем практический. Существует множество самодельных компиляторов, но до практического применения дело обычно не доходит. Кстати, когда я выбирал язык для своей реализации (это было в уже далеком 2011 году), я рассматривал также и Форт, но не понравилось -- Оберон всё же куда более традиционно выглядит.


Вернуться к началу
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Чт май 24, 2018 6:52 am 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 596
akron1 писал(а):
Оберон и Форт в чём-то похожи. Оба представляют больше академический интерес, чем практический.

Для их использующего интерес вполне практический :)
только вот где и кто их предпочитает использовать, это другой исторически-практический вопрос.
Эти языки даже в учебных планах почти не представлены и соответственно появление начального интереса к ним маловероятно, а далее уже формируются "привычки" к майнстрим языкам и выстраиваются теоретические базисы для их использования со всевозможной литературой. (но это лирика)

P.S. По вопросу реализации "Паскаль" вариантов языка был такой проект D2Lang от 2004года
Авторские исходники в этой теме он сохранил


Вернуться к началу
 Заголовок сообщения: Re: Компилятор Oberon-07
СообщениеДобавлено: Чт май 24, 2018 9:36 am 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1302
Это здорово, что проект развивается.
akron1 писал(а):
Здесь, конечно, результат не в мою пользу, но Black Box выигрывает не так уж много -- в 1.2 - 1.5 раза:
Ну, значит, есть куда стремиться :)
akron1 писал(а):
Снова возникла проблема с антивирусами.
На VirusTotal тоже некоторые(нонеймы) ругаются https://www.virustotal.com/#/file/abe6c ... /detection


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 83 сообщения ]  На страницу Пред. 1 2 3 4 5 6

Часовой пояс: UTC+03:00


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

Сейчас этот форум просматривают: Alex2003 и 1 гость


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB