OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 22 Март, 2011 13:23 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Кратко отвечу на некоторые вопросы:

* Возможен ли динамический массив, элементами которого являются статические массивы?
Да возможны: POINTER TO ARRAY OF ARRAY 10 OF CHAR
Проверьте по грамматике языка, это должно следовать из грамматики

* Как пользоваться ImportedProcedure?
Также можно посмотреть в грамматике и как пример файл WinApi.ob7

* На какие целевые архитектуры и ОС рассчитан компилятор (учитывая, что австралийский аналог производит исполнимый код только для микроконтроллеров)?
Расчитан на x86 под Windows

* Не помню, был ли LONGREAL в исходном Oberon-07. Если нет, то это надо указать в "добавлениях".
Было.

* Ничего не сказано о том, в какой файл помещается среда времени выполнения, а также о том, в каком формате создаются исполнимые файлы (exe, dll).
Сборщик мусора располагается в модуле Memory. Проверки времени выполнения размещены в коде, рядом с кодом, которые они проверяют. Исполнимые файлы создаются в формате PE (EXE).

* Какой аллокатор памяти используется, и если свой собственный, то как он работает.
Память запрашивается у системы, при помощи VirtualAlloc. Детали можно посмотреть в коде в файле Memory.

* Как насчет встраивания компилятора в какие-нибудь IDE или редакторы под Windows/Linux?
Под Linux компилятор пока не работает. Насчет встаивания в IDE, думаю что возможно, так как многие консольные компиляторы можно вызывать из IDE, но я этим пока не занимался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 22 Март, 2011 19:32 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Rifat писал(а):
Кратко отвечу на некоторые вопросы:
* Ничего не сказано о том, в какой файл помещается среда времени выполнения, а также о том, в каком формате создаются исполнимые файлы (exe, dll).
Сборщик мусора располагается в модуле Memory. Проверки времени выполнения размещены в коде, рядом с кодом, которые они проверяют. Исполнимые файлы создаются в формате PE (EXE).


То есть, все модули, включая модуль Memory, содержащий сборщик мусора, компилятся в один большой exe-шник, содержащий в себе и прикладную программу, и проверки времени выполнения? Правильно ли я понял?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 22 Март, 2011 19:52 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Сергей Прохоренко писал(а):
То есть, все модули, включая модуль Memory, содержащий сборщик мусора, компилятся в один большой exe-шник, содержащий в себе и прикладную программу, и проверки времени выполнения? Правильно ли я понял?

Да, очень большой. 40Кб.
Вообще то лучше один раз пощупать чем долго выспрашивать. Компилятор доступен всем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Понедельник, 25 Апрель, 2011 22:49 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Rifat писал(а):
Появился новый компилятор для языка программирования Oberon-07M. "M" означает, что язык разширен, в частности разрешены одномерные динамические массивы.


Только сейчас я обратил внимание на то, что обе имеющиеся реализации Oberon-07 расширяют его, в частности, динамическими массивами: Oberon for LPC2000 Microcontrollers. Может быть, и некоторые другие расширения из указанной реализации имеет смысл включить в реализацию для Windows? Не выхолащивая "дух" языка, "букву" можно подправить для расширения его потенциальной области применения. Не секрет, что Вирт всегда делал языки под какую-то конкретную текущую потребность, и им подчас не хватает универсальности. Я не призываю возвращать в язык отвергнутые по принципиальным соображениям конструкции или добавлять что-то из "неродственных" языков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 26 Апрель, 2011 09:11 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Сергей Прохоренко писал(а):
Не секрет, что Вирт всегда делал языки под какую-то конкретную текущую потребность, и им подчас не хватает универсальности.
С первой частью согласен, вторую считаю ошибочной. Смотря как рассматривать универсальность.

У Вирта универсальность = баланс --- самое существенное (необходимое)/простота (make it simple but not simpler --- лучше тут не выразишь). Благодаря чему инструмент можно легко применить в произвольной области (портировать, доработать под специфику, пр.). Последнее --- доработку общего инструмента под специфику Вирт сам практикует. Как пример, его же компилятор Оберон-07: http://oberoncore.ru/wiki/lang/oberon-07

