OberonCore
https://forum.oberoncore.ru/

Что бы вы удалили из Оберона?
https://forum.oberoncore.ru/viewtopic.php?f=30&t=2742
Страница 1 из 1

Автор:  Rifat [ Четверг, 15 Июль, 2010 19:42 ]
Заголовок сообщения:  Что бы вы удалили из Оберона?

Навеяно этой темой "С++ расширение языке": http://rsdn.ru/forum/philosophy/3861001.1.aspx :)
Только наоборот. Что бы вы удалили из классического Оберона?

Я бы удалил цикл LOOP и разрешил ставить RETURN только в конце функции. Все остальное оставил бы таким же.
Еще где-то читал статью, где Вирт пишет, что он не использует доступ к переменным процедур другого уровня. Что нужно обращаться только к строго локальным переменным самой процедуры или к строго глобальным переменным.
Если вы считаете, что то что я хочу удалить не в коем случае убирать нельзя, то хотелось вы выслушать аргументы.

Автор:  Александр Шостак [ Четверг, 15 Июль, 2010 19:49 ]
Заголовок сообщения:  Re: Что бы вы удалили из Оберона?

Удалил бы RETURN, вернул паскалевскую переменную RESULT, удалил LOOP, добавил бы нативный тип STRING.

Автор:  Info21 [ Четверг, 15 Июль, 2010 19:58 ]
Заголовок сообщения:  Re: Что бы вы удалили из Оберона?

Rifat писал(а):
читал статью, где Вирт пишет, что он не использует доступ к переменным процедур другого уровня. Что нужно обращаться только к строго локальным переменным самой процедуры или к строго глобальным переменным. ..
Небольшие локальные процедуры для более четкой структуризации кода очень полезны. Возиться с параметрами там может быть сложнее во всех отношениях. Примеры есть в главе об алгоритмах с возвратом в новой книжке "Алгоритмы и структуры данных".

Можно обойтись и одноуровневыми процедурами, но контекст передавать громоздко выходит.

Автор:  Rifat [ Четверг, 15 Июль, 2010 20:23 ]
Заголовок сообщения:  Re: Что бы вы удалили из Оберона?

Нашел статью о которой говорил, приложил к сообщению.
Вот что Вирт пишет: "In summary, the new rule of good style is: Avoid nesting of procedures and use global variables
sparingly! Of course this is no dogma, and rules allow for justified exceptions." Niklaus Wirth, 24.3.2008

Вложения:
Styles.pdf [15.07 КБ]
Скачиваний: 428

Автор:  Сергей Прохоренко [ Пятница, 16 Июль, 2010 09:40 ]
Заголовок сообщения:  Re: Что бы вы удалили из Оберона?

Я бы убрал:
  • невидимость переменных от начала процедуры до точки объявления
  • глобальные переменные
  • вложенные процедуры
  • LOOP
  • RETURN
  • указатели, кроме указателей на запись

Я бы добавил:
  • тип STRING
  • четкое деление на процедуры и функции - с автоматическим предотвращением побочных эффектов в функциях
  • атрибут INLINE для процедур и функций
  • атрибут переменной RESULT
  • атрибут формального параметра процедуры OUT (как в Ada)
  • автоматическое предотвращение использования неинициализированных переменных

Автор:  Axcel [ Пятница, 16 Июль, 2010 12:20 ]
Заголовок сообщения:  Re: Что бы вы удалили из Оберона?

Я бы оставил все как есть. Локальные процедуры, как уже говорилось, весьма полезны. Остальное (LOOP и RETURN) иногда тоже полезно. В КП итак "гайки" закручены достаточно плотно, а некоторый "люфт" должен быть. Так более гармонично. Что касается STRING, чем TextModel не STRING ?

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