Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 23 сен 2017, 02:19

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Free Oberon официально выпущен
СообщениеДобавлено: 19 июл 2017, 13:03 
Не в сети
Администратор
Аватара пользователя

Сообщения: 9
Откуда: Рига, Латвийская ССР
Сегодня состоялся официальный выпуск проекта Free Oberon - кроссплатформенной среды в стиле Free Pascal для разработки на Обероне.
Новая версия имеет поддержку графики (модуль Graph) и снабжена обширной документацией. Проект выпущен под свободной лицензией GPLv3.
http://freeoberon.su

Документация: http://freeoberon.su/files/FreeOberon_v0.1.0.pdf
Скачать Free Oberon: http://freeoberon.su/files/FreeOberon_v0.1.0_win32.zip (не требует установки на Windows)
Среда поставляется с несколькими примерами программ.


Вложения:
Комментарий к файлу: Снимок экрана Free Oberon версии 0.1.0
freeoberon.png
freeoberon.png [ 11.94 КБ | Просмотров: 232 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Free Oberon официально выпущен
СообщениеДобавлено: 24 июл 2017, 23:11 
Не в сети

Сообщения: 2
Приветствую!
Я не люблю псевдографику, но надо отдать должное: игрушка занятная. Есть парочка "претензий":
1) В документации не хватает подробного описания языка. Это O2? Но O2 в чистом виде, так, как он был описан в начале 90-х, устарел. По крайней мере, устарела система типов. Кое-где в исходниках попадается тип HUGEINT. Значит, в этой реализации язык был модернизирован. Неплохо бы отразить в документации все расширения и изменения языка, перечислить все элементарные типы, описать псевдомодуль SYSTEM (и другие псевдомодули, если есть). Сборщик мусора, как я понимаю, есть? Однопоточный?
2) Консольные приложения (которые используют модули In и Out) в Windows не запускаются вне IDE. То есть, непосредственно из самой ОС запустить скомпилированную программу невозможно. По крайней мере, никаких видимых действий не происходит. Может быть, в заголовке бинарника не установлен флаг консольного приложения или причина в чем-то другом. Вообще, ИМХО, консольные приложения -- это, скорее, архаизм. Но всё же...
3) Как можно скомпилировать dll?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Free Oberon официально выпущен
СообщениеДобавлено: 26 июл 2017, 01:07 
Не в сети
Администратор
Аватара пользователя

Сообщения: 9
Откуда: Рига, Латвийская ССР
akron1 писал(а):
...надо отдать должное: игрушка занятная.
Рад слышать!

akron1 писал(а):
1) В документации не хватает подробного описания языка.
Совершенно согласен с этой претензией. Действительно, в ближайшее время планируется пополнить документацию полным описанием языка, а также описанием доступных расширений и прочего. Такой документации нет (или есть, но не вполне) у проекта VOC и она ему тоже пригодится.

akron1 писал(а):
Это O2?
Да, это Оберон-2, но с изменённой системой типов. Это описано в документации, а также на главной странице сайта freeoberon.su. Лично мне нравится Оберон-07 (я не отрицаю некоторых его недостатков, но понимаю, с какими огромными преимуществами они связаны), скорее всего основная ветвь развития Free Oberon будет означать постепенный переход на Оберон-07, с этим связана и задержка с документацией.

akron1 писал(а):
Сборщик мусора, как я понимаю, есть? Однопоточный?
Есть, однопоточный.

akron1 писал(а):
Консольные приложения (которые используют модули In и Out) в Windows не запускаются вне IDE.
Я понимаю, что это неудобно, но сейчас дело обстоит так: любое приложение компилируется как "оконное", и в него при компоновке включаются модули Graph и SDL2. Чтобы этого не было, необходимо поменять местами файлы "compile_no_graph.bat" и "compile.bat", находящиеся в каталоге "FreeOberon\data\bin" (на самом деле, используется только файл "compile.bat"). Сейчас идёт разработка система автоматической сборки проекта. Это дело не простое, требующее тщательного продумывания.

akron1 писал(а):
консольные приложения -- это, скорее, архаизм. Но всё же...
Да, однако есть задачи, в которых консольные приложения незаменимы. В частности, некоторые моменты некоторых курсов обучения программированию были бы сложнее для понимания, если бы не было возможности писать консольные приложения.

akron1 писал(а):
3) Как можно скомпилировать dll?
С ходу ответить не могу, т. к. этим вопросом не занимался. Можно ли обойтись правкой файла compile.bat, а именно изменением команд, даваемых компилятору GCC, или же получающиеся в процессе трансляции исходные коды Си тоже придётся менять — не знаю.

