LINUX.ORG.RU

Быстродействие высокоуровневых языков программирования набирает обороты

 ,


0

4

По данным сайта lisp.ru, утверждение, что лисп является медленным ЯП, относится скорее к мифам. Приведу цитату из статьи про Common Lisp (http://lisp.ru/page.php?id=4):

5. Лисп работает очень медленно. Честно говоря, я тоже так думал. Но еще лет десять назад, под влиянием нескольких публикаций о реализации Лиспа на Бейсике, я написал небольшой (но полностью функциональный и расширяемый) интерпретатор Лиспа на языке Паскаль для ДВК-3. И что вы думаете? Мой доморощенный Лисп работал на вычислительных задачах быстрее, чем родной Бейсик фирмы DEC!

Рекорд бейсика по производительности побит. И это при отсутствии компилятора для лиспа:

6. Для Лиспа нет компилятора. Вообще то, это так, поскольку для серьезных Лисп-программ полная компиляция противопоказана - ведь в этом языке единство кода и данных поддерживается на все 100% и зачастую программа синтезируется непосредственно во время выполнения. Но что касается использования компилятора для генерирования промежуточного кода, ускоряющего последующую загрузку и выполнение программ, а также защиту исходного кода программ, то такие решения есть, и входят в состав стандартных дистрибутивов (вернее сказать, встроены в саму среду Лиспа).

Синтезируем и выполняем программу в рантайме, господа! Причем, скорее всего, непосредственно у себя в голове.

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

Ответ на: комментарий от AIv

Мы генерим.

Программу на Си? И генератор тоже на Си? А почему именно так? В смысле, почему тогда генератор не на perl/m4/...?

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

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

Нет, конечно. Пока они с кобола и фортрана переписывали, в промышленность проникли идеи из «лиспов/хаскелей» в виде Java, Python, Scala и т.д. Не с проста же C++ умер и был заменен на функциональный C++11.

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

Кобольщики и фортранщики создавали по-настоящему реальные промышленные системы

Вот именно, что промышленные системы, а не малонужный матанистый выхлоп.

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

Это «малонужный матанистый выхлоп» уже в мейнстриме, а C++ догнивает на помоечке.

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

Троллинг бесконечно дифференцируем, нет пределов совершенству!

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

Фрагменты кода на плюсах. Генератор на питоне.

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

Не с проста же C++ умер

4.2

был заменен на функциональный C++11.

Штука хорошая, тока гцц ее пока не больно то умеет. Буквально сегодня поимел

In file included from euler_vcc_wrap.cxx:3295:0:
../include/solver/euler.hpp: In lambda function:
../include/solver/euler.hpp:17:3: internal compiler error: Ошибка сегментирования
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
Preprocessed source stored into /tmp/ccraMxge.out file, please attach this to your bugreport.

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

4.2

Ах, ну да, вы же до сих пор Java и .NET не признали, как ненужный матанистый выхлоп, так что за мертвый стандарт, наверное, будете еще долго цепляться.

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

Вы меня продолжаете веселить безмерно. Каким образом ява и дотнет применимы в числодробилках «промышленного уровня» (которыми я с-но занимаюсь, и которые граждане подобные Вам обычно и считают «матанистым выхлопом»), не подскажете?

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

Каким образом ява и дотнет применимы в числодробилках «промышленного уровня» (которыми я с-но занимаюсь, и которые граждане подобные Вам обычно и считают «матанистым выхлопом»), не подскажете?

Фортран применим. Причем тут C++ вообще?

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

При том, что на плюсах такие вещи писать гораздо быстрее и удобнее, и работают они как мин. не медленней (а при правильном подходе гораздо быстрее).

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

Но Вы так и не ответили, ява и дотнет тут причем?

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

Не понял. В них есть eval

eval нет, но ты можешь сделать. Алан Тьюринг гарантирует, ещё с 40х годов прошлого века.

Да, это получится тормозной, глючный, и дырявый eval, как и в любом скриптовом ЯП. Чудес не бывает. И да, код внутри eval вовсе не обязан быть на C/C++. Но может и на них, если хорошо упороться(практические цели этого непонятны).

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

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

а те, кто выхлопом этого треша пользуются — содомиты?

Если да, то у меня для тебя плохие новости: gcc это и есть такой eval, который выполняет C-код. А ты соответственно — содомит. (:

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

Единственное, что я генерировал для Це - набор данных в виде статического массива.

с математической т.з., таблица для функции — один из способов вычисления функции. Т.е. один из видов записи кода/алгоритма.

Т.е. даже ты писал автоматически создаваемый код. Можешь гордится своим опытом.

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

дороговизна(т.е память дешевела медлененее чем чем стоимость операции) памяти при резком падении цены «сложения» у микропроцов и похоронило лисп-среды.

сейчас её реанимируют и гальванизируют. Вот lua посмотри. Даже в сам C++11 и то ввели многие чисто ФП фишки...

emulek
()

$ clisp

  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

И тут ZOG, куда бежать?

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

ITA неактуальна, сейчас мейнстрим - naughty dog и NBCuniversal

anonymous
()

А что не так? Ты про eval слышал? Динамические языки ценны интерпретацией. Компилировать их западло.

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

Ты в интернеты вообще ходишь, школолошечко? Про javascript слышало? Там eval везде.

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

Ну разработчик компилятора вполне может такой eval реализовать. Но вот только зачем?

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