OberonCore
https://forum.oberoncore.ru/

Оберон-07
https://forum.oberoncore.ru/viewtopic.php?f=115&t=615
Страница 11 из 12

Автор:  Сергей Губанов [ Пятница, 30 Сентябрь, 2011 12:17 ]
Заголовок сообщения:  Re: Оберон-07

Евгений Темиргалеев писал(а):
В сях есть что-то типа stack_alloc. В аде, может быть, можно размещать b, c: ARRAY LEN(a)...
В C# тоже есть, но в ансэйфе
Код:
private static unsafe void P (byte* a, int n)
{
   byte* tmp = stackalloc byte[n];
   //...
}

Автор:  Илья Ермаков [ Пятница, 30 Сентябрь, 2011 14:26 ]
Заголовок сообщения:  Re: Оберон-07

Да, в Аде в локальных объявлениях можно в качестве значений (размеров) использовать свойства пришедших фактических параметров.

В принципе, никаких изменений в синтаксис не нужно - и технически не сложно, разрешить LEN от параметра ставить размером локального массива.

Автор:  albobin [ Пятница, 30 Сентябрь, 2011 15:06 ]
Заголовок сообщения:  Re: Оберон-07

Илья Ермаков писал(а):
Да, в Аде в локальных объявлениях можно в качестве значений (размеров) использовать свойства пришедших фактических параметров.

В принципе, никаких изменений в синтаксис не нужно - и технически не сложно, разрешить LEN от параметра ставить размером локального массива.

Позвольте вопрос , а что это нельзя делать? Вроде бы по описанию синтаксиса Оберона-07 прошелся и препятствий не заметил.

ArrayType = ARRAY length {"," length} OF type.
length = ConstExpression.
ConstExpression = expression.
expression = SimpleExpression [relation SimpleExpression].
SimpleExpression = ["+" | "-"] term {AddOperator term}.
term = factor {MulOperator factor}.
factor = number | string | NIL | TRUE | FALSE |set | designator [ActualParameters] | "(" expression ")" | "~" factor.
designator = qualident {selector}.
qualident = [ident "."] ident.
ident = letter {letter | digit}.
ActualParameters = "(" [ExpList] ")" .

Автор:  Евгений Темиргалеев [ Пятница, 30 Сентябрь, 2011 16:03 ]
Заголовок сообщения:  Re: Оберон-07

albobin писал(а):
Илья Ермаков писал(а):
...разрешить LEN от параметра ставить размером локального массива.
Позвольте вопрос , а что это нельзя делать? Вроде бы по описанию синтаксиса Оберона-07 прошелся и препятствий не заметил.

ArrayType = ARRAY length {"," length} OF type.
length = ConstExpression.
LEN от открытого массива во время компиляции не вычислить --- не вписывается в семантику ConstExpression.

Автор:  Евгений Темиргалеев [ Пятница, 30 Сентябрь, 2011 16:04 ]
Заголовок сообщения:  Re: Оберон-07

Илья Ермаков писал(а):
В принципе, никаких изменений в синтаксис не нужно - и технически не сложно, разрешить LEN от параметра ставить размером локального массива.
Насчёт сложности я бы не спешил делать выводы. Влепить может и не сложно. Только может такой прибамбас выйти, что его размеры себя не окупят в качестве языкового механизма.

Автор:  albobin [ Пятница, 30 Сентябрь, 2011 17:21 ]
Заголовок сообщения:  Re: Оберон-07

Евгений Темиргалеев писал(а):
length = ConstExpression. LEN от открытого массива во время компиляции не вычислить --- не вписывается в семантику ConstExpression.

ForStatement = ... [ BY ConstExpression] . Здесь тоже во время компиляции должно быть вычислимо?

Автор:  Info21 [ Пятница, 30 Сентябрь, 2011 19:10 ]
Заголовок сообщения:  Re: Оберон-07

Речь о вспомогат. переменных на стеке с неопределенным начальным значением.
Таковы локальные переменные.
В этой логике обсуждаемые вспомогат. массивы нужно объявлять среди локальных переменных.

Как объявить их длину?
Если разрешить выражения -- то компилятору нужно отслеживать операнды и включить в код проверку длина>0 в ран-тайме.

Если просто LEN(a), где a обязан быть параметром?
Но возможна некая путаница с многомерными массивами.

Если VAR b: ARRAY AS a;
так чтобы b полностью дублировал a по структуре и размерам?

Можно пофантазировать о распространении этого способа и на другие ситуации. Группы "подобных" массивов часто встречаются.
Тогда, возможно, получилось бы упрощение правил передачи массивов в качестве параметров.
Но это похоже на описание типов. С другой стороны, массивовые типы и так стоят несколько особняком в системе типов. Это, скорее, предтипы -- что-то между атомарными типами и записями.

Да уж... нагромоздить тут легко, а вот выпутаться потом... неочевидно.

Автор:  Евгений Темиргалеев [ Пятница, 30 Сентябрь, 2011 19:40 ]
Заголовок сообщения:  Re: Оберон-07

albobin писал(а):
Евгений Темиргалеев писал(а):
length = ConstExpression. LEN от открытого массива во время компиляции не вычислить --- не вписывается в семантику ConstExpression.

ForStatement = ... [ BY ConstExpression] . Здесь тоже во время компиляции должно быть вычислимо?
Да, раз ConstExpression.

Автор:  albobin [ Пятница, 30 Сентябрь, 2011 20:14 ]
Заголовок сообщения:  Re: Оберон-07

Евгений Темиргалеев писал(а):
Да, раз ConstExpression.

Спасибо.