Насколько я знаю, вы связаны с разработкой компилятора Оберона-07. Хочу задать вопрос, связанный с развитием Free Oberon. Какие расширения языка Оберон-07, позволяющие работу с динамическими массивами без использования псевдомодуля SYSTEM, вам известны?
Например, можно ли в каком-либо компиляторе языка Оберон-07 объявить локальную переменную следующим образом: VAR m: ARRAY OF CHAR;, а затем задать размер массива оператором NEW? (И как в таком случае быть с некоторыми возникающими в языке неоднозначностями?)


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Free Oberon официально выпущен
СообщениеДобавлено: 26 июл 2017, 03:28 
Не в сети

Сообщения: 2
kekc_leader писал(а):
Лично мне нравится Оберон-07 (я не отрицаю некоторых его недостатков, но понимаю, с какими огромными преимуществами они связаны), скорее всего основная ветвь развития Free Oberon будет означать постепенный переход на Оберон-07, с этим связана и задержка с документацией.

Странно... Один из главных недостатков O7 -- отсутствие методов. И лично мне их реально не хватает. Я не могу поверить, что кому-то может быть удобнее писать
Код: "OBERON"
  1. list.clear(list);
  2. list.add(list, item);

вместо простого и понятного
Код: "OBERON"
  1. list.clear;
  2. list.add(item);

Добавьте к этому еще и необходимость инициализации процедурных полей.

Вообще, O7 -- это язык не для удобства программиста-пользователя, а для удобства разработки компилятора. Этим и объясняется его экстремальное упрощение, даже переупрощение в ущерб удобству использования. Я бы скорее добавил методы в O7, чем удалил их из O2. А процедурные переменные лучше оставить для более низкого уровня, вроде обратных вызовов.
И еще: система FreeOberon предназначается для использования в обучении, сомнительно, что процедурные переменные проще для понимания начинающими программистами чем методы. Это всё, конечно, ваше дело, просто я имею немалый опыт разработки на O7 и хорошо чувствую его недостатки.

kekc_leader писал(а):
Насколько я знаю, вы связаны с разработкой компилятора Оберона-07. Хочу задать вопрос, связанный с развитием Free Oberon. Какие расширения языка Оберон-07, позволяющие работу с динамическими массивами без использования псевдомодуля SYSTEM, вам известны?
Например, можно ли в каком-либо компиляторе языка Оберон-07 объявить локальную переменную следующим образом: VAR m: ARRAY OF CHAR;, а затем задать размер массива оператором NEW? (И как в таком случае быть с некоторыми возникающими в языке неоднозначностями?)

Отсутствие динамических массивов -- другой серьезный недостаток. Это резко увеличивает частоту использования модуля SYSTEM или заставляет делать списки там, где можно обойтись массивом.
Rifat, автор компилятора Oberon-07M, сделал расширение для динамических массивов традиционным для оберонов способом: POINTER TO ARRAY OF, и для упрощения ограничился только одномерными массивами.
В реализации Oberon-07 Astrobe для микроконтроллеров, если я не ошибаюсь, динамические массивы сделаны именно так, как вы предлагаете: ARRAY OF. При этом, так объявить можно только локальную переменную (выделение памяти происходит прямо в стэке). Сделано это, похоже, для повышения эффективности работы с динамическим массивом в условиях микроконтроллера: память выделяется простым изменением регистра-указателя стэка и освобождается автоматически при возврате из процедуры. Подробно, техническими деталями я не интересовался.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Free Oberon официально выпущен
СообщениеДобавлено: 26 июл 2017, 17:08 
Не в сети
Администратор
Аватара пользователя

Сообщения: 237
Откуда: Россия
В консольных программах для Windows, созданных в среде FreeOberon, проблема с русскими буквами из-за разницы в кодировке (как и было описано ранее).
Временный способ частично обойти проблему - перед запуском программы установить кодовую страницу UTF-8. Для этого можно запускать программу через батник, где первой строкой команда "chcp 65001", а второй - запуск самого exe-файла. Можно автоматически создавать такой такой батник, если добавить строки
Код: "OBERON"
  1. echo chcp 65001 >%~n1.bat
  2. echo %~n1.exe >>%~n1.bat
в файл compile.bat после вызова gcc. Правда это срабатывает при выводе строк процедурой Out.String, для процедуры ввода In.Line это не помогает.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Free Oberon официально выпущен
СообщениеДобавлено: 26 июл 2017, 17:26 
Не в сети

Сообщения: 25
kekc_leader писал(а):
Какие расширения языка Оберон-07, позволяющие работу с динамическими массивами без использования псевдомодуля SYSTEM, вам известны?


Я использую "*" для объявления динамического массива в O7: https://github.com/vladfolts/oberonjs/w ... mic-arrays


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

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB