OberonCore
https://forum.oberoncore.ru/

Project Oberon (New Edition 2013)
https://forum.oberoncore.ru/viewtopic.php?f=137&t=5106
Страница 2 из 2

Автор:  Wlad [ Пятница, 17 Май, 2019 10:36 ]
Заголовок сообщения:  Re: "Проект Оберон"

Comdiv писал(а):
Цитата:
Objects declared in a procedure P are not accessible within a procedure Q that is itself local to P. That is, objects must be either strictly local or global in order to be accessible

Что-то вообще странное. Получается, переиначены на корню классические правила видимостей.
Обоснования есть такому кардинальному изменению идеологии?

Автор:  Wlad [ Пятница, 17 Май, 2019 10:37 ]
Заголовок сообщения:  Re: "Проект Оберон"

Comdiv писал(а):
Цитата:
Objects declared in a procedure P are not accessible within a procedure Q that is itself local to P. That is, objects must be either strictly local or global in order to be accessible

Что-то вообще странное. Получается, переиначены на корню классические правила видимостей.
Обоснования есть такому кардинальному изменению идеологии?

Автор:  Comdiv [ Пятница, 17 Май, 2019 10:52 ]
Заголовок сообщения:  Re: Project Oberon (New Edition 2013)

Упрощается генерация кода. Локальные же процедуры остаются исключительно для удобства, чтобы не выносить в область видимости модуля специфичный для процедуры код.

Автор:  Wlad [ Воскресенье, 19 Май, 2019 14:06 ]
Заголовок сообщения:  Re: Project Oberon (New Edition 2013)

Comdiv писал(а):
Упрощается генерация кода. Локальные же процедуры остаются исключительно для удобства, чтобы не выносить в область видимости модуля специфичный для процедуры код.

Да, но меняется набор доступных сущностей для таких вложенных процедур.
А мне, например, в Дельфи или КП, как раз логика ограничения вложенностей процедур, как "утилит" работы с внутренними переменными процедур, куда они были вложены, очень даже нравилась. Всё логично было. В Си мне этого часто ОЧЕНЬ недостовало. Там происходило "замусоривание" именами в ненужных уровнях и областях видимости.

Автор:  Comdiv [ Воскресенье, 19 Май, 2019 21:41 ]
Заголовок сообщения:  Re: Project Oberon (New Edition 2013)

По опыту кодирования в Оберон>=07 замусоривания и с ним не происходит, но с локальными переменными работать надо, передавая их в качестве параметров локальным же процедурам. На мой взгляд, это правильно. Но, конечно, следовало бы разрешить использовать локальные константы, типы и процедуры.

Кстати, GNU C поддерживает локальные функции в паскалевском смысле.

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