Автор:  Info21 [ Среда, 25 Июль, 2012 07:14 ]
Заголовок сообщения:  Re: Оберон-07

Николай Вальтерович прислал новую ревизию репорта.

Предупреждал же: надо к этим новостям относится спокойней.

Типичное ползание оптимизирующего алгоритма по точке оптимума.

Мое предложение -- опираться на опыт обучения 11-летних.

Вложения:
Oberon07.Report.doc.7z [21.95 КБ]
Скачиваний: 710

Автор:  Info21 [ Среда, 25 Июль, 2012 12:07 ]
Заголовок сообщения:  Re: Оберон-07

Info21 писал(а):
Николай Вальтерович прислал новую ревизию репорта.

Николай Вальтерович писал(а):
I have made an addition to Oberon-7:
I added the basic type BYTE.
It is fully compatible with INTEGER, of which it denotes the subrange 0 ...
255.
Overflow may occur upon assignment of an integer to a variable of type BYTE.

I have removed the type LONGREAL.
Which standard is used is left open to every implementation.

Furthermore, there are again only 2 kinds of parameters,
the CONST case is dropped.
However, I introduce the restriction that assignments to elements of a structured parameter are forbidden, unless it is a VAR parameter.
(As a result, structured parameter can always be passed by reference).
I append the updated Report.

Автор:  albobin [ Среда, 25 Июль, 2012 13:05 ]
Заголовок сообщения:  Re: Оберон-07

Я тут 'diff'ом по текстам прошёлся. Ещё добавлено:

11.1 The Module SYSTEM
Proper procedures:
COPY(src, dst, n) all INTEGER copy n consecutive words from src to dst

Автор:  Евгений Темиргалеев [ Среда, 25 Июль, 2012 13:50 ]
Заголовок сообщения:  Re: Оберон-07

Пока конвертировал "старый" репорт из pdf в odc, чтобы в ББ сравнить, уже всё огласили. :) В любом случае, пригодится (http://oberoncore.ru/library/wirth_the_ ... on_revised).

Автор:  Rifat [ Среда, 12 Март, 2014 09:13 ]
Заголовок сообщения:  Re: Оберон-07

Вышла новая ревизия языка Oberon-07 (1.10.2013 / 10.3.2014).
Изменились некоторые формулировки, а также изменились следующие вещи:
1) При записи вещественных чисел не поддерживается символ D и LONGREAL.
2) SET принимает значения от 0 до зависимо_от_реализации. Раньше было до 31.
3) Добавились некоторые предопределенные функции, которые должны быть реализованы при работе с RISC процессором.

Вложения:
Комментарий к файлу: Новая ревизия Оберон-07 от 3.10.2014.
Oberon07.Report_20140310.pdf [68.27 КБ]
Скачиваний: 726

Автор:  Роман М. [ Среда, 12 Март, 2014 15:26 ]
Заголовок сообщения:  Re: Оберон-07

albobin писал(а):
Я тут 'diff'ом по текстам прошёлся.
Хотелось бы иметь список ревизий для сравнения как это сделано в МедиаВики.

Автор:  ddn1 [ Среда, 12 Март, 2014 18:52 ]
Заголовок сообщения:  Re: Оберон-07

Rifat писал(а):
Вышла новая ревизия языка Oberon-07 (1.10.2013 / 10.3.2014)
А почему 10.03.2014? Это явно дата скачивания документа, а не заливки.

На "том, чье имя нельзя называть" форуме сообщение о новой версии идет от 26.02.2014.
Я скачал документ через Download Master со включенной опцией "Получать дату и время создания файла с сервера", его время еще более раннее - 22 февраля 2014 г., 06:36:12.

Автор:  Борис Рюмшин [ Среда, 12 Март, 2014 18:58 ]
Заголовок сообщения:  Re: Оберон-07

ddn1 писал(а):
Rifat писал(а):
Вышла новая ревизия языка Oberon-07 (1.10.2013 / 10.3.2014)
А почему 10.03.2014? Это явно дата скачивания документа, а не заливки.

Так в документе.

Автор:  ddn1 [ Среда, 12 Март, 2014 19:21 ]
Заголовок сообщения:  Re: Оберон-07

Борис Рюмшин писал(а):
ddn1 писал(а):
А почему 10.03.2014? Это явно дата скачивания документа, а не заливки.

Так в документе.
А у меня ее нет, только дата старой версии.
Документ опять обновился! Новый залит - 11 марта 2014 г., 09:26:52.

Отличия:
Oberon07.Report.pdf 22 февраля 2014 г., 06:36:12 писал(а):
Revision 1.10.2013
factor. The letter E is pronounced as "times ten to the power of". A real number is of type REAL.
SET the sets of integers between 0 and 31
DeclarationSequence = [CONST {ConstantDeclaration ";"}]

Oberon07.Report.pdf 11 марта 2014 г., 09:26:52 писал(а):
Revision 1.10.2013 / 10.3.2014
factor. The letter E is pronounced as "times ten to the power of".
SET the sets of integers between 0 and an implementation-dependent limit
DeclarationSequence = [CONST {ConstDeclaration ";"}]

Автор:  Борис Рюмшин [ Среда, 12 Март, 2014 19:33 ]
Заголовок сообщения:  Re: Оберон-07

ddn1 писал(а):
Документ опять обновился! Новый залит - 11 марта 2014 г., 09:26:52.

Вот о нём речь и идёт.

Автор:  Роман М. [ Пятница, 11 Март, 2016 14:56 ]
Заголовок сообщения:  Re: Оберон-07

Вышла новая уточнённая версия с правками от 4.3.2016. Сравнений с предыдущими пока не делал.

Страница 11 из 12 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/