Автор Тема: Модифицированный синтаксис Оберона  (Прочитано 180349 раз)

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #495 : Декабрь 09, 2012, 04:53:18 pm »
зачем... можно пользоваться одним while если неймется... вон Инфо21 таким образом мордовал(дует?) детишек, а Вирт одно время и вовсе исключал for из Оберона.. но потом вернул обратно.. как вы думаете почему?  :D

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #496 : Декабрь 09, 2012, 05:01:39 pm »
Раньше мы уже обсуждали придание конструкциям с for значительно расширенных возможностей, в качестве foreach и др. Почему бы также не использовать его в качестве замены while?

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #497 : Декабрь 09, 2012, 05:11:59 pm »
Раньше мы уже обсуждали придание конструкциям с for значительно расширенных возможностей, в качестве foreach и др. Почему бы также не использовать его в качестве замены while?
....вы самого главного не уяснили... - для того,что бы от них была польза НЕОБХОДИМО в ЯП (на уровне яп) иметь структуры, контейнеры - а с тем что есть в Обероне вполне можно работать и с помощью существующих конструкций... - особых преимуществ расширизмы на них не дают..

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #498 : Декабрь 09, 2012, 06:35:15 pm »
...вы просто не уяснили...;) для массивов наличие того же foreach еще как оправдано.

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #499 : Декабрь 09, 2012, 06:42:31 pm »
...вы просто не уяснили...;) для массивов наличие того же foreach еще как оправдано.
  только в том  случае ЕСЛИ АЛГОРИТМ РЕШЕНИЯ КОНКРЕТНОЙ ЗАДАЧИ  НЕ ЗАВИСИТ ОТ ПОРЯДКА ПРОСМОТРА ЕГО ЭЛЕМЕНТОВ..  ;) - а так.. рантаймовая проверка на выход за его пределы декларируется на уровне языка...

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #500 : Декабрь 09, 2012, 06:44:52 pm »
DIzer, в Обероне for как в Паскале.

Цитировать
9.8. For statements
A for statement specifies the repeated execution of a statement sequence for a given number of times, while a progression of values is assigned to an integer variable called the control variable of the for statement.
ForStatement =
   FOR ident ":=" expression TO expression [BY ConstExpression] DO
   StatementSequence END .
The for statement
FOR v := beg TO end BY inc DO S END
is, if inc > 0, equivalent to
v := beg; lim := end;
WHILE v <= lim DO S; v := v + inc END
and if inc < 0 it is equivalent to
v := beg; lim := end;
WHILE v >= lim DO S; v := v + inc END

Как видите, результаты выражений запоминаются во временных переменных или регистрах.

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #501 : Декабрь 09, 2012, 06:46:53 pm »
DIzer, в Обероне for как в Паскале.

Цитировать
9.8. For statements
A for statement specifies the repeated execution of a statement sequence for a given number of times, while a progression of values is assigned to an integer variable called the control variable of the for statement.
ForStatement =
   FOR ident ":=" expression TO expression [BY ConstExpression] DO
   StatementSequence END .
The for statement
FOR v := beg TO end BY inc DO S END
is, if inc > 0, equivalent to
v := beg; lim := end;
WHILE v <= lim DO S; v := v + inc END
and if inc < 0 it is equivalent to
v := beg; lim := end;
WHILE v >= lim DO S; v := v + inc END

Как видите, результаты выражений запоминаются во временных переменных или регистрах.
какой Паскаль ? вы сейчас говорите про реализацию.. а они могут быть различными.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #502 : Декабрь 09, 2012, 07:10:53 pm »
...вы просто не уяснили...;) для массивов наличие того же foreach еще как оправдано.
  только в том  случае ЕСЛИ АЛГОРИТМ РЕШЕНИЯ КОНКРЕТНОЙ ЗАДАЧИ  НЕ ЗАВИСИТ ОТ ПОРЯДКА ПРОСМОТРА ЕГО ЭЛЕМЕНТОВ..  ;) - а так.. рантаймовая проверка на выход за его пределы декларируется на уровне языка...

Не декларируется.
Y = λf.(λx.f (x x)) (λx.f (x x))

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #503 : Декабрь 09, 2012, 08:10:06 pm »
Цитировать
вы сейчас говорите про реализацию
Это цитата из сообщения о языке Оберон-7. Там ясно поясняется в псевдокоде, что сперва выражение присваивается временной переменной.

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #504 : Декабрь 10, 2012, 01:04:39 am »
...вы просто не уяснили...;) для массивов наличие того же foreach еще как оправдано.
  только в том  случае ЕСЛИ АЛГОРИТМ РЕШЕНИЯ КОНКРЕТНОЙ ЗАДАЧИ  НЕ ЗАВИСИТ ОТ ПОРЯДКА ПРОСМОТРА ЕГО ЭЛЕМЕНТОВ..  ;) - а так.. рантаймовая проверка на выход за его пределы декларируется на уровне языка...

Не декларируется.
ге ге, уже нет?  :D - а я вот припоминаю строчки о невозможности ее отключения

DIzer

  • Гость
Re: Модифицированный синтаксис Оберона
« Ответ #505 : Декабрь 10, 2012, 01:08:31 am »
Цитировать
вы сейчас говорите про реализацию
Это цитата из сообщения о языке Оберон-7. Там ясно поясняется в псевдокоде, что сперва выражение присваивается временной переменной.
тык и я ровно про это -  что в   Оберон-7  этот момент ЖЕСТКО прописан (реализация ОГРАНИЧЕНА)... к радости компиляторостроителей и Алексея (которому нравится ковыряться в дерьме).. и к моему неудовольствию - как пользователя.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #506 : Декабрь 10, 2012, 12:00:57 pm »
В Активном Обероне происходят постоянные изменения. Постепенный переход как-бы не стильно отпугивает труоберонщиков, и в тоже время делает язык все более приближенным к реалиям осеписания.
Вот последние изменения из логов svn:

Major modification for declarations of system procedures / type:

SYSTEM.ADDRESS --> ADDRESS
SYSTEM.SIZE --> SIZE
SYSTEM.ADR --> ADDRESSOF
SYSTEM.SIZEOF --> SIZEOF
SYSTEM.LSH --> LSH
SYSTEM.ROT --> ROT
[SYSTEM.INCR --> INCR: Math Oberon related]
...
Added unary operators (Factors) "ADDRES OF" and "SIZE OF"

...
Added unary operator (Factor) ALIAS OF (MathOberon context). Removed ZEROCOPY.
Semantics: Assignment a := ALIAS OF b zero-copies b to a

Ну и ADDRESS вроде как становится настоящим беззнаковым целым а не алиасом для LONGINT/HUGEINT

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #507 : Декабрь 10, 2012, 01:24:01 pm »
В Активном Обероне происходят постоянные изменения.
линк можно, плз

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #508 : Декабрь 10, 2012, 01:28:34 pm »
Еще по поводу замены while.
Можно дополнить вариантом выноса за скобки счетчика: for...by...do...end;

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Модифицированный синтаксис Оберона
« Ответ #509 : Декабрь 10, 2012, 01:44:43 pm »
линк можно, плз
Так svn, по непонятным причинам доступа простым смертним туда нет, нужно писать слезное письмо с просьбой, но сейчас и емейл не работает.