OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 21 Ноябрь, 2019 19:08

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




Начать новую тему Ответить на тему  [ Сообщений: 132 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 15 Январь, 2011 22:23 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 700
Откуда: Псков
2 Geniepro
Ну , на том и остановимся. Удачи!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 15 Январь, 2011 22:27 

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

Вообще, всё это сильно зависит от языка программирования. Язык определяет сознание, да...

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

Имхо, если внутри выражения производятся действия, то это усложняет анализ и понимание этого выражения. Придётся учитывать, что за действие оно ещё делает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 01:14 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3109
Откуда: Астрахань
Geniepro писал(а):
Побочные эффекты -- это действия, которых никто не ожидал в данном месте.
Идёте себе, никого не трогаете -- бум! удар по почкам из-за угла от соседа, которого знаете сто лет. Неожиданно...

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

Не правда ваша. Есть совершенно четкое определение побочного эффекта. Побочный эффект - это изменение функцией нелокальных переменных. Жуткие вещи происходят только в случаях, чем-то похожих на UB в С++.
Вот в С++ не рекомендуется писать: i = ++i = i++;
Аналогично в и в функции не рекомендуется изменять нелокальные переменные, например:
Код:
int z = 0;
int ZZ(int &x)
{ x = z + x;  z = z+x; }
// ...
z = ZZ(z);

Вот и разберись, что тут с я происходит.
А вообще побочный эффект - нормальный прием, если у вас данные в общем блоке, например (как в фортране).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 01:21 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Валерий Лаптев писал(а):
Не правда ваша. Есть совершенно четкое определение побочного эффекта. Побочный эффект - это изменение функцией нелокальных переменных.
http://ru.wikipedia.org/wiki/Побочный_эффект_(программирование)
Цитата:
Побо́чный эффе́кт функции — возможность в процессе выполнения своих вычислений: читать и модифицировать значения глобальных переменных, осуществлять операции ввода/вывода, реагировать на исключительные ситуации, вызывать их обработчики. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата вычислятся разные значения. Такие функции называются недетерминированными функциями с побочными эффектами.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 18:26 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 959
Откуда: Киев
Alexey Veselovsky писал(а):
jsr они же разные :-) Т.е. это же просто текстовое описание интерфейсов и семантики.
В т.ч. не для мобилок. В основном реализуются на яве.
Есть например JSR 32 -- спецификация на реализацию sip-либы. Там определен набор интерфейсов и семантики которую они должны реализовывать. Ну и все. Подгружаем конкретную реализацию, дергаем за интерфейсы. Больше нам о реализации знать ничего не надо.

И естественно это дело от jvm не зависит от никак. Если это конечно jvm а не какое-то левое не сертифицированное поделие.
В том-то и дело, что они разные. Я так понимаю, jsr 32 не зависит ни отчего кроме других библиотек явы, поэтому его можно реализовать чисто на яве(хотя не обязательно что именно так и будет). Но есть ещё и jsr 75 для доступа к файловой системе и jsr 179 для определения местонахождения, которые зависят от нижележащего программного слоя.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 18:31 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 959
Откуда: Киев
Geniepro писал(а):
Валерий Лаптев писал(а):
Не правда ваша. Есть совершенно четкое определение побочного эффекта. Побочный эффект - это изменение функцией нелокальных переменных.
http://ru.wikipedia.org/wiki/Побочный_эффект_(программирование)
Цитата:
Побо́чный эффе́кт функции — возможность в процессе выполнения своих вычислений: читать и модифицировать значения глобальных переменных, осуществлять операции ввода/вывода, реагировать на исключительные ситуации, вызывать их обработчики. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата вычислятся разные значения. Такие функции называются недетерминированными функциями с побочными эффектами.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 20:24 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Comdiv писал(а):
Цитата:
Побо́чный эффе́кт функции — возможность в процессе выполнения своих вычислений: читать и модифицировать значения глобальных переменных, осуществлять операции ввода/вывода, реагировать на исключительные ситуации, вызывать их обработчики. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата вычислятся разные значения. Такие функции называются недетерминированными функциями с побочными эффектами.
По-моему, эта цитата подтверждает утверждение Валерия Лаптева. Ведь если процедура меняет значения параметров-переменных, то повторный вызов с теми же переменными будет вызовом с другим набором значений.
А упоминание про ввод/вывод и обработку исключений Вы пропустили в этой цитате?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 20:32 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 21:14 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
Geniepro, видимо, думает, что изменение нелокальных переменных -- это непременно присваивание.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 22:40 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
igor писал(а):
Geniepro писал(а):
Побочные эффекты -- это действия, которых никто не ожидал в данном месте.
Идёте себе, никого не трогаете -- бум! удар по почкам из-за угла от соседа, которого знаете сто лет. Неожиданно...
Красочное описание :D Но не раскрывает сути явления.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Январь, 2011 22:42 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Info21 писал(а):
Geniepro, видимо, думает, что изменение нелокальных переменных -- это непременно присваивание.

