Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  14:51[Войти] | [Зарегистрироваться]
Обсуждение темы:
Функциональное программирование

Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.

Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.

Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.

 Jack Of Shadows

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 5502 сообщения

Добавить свое сообщение

Отслеживать это обсуждение


Смотрите также обсуждения:
Средства разработки. Языки программирования.
  • Delphi 4 or Delphi 5
  • Что приобрести в качестве средства разработки?
  • Delphi6
  • Delphi vs PowerBuilder
  • Сравнение компиляторов
  • Вот и вышла Delphi 7... Вы рады?

  • <<<... | 3352—3343 | 3342—3333 | 3332—3323 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 217


    № 3342   07-10-2007 16:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3335« (Руслан Богатырев)
    ___________________________
    Если Вы так трактуете синхронность и асинхронность, то она относится только к императивным языкам.

    Допустим мы пишем программу для некоторого исполнителя - например курьера.
    Мы можем построить синхронную программу: в 14:00 получить пакет, в 14:28 сесть в поезд №24, в 18:45 выйти на станции С и т.д.
    Мы можем построить асинхронную программу: получить пакет, дождаться тролейбуса, доехать на нем до улицы Коммуны, стоять с поднятой рукой пока не остановится машина в нужную сторону и т.д.
    Мы можем поступить декларативно, сведя всю инструкцию к одной команде: доставить пакет из А в B.
    В последнем случае понятия синхронности и асинхронности вообще теряют смысл, т.к. не ясно с чем именно синхронно и асинхронно.
    Скорее уж понятие синхронности/асинхронности придется применять к исполнителю, а не к программе.


    № 3341   07-10-2007 16:09 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3340« (Сергей Перовский)
    ___________________________

    Ответ на »сообщение 3322« (Илья Ермаков)
    ___________________________
    Как можно доказывать утверждение, используя для этого контрпример для него в собственной голове.
    Или мозг не является физическим устройством :)

    Или разум не сводится только к мозгу как к физической системе нейронов...
    Либо тогда вся теория информатики - бред собачий.
    Либо "усё фигня акромя бжол... да и бжолы.." - и строем в психушку.
    Лично я выбираю первый вариант :-)


    № 3340   07-10-2007 15:43 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3334« (Илья Ермаков)
    ___________________________

    Ответ на »сообщение 3333« (Илья Ермаков)
    ___________________________

    Ответ на »сообщение 3322« (Илья Ермаков)
    ___________________________
    Посему ни одна формальная система (какой является любая техническая система, которая была или будет создана) не может быть эквивалентной человеческому интеллекту. Так же, как никакая физическая система не может быть эквивалентной абстрактной машине Тьюринга.
    Существуют неразрешимые алгоритмически задачи. Например - проблема останова. Однако человеческий разум способен решить эту проблему (верифицировать любую программу). Предположим, что мы создали некое физическое устройство, которое эквивалентно человеческому разуму. Тогда оно сможет решить проблему останова. Таким образом, это физическое устройство будет превосходить по вычислительной мощности абстрактную машину Тьюринга, хотя не может быть даже эквивалентным ей. Противоречие. Отсюда доказали неправильность посылки - создать такое физическое устройство невозможно.

    Даже не знаю, как трактовать Ваши рассуждения. Практически в каждой паре фраз противоречие.
    Как можно доказывать утверждение, используя для этого контрпример для него в собственной голове.
    Или мозг не является физическим устройством :)
    Тогда нам в ветку о информационных полях.



    № 3339   07-10-2007 13:41 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3337« (Как слышно? Приём!)
    ___________________________
    Интерактивность - возможность прервать заглюченный "поток сознания" машины.
    Не, ну я тоже ща начну смеяться вместе с Geniepro :))))))
    Так, дайте отдышусь :))))
    Я даже не буду вам обьяснять что по интеркативности (во всех его возможных проявлениях) до лиспа и Smaltalk всем остальным, включая и оберон, прыгать и прыгать.
    Я просто попрошу вас привести пример, что вы имели в виду под "прервать заглюченный "поток сознания" машины."
    А то действительно, а ВДРУГ на лиспе это невозможно :)))


    № 3338   07-10-2007 12:33 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3333«,»сообщение 3334« (Илья Ермаков)
    ___________________________
    философский смысл теорем Гёделя как раз в том, что человеческий разум не является формальной системой
    Почему-то эту ахинею так любят повторять  " философы".

    Существуют неразрешимые алгоритмически задачи. Например - проблема останова. Однако человеческий разум способен решить эту проблему (верифицировать любую программу).
    Вера во всесилие человеческого разума понятна, но ненаучна. ;-)
    Предположим, что мы создали некое физическое устройство, которое эквивалентно человеческому разуму. Тогда оно сможет решить проблему останова. Таким образом, это физическое устройство будет превосходить по вычислительной мощности абстрактную машину Тьюринга, хотя не может быть даже эквивалентным ей. Противоречие. Отсюда доказали неправильность посылки - создать такое физическое устройство невозможно.
    Однако человеческий разум работает на физическом устройстве. Отсюда вывод: либо кому-то все-таки удалось создать физическое устройство (homo sapiens), способное превзойтить машину Тьюринга, либо ниасилит человеческий разум эту проблему.



    № 3337   07-10-2007 06:04 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3329« (Geniepro)
    ___________________________
    >>> Вы хотите сказать, что ББ более интерактивен, чем среды для Лиспа???
    >>> Ну Вы сказанули так сказанули... :о)))))

    Почему "хотите"? Я уже сказал :)
    Столь эмоциональная реакция указывает на прямое попадание!

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

    Видимо, под интерактивностью Лиспа Вы понимаете другое.
    Например, возможность быстренько с клавиатуры откорректировать программу?
    Но это совсем другая песня.


    № 3336   07-10-2007 05:37 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3317« (Jack Of Shadows)
    ___________________________

    Ответ на »сообщение 3314« (Илья Ермаков)
    ___________________________
    Далее, java, в которой нет сишных указателей, и система типов вполне даже "герметичная", не вчера появилась, а почти 20 лет назад. И где автоматическое распараллеливание ?
    Где оно для Ада или Eiffel ?

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


    № 3335   07-10-2007 05:04 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3319« (Geniepro)
    ___________________________

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

    Что первично, а что вторично в такой программе? В императиве, как мы выяснили, столько всякого декларатива... что встает вопрос, как мух от котлет отделить.

    Как известно, программа оперирует потоками данных и потоками управления. Синхронизация имеет место как по потокам управления, так и потокам данных. При этом связь между сущностями осуществляется как в отношении времени, так и в отношении причинно-следственных ограничений.

    Если в языке написано
    a := 1; b := 2;

    то это означает последовательность, заданную по времени исполнения (сначала первый оператор, потом второй). Здесь нет причинно-следственной связи. Это синхронная модель, в которой могут использоваться асинхронные элементы (в частности, выражения). Здесь синхрон первичен, асинхрон вторичен.

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

    Асинхрон подразумевает изначальный хаос, на который накладываются причинно-следственные ограничения. Синхрон подразумевает жесткий порядок, в котором выделяются зоны "хаоса". В этом и состоит принципиальная разница.

    В асинхронном управлении можно выделить следующие типы:
    1. Событийное управление (условия готовности исполнения есть логические функции от некоторых событий).
    2. Потоковое управление (условие готовности исполнения определяется наличием/готовностью всех необходимых аргументов/данных).
    3. Динамическое управление (условие готовности исполнения есть логическое выражение, зависящее от переменных той же памяти, над которой определены операторы программы).


    № 3334   07-10-2007 04:58 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3333« (Илья Ермаков)
    ___________________________

    Ответ на »сообщение 3322« (Илья Ермаков)
    ___________________________
    Посему ни одна формальная система (какой является любая техническая система, которая была или будет создана) не может быть эквивалентной человеческому интеллекту. Так же, как никакая физическая система не может быть эквивалентной абстрактной машине Тьюринга.

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


    № 3333   07-10-2007 04:54 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 3330« (Geniepro)
    ___________________________

    Ответ на »сообщение 3322« (Илья Ермаков)
    ___________________________
    Казалось бы, причём тут Гёдель? 8-о
    Наличие у Вас интеллекта нарушает эту теорему Гёделя? Странно, как так?

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


    <<<... | 3352—3343 | 3342—3333 | 3332—3323 | ...>>>
    Всего сообщений в теме: 5502; страниц: 551; текущая страница: 217


    Добавить свое сообщение

    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования