OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 17 Ноябрь, 2019 17:46

Часовой пояс: UTC + 3 часа




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

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 832
Откуда: Казань
Навеяно этой темой "С++ расширение языке": http://rsdn.ru/forum/philosophy/3861001.1.aspx :)
Только наоборот. Что бы вы удалили из классического Оберона?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что бы вы удалили из Оберона?
СообщениеДобавлено: Четверг, 15 Июль, 2010 19:49 

Зарегистрирован: Четверг, 23 Апрель, 2009 18:01
Сообщения: 219
Удалил бы RETURN, вернул паскалевскую переменную RESULT, удалил LOOP, добавил бы нативный тип STRING.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что бы вы удалили из Оберона?
СообщениеДобавлено: Четверг, 15 Июль, 2010 19:58 
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что бы вы удалили из Оберона?
СообщениеДобавлено: Четверг, 15 Июль, 2010 20:23 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 832
Откуда: Казань
Нашел статью о которой говорил, приложил к сообщению.
Вот что Вирт пишет: "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 КБ]
Скачиваний: 247
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что бы вы удалили из Оберона?
СообщениеДобавлено: Пятница, 16 Июль, 2010 09:40 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Я бы убрал:
  • невидимость переменных от начала процедуры до точки объявления
  • глобальные переменные
  • вложенные процедуры
  • LOOP
  • RETURN
  • указатели, кроме указателей на запись

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что бы вы удалили из Оберона?
СообщениеДобавлено: Пятница, 16 Июль, 2010 12:20 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 327
Откуда: Ленинград, Емельянов Алексей Николаевич
Я бы оставил все как есть. Локальные процедуры, как уже говорилось, весьма полезны. Остальное (LOOP и RETURN) иногда тоже полезно. В КП итак "гайки" закручены достаточно плотно, а некоторый "люфт" должен быть. Так более гармонично. Что касается STRING, чем TextModel не STRING ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB