Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 20 июн 2019, 10:04

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: 30 мар 2018, 22:32 
Не в сети

Сообщения: 100
Сергей Оборотов писал(а):
geniepro писал(а):
в обероне вообще нет вложенных процедур
Since procedures may be declared as local objects too, procedure declarations may be nested.


Вся путаница из-за того, что вложенные процедуры в обероне не могут быть замыканиями. Это такие недо-процедуры, которые сбивают с толку: с одной стороны синтаксис как бы подразумевает замыкание (поскольку есть доступ к внешим переменным), с другой стороны семантика запрещает с этой функцией делать что-либо полезное (передать вниз, вернуть наверх), можно только вызвать. Отсюда и вся палитра мнений от "их нет" от просветленных функциональщиков, до "конечно они есть" от оберонщиков с EBNF.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 31 мар 2018, 00:25 
Не в сети

Сообщения: 128
vlad писал(а):
семантика запрещает с этой функцией делать что-либо полезное ... можно только вызвать.
...
просветленных функциональщиков
угар


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 31 мар 2018, 00:35 
Не в сети

Сообщения: 128
geniepro писал(а):
Замыканиями могут быть не только функции. Вот в смоллтоке нет функций, но есть сообщения

Дело было совсем не об этом. Но раз уж Вы затронули эту тему, то не подскажите, чем являются "сообщения", "методы" и подобные им понятия по сути?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 31 мар 2018, 08:21 
Не в сети

Сообщения: 11
Comdiv писал(а):
vlad писал(а):
семантика запрещает с этой функцией делать что-либо полезное ... можно только вызвать.
...
просветленных функциональщиков
угар
Мощно порезали.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 31 мар 2018, 19:33 
Не в сети

Сообщения: 204
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.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 01 апр 2018, 00:42 
Не в сети

Сообщения: 204
Comdiv писал(а):
geniepro писал(а):
Замыканиями могут быть не только функции. Вот в смоллтоке нет функций, но есть сообщения

Дело было совсем не об этом. Но раз уж Вы затронули эту тему, то не подскажите, чем являются "сообщения", "методы" и подобные им понятия по сути?

Зависит от набора базовых концепций. В смоллтоке, где всё есть объект, сообщение будет объектом.
В языке же где всё -- функция, это же самое сообщение уже будет функцией.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 01 апр 2018, 16:49 
Не в сети

Сообщения: 11
geniepro писал(а):
PPS. Кстати, в статье On Programming Styles Вирт пишет:
Niklaus Wirth, 24.3.2008 писал(а):
Of course this is no dogma, and rules allow for justified exceptions.
Тертый калач уже.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 01 апр 2018, 19:50 
Не в сети

Сообщения: 204
Сергей Оборотов писал(а):
geniepro писал(а):
PPS. Кстати, в статье On Programming Styles Вирт пишет:
Niklaus Wirth, 24.3.2008 писал(а):
Of course this is no dogma, and rules allow for justified exceptions.
Тертый калач уже.

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 03 апр 2018, 22:04 
Не в сети
Администратор
Аватара пользователя

Сообщения: 187
Блин, во вы тут дебаты дебачите... :shock: :D :D :D

На сколько я знаю, Вальдемарыч преследовал несколько целей в языке.
Но две - самые важные.
1: Язык должен быть семантически близко похожим на разговорный
2: Не должно быть неоднозначностей.

Понятное дело, что человек кодировал не для себя в большинстве, а для студентов. А семантически близкий к разговорному легче донести до аудитории...

Код: "OBERON"
  1. ПРОЦЕДУРА Сумма():ЦЕЛОЕ;
  2. ПЕРЕМЕННЫЕ
  3. r: ЦЕЛОЕ;
  4. НАЧАЛО
  5. r := 0;
  6. ОТ i:=0 ДО 10 ПОВТОР
  7. НАЧАЛО
  8. r := r + i;
  9. КОНЕЦ ПОВТОР;
  10. РЕЗУЛЬТАТ r;
  11. КОНЕЦ Сумма;


Ну вот если в одну строку то:
Код: "OBERON"
  1. ПРОЦЕДУРА Сумма():ЦЕЛОЕ; ПЕРЕМЕННЫЕ r: ЦЕЛОЕ; НАЧАЛО r := 0; ОТ i:=0 ДО 10 ПОВТОР НАЧАЛО r := r + i; КОНЕЦ ПОВТОР; РЕЗУЛЬТАТ r; КОНЕЦ Сумма;


Вот согласитесь, даже некоторые ту@бни-школьники и те поймут с грехом пополам что происходит!
Поэтому нет в Виртовских языках нужных и не нужных конструкций.
У сишников и мышление то даже не машинное, а чисто механическо-интуитивное, то есть программирование для них - это система и набор команд-символов и писать надо на машинном языке, когда как у паскалистов - интуитивно-логическое, то есть писать что ты хочешь от машины на семантически человеческом языке...

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 04 апр 2018, 06:35 
Не в сети

Сообщения: 204
S.Atan писал(а):
1: Язык должен быть семантически близко похожим на разговорный

Языки, близкие к разговорному -- Кобол и SQL (из числа самых успешных). Оберон на них как-то не особо смахивает. Ада-83 куда больше соответствует этому требованию, чем Оберон.

S.Atan писал(а):
Кстати, Вирт и доказал, что процессорная техника развививается не в сторону оптимизаций, а в сторону наращивания мощьностей, поэтому линейный поиск в его последних компиляторах работает быстрее (или так же) бинарного (нонсес однако), от этого он не особо мудрит с конструкциями языка, да и мудрить то нечего пока не будут менять архитектуру процессоров...

Действительно нонсенс. Линейный поиск в списке у него работает не быстрее бинарного, а просто достаточно быстро на малых количествах элементов, что бы не заморачиваться бинарным поиском в словаре.
Это, кстати, показатель недостаточной продвинутости языка -- из-за отсутствия параметрического полиморфизма приходится на каждый тип данных делать свой тип списка или словаря, свой поиск и т.д.
Даже в той же Аде 83 года были родовые пакеты, родовые процедуры и функции -- там не надо было заморачиваться с этими постоянными самодельными реализациями поисков, можно просто использовать библиотечные средства.
У Оберона крайне устаревшая система типов (про синтаксис уже молчу)...


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

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


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB