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. |
Автор: | Евгений Темиргалеев [ Пятница, 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] . Здесь тоже во время компиляции должно быть вычислимо? |
Автор: | albobin [ Пятница, 30 Сентябрь, 2011 20:14 ] |
Заголовок сообщения: | Re: Оберон-07 |
Евгений Темиргалеев писал(а): Да, раз ConstExpression. Спасибо. |
Автор: | Info21 [ Среда, 25 Июль, 2012 07:14 ] | ||
Заголовок сообщения: | Re: Оберон-07 | ||
Николай Вальтерович прислал новую ревизию репорта. Предупреждал же: надо к этим новостям относится спокойней. Типичное ползание оптимизирующего алгоритма по точке оптимума. Мое предложение -- опираться на опыт обучения 11-летних.
|
Автор: | 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 процессором.
|
Автор: | Роман М. [ Среда, 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/ |