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

Твердыня модульных языков
Текущее время: 28 мар 2024, 21:40

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




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

Сообщения: 15
Откуда: Рига, Латвийская ССР
Сегодня состоялся официальный выпуск проекта 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 КБ | Просмотров: 16471 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Free Oberon официально выпущен
СообщениеДобавлено: 24 июл 2017, 23:11 
Не в сети

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


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

Сообщения: 15
Откуда: Рига, Латвийская ССР
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 
Не в сети

Сообщения: 35
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 
Не в сети
Администратор
Аватара пользователя

Сообщения: 273
Откуда: Россия
В консольных программах для 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 
Не в сети

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


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


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

Сообщения: 86
akron1 писал(а):
Код: "OBERON"
  1. list.clear(list);
  2. list.add(list, item);


А если это будет выглядеть вот так:
Код: "OBERON"
  1.  
  2. мЦепь.Очистить(уЦепь);
  3. мЦепь.Зв_Добав(уЦепь, уЗвено);
  4.  


В любом случае в методах необходимо передавать ссылку на себя.
Во второй строке для list -- непонятно,что это -- вариант от мене лишён данного недостатка.
Кроме того, в секции BEGIN модуля можно проводить инициализацию самого модуля, а для типа туЦепь в модуле модЦепь можно предусмотреть процедуру Создать():туЦепь, где членам типа туЦепь -- процедурным переменным можно присвоить ссылки на процедуры из модуля. Но! передавать ссылку на себя всё-равно придётся.
Так-что можно, но не совсем понятно зачем.

З.Ы. Я исхожу из того, что В Оберон-07 (да и в любом Обероне) нет понятия "класс". Потребность в нём перекрывается понятием "модуль". Типы разделяют семантику классов, но Вирт чётко разделяет код и данные. Типы относятся к данным.

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


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

Сообщения: 350
Жаль, что не BSD - подобная лицензия. Например, BSD подобная позволила бы на базе этого проекта создать что-то наподобие 1С и зарабатывать деньги. А так - вряд ли получится.


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

Сообщения: 86
Я про это частенько веду жаркие споры с тем же Комдивом. Умный парень, грамотный, но вот не желает делать BSD-2!))
Свой вариант компилятора на основе компилятора Антона Кротова (akron1) я решил делать в пассивном режиме, именно по причине его лицензии. Мои файлы под BSD-2 перекрываются его GNU GPL.

С другой стороны, надо правильно понимать GNU GPL. Да, компилятор именно под этой лицензией, но в соответствии с разъяснениями на официальном сайте ФСПО -- лицензия не распространяется на производные продукты, если только существенная часть продукта не содержит в достаточном объёме куски подпадающие под действие GNU GPL. Например, намертво зашитый компилятор Комдива в конечный продукт -- это 146% GNU GPL. Если связь через именованный канал, а сам компилятор просто лежит рядом и его легко заменить на аналогичный -- то уже нет. Например, результат работы BISON\LEXX -- входит в выходные файлы, но это оговорено отдельно и на них лицензия не распространяется. Так же, как например лицензия LibreOffice на файлы формата *.odt|*.ods|*odg. Офис -- да, GNU GPL. А файлики -- личные.

Но вот если есть желание модифицировать сам компилятор -- то его коды придётся открыть. Но это не значит, что придётся открыть коды и на продукт, который использует такой модифицированный компилятор. Это как разные квартиры в многоквартирном доме. Рядом, под одной крышей, но разные владельцы.

Поэтому, чисто технически, лицензия на компилятор мешать не должна.
Единственный скользкий вопрос -- это совместное использование лицензии кроме GPL совместно с GPL. Последняя обладает вирусным характером, поэтому фраза "существенная доля" -- меня, как директора кооператива по обжариванию семечек совершенно не устраивает. Я не могу себе позволить судебные тяжбы на лицензионной почве.

_________________
Действия профессионала предсказуемы. Но в мире полно любителей!


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

Сообщения: 350
Вот, например, EMACS - он под GPL, и весь код, все расширения для него - тоже заражаются GPL. Думаю, в случае "1С", где реализация языка встроена в саму платформу, всё достаточно однозначно - подпадает. Среда, кстати, не сильно проще компилятора, так что трудоёмкость доработки среды тоже может требовать защиты, тогда опять же GPL не подходит.


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

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club