Причём здесь нелокальные переменные?
Да, и как ещё можно изменять переменные, кроме как присваиванием им новых значений?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Январь, 2011 00:54 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
Geniepro писал(а):
Info21 писал(а):
Geniepro, видимо, думает, что изменение нелокальных переменных -- это непременно присваивание.

Причём здесь нелокальные переменные?
Да, и как ещё можно изменять переменные, кроме как присваиванием им новых значений?
Притом, что В.Л. о них говорил.
В.Л. правильно сказал, для краткости. Не диссертация небось.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Январь, 2011 06:31 

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

Конечно, у меня нет сомнений, что Вы прекрасно всё понимаете. Я за то, чтобы определения были более чёткими :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 22 Январь, 2011 23:36 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
igor писал(а):
Я за то, чтобы определения были более чёткими :)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Февраль, 2011 20:34 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3109
Откуда: Астрахань
На РСДН было интересное обсуждение о высокоуровневости языков.
Топикстартер написал некое резюме
https://docs.google.com/document/pub?id ... OaQ9JVpC3s
Цитата:
Программа как сообщение

Изучая этот вопрос я искал модель, которая бы описывала программирование таким образом, что бы можно было говорить о выразительности и уровне языка опираясь на какие-то четко оформленные критерии. После того, как один из участников упомянул теорию информации Клода Шеннона, у меня появилась идея рассматривать программирование как акт коммуникации между программистом и компьютером, а программу - как сообщение, передаваемое от программиста к компьютеру, и содержащее определенный объем информации, выраженной при помощи некоторого языка.

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

Конечное сообщение, которое получает компьютер, должно содержать некоторый минимальный набор информации, который необходим ему для того, что бы выполнить требуемые действия. Меньше этого объема информации компьютер получить не может, иначе его инструкции будут неполными.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 02 Февраль, 2011 11:15 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
И всё бы ничего, но компьютер должен быть разумным, чтобы воспринимать информацию. А сейчас он её не воспринимает, получая только данные. Соответственно, и сообщения (в широком смысле) он получить не в состоянии, поскольку их нужно интерпретировать (в широком смысле), а компьютер получает и обрабатывает только конкретные команды.

Но идея ничего себе. В общем случае её вряд ли решить в обозримом будущем, но если работать над частными случаями, то в ближайшем будущем возможно что-нибудь и появилось бы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 02 Февраль, 2011 11:33 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3109
Откуда: Астрахань
Ну, если вспомнить схемку канала передачи сообщения, то там перед каналом есть кодер, а после канала - декодер.
Программист - кодер, а компилятор - декодер.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 02 Февраль, 2011 14:02 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 144
Откуда: Россия, Питер
Valery Solovey писал(а):
И всё бы ничего, но компьютер должен быть разумным, чтобы воспринимать информацию.

А вот совершенно и не факт. Что есть «информация»? Не те же ли это «данные»?
Valery Solovey писал(а):
А сейчас он её не воспринимает, получая только данные.

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

Т. е., имхо, мозг суть процессор, обрабатывающий данные и вырабатывающий команды.
Разум, опять же, имхо, есть ни что иное, как наблюдаемое поведение системы, примеренное Наблюдателем на себя. Если Наблюдатель допускает в отношении себя подобное поведение хотя бы в какой-то мере, система будет признана наделенной разумом, если не допускает — система будет признана не имеющей разума.

Разум трансцендентен по отношению к мозгу. Мозг это машина, а разум не существует, существует разумное поведение : )

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

Может Вселенная это нечто закодированное Б-гом и скармливаемое мозгу-процессору с неизвестными для нас целями?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 02 Февраль, 2011 15:59 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Цитата:
Может Вселенная это нечто закодированное Б-гом и скармливаемое мозгу-процессору с неизвестными для нас целями?

Давно пора! Нету никакой "вселенной". Я , вот, давно подозреваю тут жульничество какое-то.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 02 Февраль, 2011 17:32 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Ильченко Эдуард писал(а):
Valery Solovey писал(а):
И всё бы ничего, но компьютер должен быть разумным, чтобы воспринимать информацию.

А вот совершенно и не факт. Что есть «информация»? Не те же ли это «данные»?
Нет. Информация - это данные плюс смысл.

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

Можно, конечно, прикопаться и сказать, что с формальной точки зрения информация какая-то передаётся: таблица на бумаге (а не электронная), в ней столько-то столбцов, заполнена ручкой (а не распечатана). Однако, таблица заполнялась не для того, чтобы передать эту информацию.


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

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


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

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


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

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