Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Переменные "по месту" и автоматическое приведение типа https://zx.oberon.org/forum/viewtopic.php?f=86&t=207 |
Страница 3 из 4 |
Автор: | vlad [ 30 мар 2018, 22:32 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
Сергей Оборотов писал(а): geniepro писал(а): в обероне вообще нет вложенных процедур Since procedures may be declared as local objects too, procedure declarations may be nested. Вся путаница из-за того, что вложенные процедуры в обероне не могут быть замыканиями. Это такие недо-процедуры, которые сбивают с толку: с одной стороны синтаксис как бы подразумевает замыкание (поскольку есть доступ к внешим переменным), с другой стороны семантика запрещает с этой функцией делать что-либо полезное (передать вниз, вернуть наверх), можно только вызвать. Отсюда и вся палитра мнений от "их нет" от просветленных функциональщиков, до "конечно они есть" от оберонщиков с EBNF. |
Автор: | Comdiv [ 31 мар 2018, 00:25 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
vlad писал(а): семантика запрещает с этой функцией делать что-либо полезное ... можно только вызвать. угар
... просветленных функциональщиков |
Автор: | Comdiv [ 31 мар 2018, 00:35 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
geniepro писал(а): Замыканиями могут быть не только функции. Вот в смоллтоке нет функций, но есть сообщения Дело было совсем не об этом. Но раз уж Вы затронули эту тему, то не подскажите, чем являются "сообщения", "методы" и подобные им понятия по сути? |
Автор: | Сергей Оборотов [ 31 мар 2018, 08:21 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
Comdiv писал(а): vlad писал(а): семантика запрещает с этой функцией делать что-либо полезное ... можно только вызвать. угар... просветленных функциональщиков |
Автор: | geniepro [ 31 мар 2018, 19:33 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
vlad писал(а): Сергей Оборотов писал(а): geniepro писал(а): в обероне вообще нет вложенных процедур Since procedures may be declared as local objects too, procedure declarations may be nested. Вся путаница из-за того, что вложенные процедуры в обероне не могут быть замыканиями. Это такие недо-процедуры, которые сбивают с толку: с одной стороны синтаксис как бы подразумевает замыкание (поскольку есть доступ к внешим переменным), с другой стороны семантика запрещает с этой функцией делать что-либо полезное (передать вниз, вернуть наверх), можно только вызвать. Отсюда и вся палитра мнений от "их нет" от просветленных функциональщиков, до "конечно они есть" от оберонщиков с EBNF. Да нет, мне как-то попадалось, что в оберонах нет вложенных процедур, но полистал сейчас описания разных оберонов -- вроде они есть. Странно... ЗЫ. Наверное, я спутал обероны с зонноном -- там до сих пор вложенные процедуры не реализованы, хотя в описании вроде имеются... PPS. Кстати, в статье On Programming Styles Вирт пишет: Niklaus Wirth, 24.3.2008 писал(а): 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.
|
Автор: | geniepro [ 01 апр 2018, 00:42 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
Comdiv писал(а): geniepro писал(а): Замыканиями могут быть не только функции. Вот в смоллтоке нет функций, но есть сообщения Дело было совсем не об этом. Но раз уж Вы затронули эту тему, то не подскажите, чем являются "сообщения", "методы" и подобные им понятия по сути? Зависит от набора базовых концепций. В смоллтоке, где всё есть объект, сообщение будет объектом. В языке же где всё -- функция, это же самое сообщение уже будет функцией. |
Автор: | Сергей Оборотов [ 01 апр 2018, 16:49 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
geniepro писал(а): PPS. Кстати, в статье On Programming Styles Вирт пишет: Тертый калач уже.
Niklaus Wirth, 24.3.2008 писал(а): Of course this is no dogma, and rules allow for justified exceptions. |
Автор: | geniepro [ 01 апр 2018, 19:50 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
Сергей Оборотов писал(а): geniepro писал(а): PPS. Кстати, в статье On Programming Styles Вирт пишет: Тертый калач уже.Niklaus Wirth, 24.3.2008 писал(а): Of course this is no dogma, and rules allow for justified exceptions. У меня в голове отложилось, что Вирт, наконец-то, начал учитывать опыт сишников последних десятилетий, вот я и решил, что он избавился от вложенных процедур. Он же довольно смело выбрасывал малополезные фишки из Оберона. А тут вдруг взял да оставил, нелогично как-то... Вложенные модули убрал, мог бы и вложенные процедуры убрать, хуже не было бы... |
Автор: | S.Atan [ 03 апр 2018, 22:04 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
Блин, во вы тут дебаты дебачите... На сколько я знаю, Вальдемарыч преследовал несколько целей в языке. Но две - самые важные. 1: Язык должен быть семантически близко похожим на разговорный 2: Не должно быть неоднозначностей. Понятное дело, что человек кодировал не для себя в большинстве, а для студентов. А семантически близкий к разговорному легче донести до аудитории... Код: "OBERON"
Ну вот если в одну строку то: Код: "OBERON"
Вот согласитесь, даже некоторые ту@бни-школьники и те поймут с грехом пополам что происходит! Поэтому нет в Виртовских языках нужных и не нужных конструкций. У сишников и мышление то даже не машинное, а чисто механическо-интуитивное, то есть программирование для них - это система и набор команд-символов и писать надо на машинном языке, когда как у паскалистов - интуитивно-логическое, то есть писать что ты хочешь от машины на семантически человеческом языке... Ну с неоднозначностями понятно... Кстати, Вирт и доказал, что процессорная техника развививается не в сторону оптимизаций, а в сторону наращивания мощьностей, поэтому линейный поиск в его последних компиляторах работает быстрее (или так же) бинарного (нонсес однако), от этого он не особо мудрит с конструкциями языка, да и мудрить то нечего пока не будут менять архитектуру процессоров... |
Автор: | geniepro [ 04 апр 2018, 06:35 ] |
Заголовок сообщения: | Re: Переменные "по месту" и автоматическое приведение типа |
S.Atan писал(а): 1: Язык должен быть семантически близко похожим на разговорный Языки, близкие к разговорному -- Кобол и SQL (из числа самых успешных). Оберон на них как-то не особо смахивает. Ада-83 куда больше соответствует этому требованию, чем Оберон. S.Atan писал(а): Кстати, Вирт и доказал, что процессорная техника развививается не в сторону оптимизаций, а в сторону наращивания мощьностей, поэтому линейный поиск в его последних компиляторах работает быстрее (или так же) бинарного (нонсес однако), от этого он не особо мудрит с конструкциями языка, да и мудрить то нечего пока не будут менять архитектуру процессоров... Действительно нонсенс. Линейный поиск в списке у него работает не быстрее бинарного, а просто достаточно быстро на малых количествах элементов, что бы не заморачиваться бинарным поиском в словаре. Это, кстати, показатель недостаточной продвинутости языка -- из-за отсутствия параметрического полиморфизма приходится на каждый тип данных делать свой тип списка или словаря, свой поиск и т.д. Даже в той же Аде 83 года были родовые пакеты, родовые процедуры и функции -- там не надо было заморачиваться с этими постоянными самодельными реализациями поисков, можно просто использовать библиотечные средства. У Оберона крайне устаревшая система типов (про синтаксис уже молчу)... |
Страница 3 из 4 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |