LINUX.ORG.RU
Ответ на: комментарий от SZT

Плохой критерий.

Хороший, на самом деле. Только с уточнением: не только «может передаваться», но и «может конструироваться».

Miguel ★★★★★
()
Ответ на: комментарий от anonymous

Как раз скорость вычислений обеспечивается за счет «не фон-Неймановости».

В чьей-то докторской, или есть реальные примеры? Только не вида «Kdb-сервер работает быстрее всех известных серверов БД на запросах, специфичных для Kdb-сервера», а более распространённые и универсальные.

yyk ★★★★★
()
Ответ на: комментарий от yyk

В чьей-то докторской, или есть реальные примеры?

Зачем тебе чья-то докторская, если ты «не читал, но осуждаешь», не изучив даже содержание книги, написанной лауреатом премии Тьюринга.

И, вообще, зачем я начал общение с тем, кому не интересно чужое мнение, будь он лауреат премии Тьюринга или аноним с лора?

anonymous
()
Ответ на: комментарий от anonymous

Зачем тебе чья-то докторская, если ты «не читал, но осуждаешь», не изучив даже содержание книги, написанной лауреатом премии Тьюринга.

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

Для продвинутых ванг: мне не нужны рассказы про мощь ядерной энергетики в 1945-м году, мне нужны «современные безопасные ядерные станции». Нет? Я подожду…

yyk ★★★★★
()
Ответ на: комментарий от yyk

Тебе показалось - я не осуждаю.

Но

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

Продолжай дальше наглядно «не осуждать». :)

Вопрос на засыпку: ты знаешь, что такое архитектура фон-Неймана?

anonymous
()
Ответ на: комментарий от yetanother

Функциональный подход позволяет реализовать более высокий уровень оптимизации и композиции.

Или не осилить реализовать. Как получится.

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

Продолжай дальше наглядно «не осуждать». :)

8-0 Ты в моих словах увидел осуждение?!… Пожалуй я пасс….

Вопрос на засыпку: ты знаешь, что такое архитектура фон-Неймана?

Сузил область: «байто@бство и доступность», попросил примеров, в ответ стали экзаменовать… Я, конечно, понимаю, что это ЛОР, но… А что дальше? Объявишь GMP библиотеку или какое ядро «не по фон-Нейману»???

Нее, дальше точно без меня )))

yyk ★★★★★
()
Ответ на: комментарий от anonymous

Классика. Так и не взлетевшая, но значительно повлиявшая на всякие там хаскели.

quantum-troll ★★★★★
()

В чем отличие процедурного программирования от функционального?

ИМХО, отличие в первую очередь в умах людей, которые проповедуют одну или другую идеологию. Я верю, что отличие, как «нечто понятное и объективное», есть. Но человечество пока не научилось говорить на эту тему и при этом не нести чушь. Подождем, когда религиозный пыл визионеров спадет и станет можно договориться о терминах. А пока стоит смирится с тем, что каждый говорит о чем-то «своем».

Если ТС очень сильно интересует эта тема, то лучше освоить какой-нибудь язык с ФП. Это в 100 раз будет продуктивнее, дискуссия на ЛОРе.

pathfinder ★★★★
()
Ответ на: комментарий от yyk

есть реальные примеры?

Про оптические вычислительные тензоры слышал? Не? Давно уже используют, работают со скоростью света потому что они оптические.

Liz812
()
Ответ на: комментарий от yyk

что такое архитектура фон-Неймана?

Сузил область: «байто@бство и доступность»,

Хорошие у тебя аналогии. Разговор начался с фон-Неймана, ты «сузил область» до абсолютно перпендикулярных критериев.

«Осудить» фон-Неймана до «байто@бство и доступность» - это мощно, держи нас в курсе.

Без ответа на вопрос «что такое архитектура фон-Неймана?» дальнейший разговор не имеет смысла, так как у нас слишком разное понимание этого термина.

anonymous
()
Ответ на: комментарий от yetanother

Функциональный подход позволяет реализовать более высокий уровень оптимизации и композиции.

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

goingUp ★★★★★
()
Ответ на: комментарий от Legioner

И что именно тебя смущает?

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

SZT ★★★★★
()
Ответ на: комментарий от Miguel

Хороший, на самом деле. Только с уточнением: не только «может передаваться», но и «может конструироваться».

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

SZT ★★★★★
()
Ответ на: комментарий от yyk

Ведь тогда Си тоже функциональный

Мультипарадигменный? ))

Серьезно? Что-то я не помню, чтоб про Си говорили что он мультипарадигменный. Про кресты говорили, да (по поводу мультипарадигменности крестов я кстати готов поспорить что это не так), но не про Си.

SZT ★★★★★
()
Ответ на: комментарий от goingUp

А имутабельные данные можно обрабатывать в потоках без блокировок. Отсюда рост интереса к функциональным языкам с ростом числа ядер на процессорах.

Liz812
()
Ответ на: комментарий от Liz812

А имутабельные данные можно обрабатывать в потоках без блокировок. Отсюда рост интереса к функциональным языкам с ростом числа ядер на процессорах.

Рост интереса это хорошо, но было бы неплохо иметь платформу, удобную на практике. К примеру раст в этом плане будет попрактичнее хаскеля, и там иммутабельные данные можно юзать вообще без фп примочек, и с тем же результатом)

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

где монады тормозят

Ты хоть сам понимаешь, что хотел сказать?

Miguel ★★★★★
()
Ответ на: комментарий от SZT

Так что же получается, ассемблер - ФП?

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