Если же Вы будете трактовать универсальность как наличие готового решения на любой случай, то... По-моему, такой подход --- утопия.


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

Касательно сделать дин. массивы расширением --- автор компилятора волен делать любые расширения, какие захочет... Но опять же --- считаю, что игнорировать опыт Вирта (не прислушаться) --- глупо; его стоит проверить (касательно дин. массив = универсальное или частное средство)...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 26 Апрель, 2011 09:32 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Кстати, в Виртовском комплияторе для ARM дин. массивы тоже есть в виде расширения. Cамый сложный момент отсутствует.
An Oberon Compiler for the ARM Processor писал(а):
19. Dynamic Arrays
Dynamic arrays are here introduced as an addition to Oberon. An array is called dynamic, if its
length is determined “dynamically”, i.e. at execution time. This is done by a call to the intrinsic
procedure NEW with a second parameter indicating the desired length. Example:
VAR a: ARRAY OF INTEGER;
BEGIN ... NEW(a, len) ...
where len is an expression of type INTEGER and a non-negative value. The mechanism for open
arrays (parameters) is reused.
...
Dynamic arrays cannot be elements of other data structures.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 26 Апрель, 2011 11:23 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Евгений Темиргалеев писал(а):
Кстати, в Виртовском комплияторе для ARM дин. массивы тоже есть в виде расширения.


Выходит, Вирт не прислушался к самому себе? :wink:
Просто он более гибок и не связывает себя прецедентами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 26 Апрель, 2011 11:37 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Сергей Прохоренко писал(а):
Евгений Темиргалеев писал(а):
Кстати, в Виртовском комплияторе для ARM дин. массивы тоже есть в виде расширения.

Выходит, Вирт не прислушался к самому себе? :wink:
Просто он более гибок и не связывает себя прецедентами.
"Выходит, Вирт не прислушался к самому себе? :wink: "
Если Вы сделали этот вывод из моего сообщения (viewtopic.php?p=62755#p62755), то Вы его не поняли. А более вероятно --- не пытались. :wink:

"Просто он более гибок и не связывает себя прецедентами."
Вирт, стараясь оставить в определении языка только самое существенное, не связывает "прецендентами" ВСЕХ (например: попробуйте сделать, реализацию компилятора стандартного Си++, как Rifat сделал Oberon-7).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Вторник, 26 Апрель, 2011 15:09 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Евгений Темиргалеев писал(а):
Кстати, в Виртовском комплияторе для ARM дин. массивы тоже есть в виде расширения.
An Oberon Compiler for the ARM Processor писал(а):
19. Dynamic Arrays
...
Dynamic arrays cannot be elements of other data structures.
Т.е. динмассивы только для связки потоков между внешним окружением программы и её внутренними переменными... программа должна брать элементы и "разносить" по внутренним структурам данных прежде, чем использовать (или класть свои результаты в элементы, дабы сделать их доступными окружению) ... а открытость длины - чтобы меньше зависеть от относительного темпа источника и потребителя?.. Кстати, в таком понимании открытость достаточна только по одному измерению вроде.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07M for Windows
СообщениеДобавлено: Суббота, 14 Май, 2011 18:58 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Евгений Темиргалеев писал(а):
"Просто он более гибок и не связывает себя прецедентами."
Вирт, стараясь оставить в определении языка только самое существенное, не связывает "прецендентами" ВСЕХ
В подтверждение этой мысли:
http://oberoncore.ru/_media/wiki/lang/w ... -07.en.pdf
The Programming Language Oberon Revision 1.11.2008 писал(а):
1. Introduction
...
This report is not intended as a programmer's tutorial. It is intentionally kept concise. Its function
is to serve as a reference for programmers, implementors, and manual writers. What remains
unsaid is mostly left so intentionally, either because it is derivable from stated rules of the
language, or because it would unnecessarily restrict the freedom of implementors.

P.S. Одностраничная сводка про отличия Оберон-07 от Оберон и специфику виртовского компилятора Oberon-07 для ARM: http://oberoncore.ru/_media/wiki/lang/w ... nce.en.pdf


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

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


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

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


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

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