Автор Тема: Squirrel  (Прочитано 35955 раз)

DddIzer

  • Гость
Re: Squirrel
« Ответ #45 : Апрель 28, 2013, 08:02:59 pm »
Тык в обероне их же нет.
В каком?
например в Астив Обероне  вот это
MODULE M;

PROCEDURE Run* ();
BEGIN
END Run;
BEGIN
 BEGIN
 END;
END M.
компилируется без проблем...

DddIzer

  • Гость
Re: Squirrel
« Ответ #46 : Апрель 28, 2013, 08:10:32 pm »
а вот в Обероне 2 от XDS -  нет...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Squirrel
« Ответ #47 : Апрель 28, 2013, 08:11:56 pm »
Тык в обероне их же нет.
В каком?
например в Астив Обероне  вот это
MODULE M;

PROCEDURE Run* ();
BEGIN
END Run;
BEGIN
 BEGIN
 END;
END M.
компилируется без проблем...
В чисто Виртовском. Глянь грамматику:
http://www.inf.ethz.ch/personal/wirth/Articles/Oberon/Oberon07.Report.pdf
http://www.inf.ethz.ch/personal/wirth/Articles/Oberon/Oberon.Report.pdf

В Обероне-2 и, соответственно, CP тоже нет.
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: Squirrel
« Ответ #48 : Апрель 28, 2013, 08:21:50 pm »

В чисто Виртовском. Глянь грамматику:
http://www.inf.ethz.ch/personal/wirth/Articles/Oberon/Oberon07.Report.pdf
http://www.inf.ethz.ch/personal/wirth/Articles/Oberon/Oberon.Report.pdf

В Обероне-2 и, соответственно, CP тоже нет.
Возможно, просто сейчас ковыряюсь в AO- на предмет мат. расширизмов о которых говорил Kemet.. и заметил это дело.. -а в обычных Оберонах мне и в голову не приходило их использовать.

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #49 : Апрель 28, 2013, 10:05:50 pm »
Раз уж мы офтопим. Хотя, что считать на этом форуме офтопом? ;D

Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Squirrel
« Ответ #50 : Апрель 28, 2013, 10:11:20 pm »
Раз уж мы офтопим. Хотя, что считать на этом форуме офтопом? ;D

Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.
Ну, к Оберону-2 Вирт руку уже мало прикладывал. А вот то, что он оставил их в Обероне-07, что-то да значит, да.
Y = λf.(λx.f (x x)) (λx.f (x x))

Jordan

  • Sr. Member
  • ****
  • Сообщений: 282
    • Просмотр профиля
Re: Squirrel
« Ответ #51 : Апрель 28, 2013, 10:23:38 pm »
Погуглил вопрос. Народ сам в недоумении для чего это нужно. Ещё есть вложенные классы или Внутренний класс.

... ну а если отмести в сторону  вудуизм...

Хорошо сказано. :)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Squirrel
« Ответ #52 : Апрель 29, 2013, 05:30:32 am »
Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.

Вложенные процедуры удобная и нужная штука.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Squirrel
« Ответ #53 : Апрель 29, 2013, 05:51:34 am »
Раз уж мы офтопим. Хотя, что считать на этом форуме офтопом? ;D

Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.
Ну, к Оберону-2 Вирт руку уже мало прикладывал. А вот то, что он оставил их в Обероне-07, что-то да значит, да.

Как оставил? Вроде убирал же???
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Squirrel
« Ответ #54 : Апрель 29, 2013, 05:52:42 am »
Погуглил вопрос. Народ сам в недоумении для чего это нужно. Ещё есть вложенные классы или Внутренний класс.

А ещё в Модуле-2 были вложенные модули, но в Обероне Вирт их выкинул...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Squirrel
« Ответ #55 : Апрель 29, 2013, 06:04:33 am »
Раз уж мы офтопим. Хотя, что считать на этом форуме офтопом? ;D

Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.
Ну, к Оберону-2 Вирт руку уже мало прикладывал. А вот то, что он оставил их в Обероне-07, что-то да значит, да.

Как оставил? Вроде убирал же???
Из своего мейнстрим-оберона -- нет, не убирал. Посмотри репорты уже :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Squirrel
« Ответ #56 : Апрель 29, 2013, 06:22:12 am »
Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.
Вложенные процедуры при компиляции и загрузке находятся в одном пространстве(фрейме), они, по сути, неотделимы от основной процедуры, поэтому попадают в кэш процессора как единое целое, что несколько ускорят работу, а вынесенные во вне процедуры могут снижать производительность изза перезагрузки кэша, лично мы на эту особенность натыкались. И это не только в обероне, но, например, и в фрипаскале (на нём эта проблема и выявилась)...

DddIzer

  • Гость
Re: Squirrel
« Ответ #57 : Апрель 29, 2013, 08:02:58 am »
Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.
Вложенные процедуры при компиляции и загрузке находятся в одном пространстве(фрейме), они, по сути, неотделимы от основной процедуры, поэтому попадают в кэш процессора как единое целое, что несколько ускорят работу, а вынесенные во вне процедуры могут снижать производительность изза перезагрузки кэша, лично мы на эту особенность натыкались. И это не только в обероне, но, например, и в фрипаскале (на нём эта проблема и выявилась)...
Нет.. ибо Оберон не определяет понятие кэша процессора.. - просто это сохранение поддержки  классического процедурного стиля  разработки.. Это когда сложная задача разбивается на кучу НЕЗАВИСИМЫХ простых. Каждой простой задаче соответствует некоторый алгоритм (который можно рассматривать как составной). Так вот, вложенные процедуры обеспечивают возможность независимости разбиений (т.е. нахождение решения подзадачи можно рассматривать как отдельное, независимое (в контексте основной задачи) действие).

Valery

  • Full Member
  • ***
  • Сообщений: 101
    • Просмотр профиля
Re: Squirrel
« Ответ #58 : Апрель 29, 2013, 08:55:35 am »
Для чего нужны вложенные процедуры? В си их нет. Значит без них программировать можно. Но Вирт их в оберуне 2 оставил.

Вложенные процедуры удобная и нужная штука.
ИМХО только в процедурном программировании.
Главное же - доступ к объемлющему контексту.
Так реализация на уровне модуля это уже обеспечивает - доступ к объемлющему контексту.
Может быть я не вижу, но я пока не открыл для себя такой уж большой выгоды и полезности именно вложенных процедур.
А транслятор усложняет... :)
Если нетрудно, приведите доводы в пользу вложенности.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Squirrel
« Ответ #59 : Апрель 29, 2013, 12:05:13 pm »
Нет..
Чего "нет"? Вы вообще читали о чём я написал? Я написал об одной возможной проблеме, которая решается вложенными процедурами, ни больше, ни меньше.