Miguel ★★★★★
()
Ответ на: комментарий от goingUp

раст в этом плане будет попрактичнее хаскеля

Да, то что в расте нет иммутабельных данных это очень хорошо поднимает ему производительность. Иммутабельные данные это тормоза на копирование…

fsb4000 ★★★★★
()
Ответ на: комментарий от Siborgium

В Pascal тоже есть возможность передать ссылку на функцию/процедуру другой функции/процедуре, потому что можно определить в самой программе процедурный тип.

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от Miguel

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

Мне ничего не неймется. Проблема в том, что такая нестрогая классификация ошибочна.

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

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от SZT

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

Я в своё время использовал кусочки функционального подхода в геймдеве, на плюсах. Лямбд ещё не было, приходилось обходиться анонимными классами. Куча бойлерплейта, конечно, но работало.

Miguel ★★★★★
()
Ответ на: комментарий от SZT

То, что Си не ФП-язык.

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

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

Можно.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от RedPossum

для чего не быстро?

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

SZT ★★★★★
()
Ответ на: комментарий от Liz812

Современная jvm это капец как быстро.

Смотря с чем сравнивать.

А еще есть native scala.

Которая тоже наверняка будет с GC.

SZT ★★★★★
()
Ответ на: комментарий от Legioner

Но при желании на Си можно писать в абсолютно функциональном стиле

Хватит уже херню нести. Лучше расскажи как ты на С реализуешь модель вычислений без состояний?

Liz812
()

Начни, наверное, читать от сюда: Тезис Чёрча — Тьюринга

TL;DR на пальцах:

Оба подхода эквивалентны (один можно выразить через другой и обратно).

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 3)
Ответ на: комментарий от Liz812

Лучше расскажи как ты на С реализуешь модель вычислений без состояний?

int add(const int a, const int b)
{
  return a+b;
}

int mul(const int a, const int b)
{
  return a*b;
}

int square(const int a)
{
  return mul(a,a);
}

int sum_of_squares(const int a, const int b)
{
  return add(square(a), square(b));
}

Сойдет?

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Ты дебил? Я СПРОСИЛ - есть ли примеры того как сейчас доступно и массово в низкоуровневом кодинге можно не использовать «языки модели фон Неймана»? Криво спросил? Возможно. Но не говори, что ты не понял…

Что до определения - ну на тебе его из той самой лекции:

2.2.3 Von Neumann models. Examples: von Neumann computers, conventional
programming languages. Foundations: complex, bulky, not useful. History sensitivity:
have storage, are history sensitive. Semantics: state transition with complex states.
Program clarity: programs can be moderately clear, are not very useful conceptually.

Полегчало?

«Осудить» фон-Неймана до «байто@бство и доступность»

Ты сам то в состоянии распарсить что написал? И не надо мне приписывать свои влажные фантазии…

yyk ★★★★★
()
Ответ на: комментарий от SZT

найдите мне браузер на Java с поддержкой актуальных веб-стандартов

Я, конечно, тот ещё спец, но Chrome на андроиде разве не на жабе написан?

Update вроде, нет. Ну и ладно.

Miguel ★★★★★
()
Последнее исправление: Miguel (всего исправлений: 1)
Ответ на: комментарий от SZT

Ты вообще не в теме.

JamaicaVM – the industry leading Java Virtual Machine for embedded and time critical applications

If your application is embedded, mission critical or requires hard realtime capabilities with a deterministic garbage collector, JamaicaVM is the Java Virtual Machine of your choice.

Liz812
()
Ответ на: комментарий от Liz812

Про оптические вычислительные тензоры слышал? Не? Давно уже используют, работают со скоростью света потому что они оптические.

Отматываем несколько сообщений назад и видим «числодробилки и ОС-и», а следом просьба указать на что-то «распространённое и универсальное». И ты мне подсовываешь «оптические вычислительные тензоры»?

Чукча не читатель?

yyk ★★★★★
()
Ответ на: комментарий от Miguel

Я, конечно, тот ещё спец, но Chrome на андроиде разве не на жабе написан?

В Chrome на андроиде используется движок Blink, который форк вебкита, который в свою очередь является форком KHTML который написан на крестах. Какая-то обертка на жабе там конечно есть, но сам движок не на ней.

SZT ★★★★★
()
Ответ на: комментарий от SZT

Так си и не ООП-язык, что не помешало родиться гному…

yyk ★★★★★
()
Ответ на: комментарий от Liz812

JamaicaVM – the industry leading Java Virtual Machine for embedded and time critical applications

И как, на STM32F0 работает? А на ардуине? А какую часть из Java оно поддерживает? Java ME? Java Card?

Джава для реалтайма на контроллерах подходит плохо, и конечно это все небесплатно т.к. GC для реалтайма работает... скажем так, не очень эффективно

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от yyk

Так это числодробилки и есть. EnLigth256 впервые представлена в 2003 году на выставке военной электроники MILCOM 2003 в Бостоне. В 2004 году начались поставки заказчикам. Беги покупай.

Liz812
()
Ответ на: комментарий от Liz812

Для тебя embedded это ардуина?

А почему нет? 8-битный контроллер, который в ардуины обычно ставят - вполне себе embedded.

SZT ★★★★★
()
Ответ на: комментарий от goingUp

Вас прочитает какой-нибудь начинающий, и подумает, что ФП это быстро и производительно)

Есть такой риск) Но добрые люди не дадут ему сделать этого - обязательно поправят) Это же - ЛОР!

yetanother ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.