OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 09 Декабрь, 2019 00:21

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




Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 25 Июль, 2009 13:09 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Algo писал(а):
И в чём заключается такая великая цена за CASE?
P.S. Сам очень редко пользуюсь и CASE и вложенными процедурами.
Тут, видимо, всё дело в личных пристрастиях. CASE мне было бы жалко выкинуть из языка, а вот вложенными процедурами я почти никогда не пользуюсь. И не испытываю при этом никаких неудобств.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 13:34 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Geniepro писал(а):
igor писал(а):
Не секрет, что в Си функции не могут быть вложенными.
Это один из самых больших недостатков Си, имхо.
А какие аргументы Вы можете выдвинуть против плоской модели модуля? Я имею в виду чем Вам так дороги вложенные процедуры?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 13:40 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 327
Откуда: Ленинград, Емельянов Алексей Николаевич
Ну не знаю, я пользуюсь локальными процедурами и довольно часто, по одной простой причине: видны параметры и локальные переменные объемлющей процедуры.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 14:35 

Зарегистрирован: Понедельник, 19 Март, 2007 09:40
Сообщения: 142
Откуда: USA, Israel, Belarus
Несомненно, у вложенных процедур есть минусы так и определенные плюсы.
Кстати были еще и локальные модули в Modula-2, и ничего вроде как и без них можно.
Представте как можно было наворотить: внутри процедуры -- модуль со своими процедурами и т.д.

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

На мой взгляд, для Oberon -- это не принципиальный вопрос.
Можно смотреть на вложенные процедуры как на некий syntax sugar.
Если нужен действительно минимальный ЯП (с простым компилятором), то без них можно обойтись.
Если готовы пожертвовать усложнением компилятора, то можно и оставить.

Все таки это не вопрос безопасности или корректности (хотя некая неоднозначность их использования присутствует).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 14:53 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
igor писал(а):
А какие аргументы Вы можете выдвинуть против плоской модели модуля?
Неудобно.
igor писал(а):
Я имею в виду чем Вам так дороги вложенные процедуры?
Удобно.
В ФП, где всё вертится вокруг функций, вообще невозможно обойтись без локальных функций.
Модули -- хорошо, но у них другая задача, и локальные процедуры модули не отменяют.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 15:00 

Зарегистрирован: Понедельник, 19 Март, 2007 09:40
Сообщения: 142
Откуда: USA, Israel, Belarus
Не думаю что локальные функции в ФП имеет смысл сравнивать с локальными процедурами ИП


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 15:05 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
slava писал(а):
Если нужен действительно минимальный ЯП (с простым компилятором), то без них можно обойтись.
Если готовы пожертвовать усложнением компилятора, то можно и оставить.
Я привык пользоваться обратной логикой:

Если какая-нибудь фенечка действительно нужна, то её нужно включить в язык не взирая на большое усложнение компилятора, которое она за собой тянет.
Если же эта фенечка не нужна, то её следует исключить из языка, даже если её реализация не сильно усложняла компилятор.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 15:10 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Geniepro писал(а):
Неудобно.
Не хочу показаться нудным, но чем не удобна плоская модель модуля? Кроме того, что я уже назвал:
igor писал(а):
Согласен с тем, что если все локальные процедуры заменить на глобальные, то им как-то надо передать параметры той процедуры, в которой они были, а это не всегда удобно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 15:30 

Зарегистрирован: Понедельник, 19 Март, 2007 09:40
Сообщения: 142
Откуда: USA, Israel, Belarus
Давайте продолжим упрощать: выкинем возможность объявлять константы и типы внутри процедур.
Как Вам такая идея?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 15:45 

Зарегистрирован: Воскресенье, 08 Март, 2009 17:54
Сообщения: 372
slava писал(а):
Давайте продолжим упрощать: выкинем возможность объявлять константы и типы внутри процедур.
Как Вам такая идея?

А что, можно. Но только типы, константы лучше оставить.
Давайте ещё что-нибудь упростим, прям аж руки чешутся :D.
Например сборщик мусора или "расширяемость" записей :wink:.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 16:07 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
slava писал(а):
Давайте продолжим упрощать: выкинем возможность объявлять константы и типы внутри процедур.
Как Вам такая идея?
Не поддерживаю


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 16:24 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Algo писал(а):
Давайте ещё что-нибудь упростим, прям аж руки чешутся :D.
Например сборщик мусора или "расширяемость" записей :wink:.
Можно, почему бы и нет? Всю жизнь на сях прожили, и дальше проживём... :lol:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 16:41 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Geniepro писал(а):
Всю жизнь на сях прожили, и дальше проживём... :lol:
Это Ваш выбор. У меня другой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 17:45 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
igor писал(а):
Я имел в виду правило: "Процедуры не могут быть вложенными" (см. название темы)
Добавление этого правила усложняет описание языка. Какая в этом необходимость?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 17:47 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
igor писал(а):
slava писал(а):
Давайте продолжим упрощать: выкинем возможность объявлять константы и типы внутри процедур.
Как Вам такая идея?
Не поддерживаю
Спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 21:00 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
slava писал(а):
Но если смотреть на языки, в которых нет нормальной концепции модулей, то для них вложенные функции несколько облегчили б жизнь.


Да? Чем? Мне вот в C++ вложенные функции (еще лучше - анонимные) нужны были бы только для одного - closures удобнее делать :) Однако в обероне вложенные функции для это все равно не предназначены. Так что можно смело выкидывать :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 21:04 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Algo писал(а):
Давайте ещё что-нибудь упростим, прям аж руки чешутся :D.
Например сборщик мусора или "расширяемость" записей :wink:.


Получите обрезанный C с паскалевским синтаксисом...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 21:24 

Зарегистрирован: Понедельник, 19 Март, 2007 09:40
Сообщения: 142
Откуда: USA, Israel, Belarus
Получим Oberon 0, но и в этом есть смысл.

На чистом C тоже все еще "колбасят".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 21:45 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
slava писал(а):
Получим Oberon 0, но и в этом есть смысл.


Не, нету. Хэкать железо труднее (будет один сплошной SYSTEM), а все грабли C присутствуют (невалидные указатели т. д.).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Июль, 2009 22:01 

Зарегистрирован: Понедельник, 19 Март, 2007 09:40
Сообщения: 142
Откуда: USA, Israel, Belarus
Vlad писал(а):
Хэкать железо труднее.
Вот, даже Вы находите приемущества.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

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