The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск SBCL 2.4.1, реализации языка Common Lisp

05.02.2024 12:38

Опубликован выпуск SBCL 2.4.1 (Steel Bank Common Lisp), свободной реализации языка программирования Common Lisp. Код проекта написан на языках Common Lisp и Си, и распространяется под лицензией BSD.

В новом выпуске:

  • В параллельный сборщик мусора, использующий алгоритм mark-region, добавлена частичная поддержка заголовков компактных экземпляров.
  • Для функций с объявленными возвращаемыми типами в режимах оптимизации с большими значениями SAFETY и в режиме DEBUG 3 обеспечено выполнение проверки типа для возвращаемых значений.
  • На платформе FreeBSD реализована компоновка с libpthread и отключена рандомизация адресного пространства (ASLR).
  • Восстановлена сборка на 64-х битных архитектурах riscv и ppc.
  • Для всех платформ реализована поддержка fastrem-32 (для оптимизированных вычислений FLOOR).
  • Устранена ошибка, приводившая к повторной очистке перемещённых строк после уплотнения памяти параллельным сборщиком мусора mark-region.
  • Решена проблема с зацикливанием компилятора при обработке некоторых конструкций с типами SATISFIES.
  • Хеш-таблицы, используемые в различных частях системы (пакеты, таблицы Unicode), преобразованы для использования хеш функций, избавленных от коллизий (perfect).
  • Макрос TYPECASE для иерархий структур классов реализован с применением хеша без коллизий.
  • С целью оптимизации производительности убраны проверки границ для индексов с постоянными смещениями, когда компилятор знает, что индекс меньше разницы между размером и смещением.
  • В компиляторе учтены дополнительные данные об оптимизации DIGIT-CHAR.
  • В компиляторе реализована возможность исключения промежуточных значений в некоторых вызовах APPLY, CONCATENATE и MAKE-ARRAY для аргументов, построенных из последовательностей со свежими cons-модификациями.
  • Ускорена работа цикла "(LOOP FOR X IN (REVERSE LIST) ...)", который теперь использует меньше cons-ов.
  • Цикл "(LOOP ... APPEND ...)" стал компактнее и выполняет меньше работы при добавлении NIL.
  • Ускорены и сокращены проверки типов различных массивов.


  1. Главная ссылка к новости (https://www.sbcl.org/news.html...)
  2. OpenNews: Выпуск SBCL 2.4.0, реализации языка Common Lisp
  3. OpenNews: Изменение механизма вычисления выражений в языке LISP
  4. OpenNews: Представлен LISP/c - транслятор Common Lisp в C/C++
  5. OpenNews: Языку программирования LISP исполнилось 60 лет
  6. OpenNews: SystemE, шуточная замена systemd на Emacs Lisp
Автор новости: 111
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60554-sbcl
Ключевые слова: sbcl, lisp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (117) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, zog (??), 13:31, 05/02/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     

  • 1.3, Шарп (ok), 13:42, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >С целью оптимизации производительности убраны проверки границ для относительных смещений

    Вы что, хотите CVE как в си?

     
     
  • 2.36, Аноним (36), 15:50, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    safety в declare сунул и готово, это тебе не бондаж и дисциплина, а язык от людей и для людей
     

  • 1.4, Аноним (4), 13:43, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    ((от (скобочек)) (рябит) (в (глазах)))
     
     
  • 2.27, Минона (ok), 15:40, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Слабак!
     
  • 2.35, Аноним (36), 15:49, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так ты не на скобочки смотри. И вообще, для тебя придумали wisp.
     
  • 2.55, Вы забыли заполнить поле Name (?), 17:41, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А от unwrap() и закорючек не рябит?

    Кстати, в схеме по стандарту разрешили смешивать () и []. В комоне как с этим?

     
     
  • 3.65, Аноним (65), 18:15, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как только в стандарте появится — сразу же.
     
  • 3.86, Аноним (86), 20:52, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прикручивается в несколько строчек кода через макросы чтения. Но это не нужно: зоопарк скобочек, вопреки бытующему мнению, снижает читаемость кода.
     
     
  • 4.91, Вы забыли заполнить поле Name (?), 21:23, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > зоопарк скобочек, вопреки бытующему мнению, снижает читаемость кода.

    Чьему мнению? Лисперы не смотрят на скобочки https://spritely.institute/static/papers/scheme-primer.html#fn.2

    > In general, Scheme/Lisp programmers' editors do the work of managing parentheses for them, and most code is read by indentation rather than by the parenthetical grouping. In other words, Lisp programmers usually don't spend much time thinking about the parentheses at all.

     
     
  • 5.125, Аноним (125), 20:21, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А почему бы тогда не использовать табы?
     
     
  • 6.128, Вы забыли заполнить поле Name (?), 22:01, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А почему бы тогда не использовать табы?

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

     
  • 2.80, Аноним (80), 19:27, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть 2 подхода к синтаксису ЯП 1 Попытаться сделать его пригодным для работы в... большой текст свёрнут, показать
     
     
  • 3.101, Аноним (101), 00:48, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну вообще-то любой ЯП имеет AST. И пользоваться обычным ЯП куда удобнее, чем лиспом. Не понимаю, откуда столько лиспофанатов взялось.
     
     
  • 4.124, Аноним (80), 18:01, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вообще-то любой ЯП имеет AST. И пользоваться обычным ЯП куда удобнее,
    > чем лиспом. Не понимаю, откуда столько лиспофанатов взялось.

    Так об этом и речь, но можно по-разному отобразить AST в текст и по-разному с ним работать: как с плоским текстом или прямо манипулировать деревом. Мало кто пробовал второй способ, но лисперы знают как это удобно, пока остальные продолжают недоумевать.

     
  • 4.126, Аноним (125), 20:28, 07/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > пользоваться обычным ЯП куда удобнее, чем лиспом

    Ой-ли? Это те самые обычные языки (Си, С++, Java, Rust и т.п.) с их премудрыми правилами разрешения венегрета шаблонов и матрешками макроподстановок?

     
  • 2.109, Аноним (109), 10:32, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне от знаков '$' рябит в некоторых язычках.
     

  • 1.5, Аноним (5), 13:59, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И где оно используется? Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?
     
     
  • 2.7, Аноним (7), 14:07, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В ИИ.
     
     
  • 3.38, Аноним (38), 15:55, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошая шутка, прямиком из 70-80-х.
     
     
  • 4.52, Пользователь планеты Земля (?), 17:08, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на разработках 70-80-х держится весь интернет
     
  • 3.54, Аноним (54), 17:30, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В том что сейчас называют ИИ интеллекта нет ни грамма, а лисповые игрушки 80-х это вообще не более чем шутка.
     
     
  • 4.69, Аноним (69), 18:37, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как говорится, «as soon as it works, no one calls it AI anymore».
     
     
  • 5.130, kusb (?), 17:15, 08/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ChatGPT сам называет себя AI
     
  • 2.9, Аноним (9), 14:16, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    прошу прощения, в след. раз обязательно у тебя все вместе спросим куда нам наше время тратить
     
     
  • 3.70, Бывалый смузихлёб (?), 18:54, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > прошу
    > все вместе спросим

    для начала надо определиться сколько анонимов в одном анониме

     
  • 2.10, Аноним (36), 14:19, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?

    Потому что не хотят выучить скобочки, потому и обещают годами выпилить GIL.

     
     
  • 3.90, Bottle (?), 21:18, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот кстати, что забавно, GIL обходят самыми разными костылями: то запускают параллельно несколько интерпретаторов Python, то транспилируют код Python, то привязывают Сишные либы и теряют кроссплатформенность.
     
  • 3.96, Аноним (96), 23:01, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Но, ведь, наконец таки, решились выпилить в течение ближайших пяти лет.
     
  • 2.17, Аноним (17), 15:07, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И правда зачем нужны бесполезные дубы, если есть желуди https github com gcc-... большой текст свёрнут, показать
     
     
  • 3.18, Минона (ok), 15:19, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Столлман лично писал?
     
  • 2.53, Аноним (53), 17:23, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Судя по гитхабу нигде оно не используется. Ну то есть тыщи репозиториев есть, но реально полезного кода считай что нет.
    Язык чисто для образовательных целей.
     
  • 2.56, Вы забыли заполнить поле Name (?), 17:42, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии

    Хороший вопрос, но не в ту сторону, учитывая, что лисп появился в 60-х.

     
  • 2.66, Аноним (65), 18:17, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И где оно используется?

    Например, в менеджменте ресурсов.

    > Зачем вообще люди тратят сотни и тысячи человеко-часов

    Конкретно в этом случае потому, что хорошо платят.

     
  • 2.73, ИмяХ (ok), 19:06, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Расскажи автокадчикам , насколько лисп бесполезен.
     
     
  • 3.89, Аноним (86), 21:12, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В автокаде очень кхем... своеобразный диалект лиспа. Настолько, что мало кто даже из лисперов обрадовался бы возможности программировать на таком. Даже за деньги.
     
  • 2.88, Аноним (86), 21:05, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Например, в этом https://nyxt-browser.com/
     
  • 2.105, Аноним (105), 08:39, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > И где оно используется? Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?

    зачем ты это сюда пишешь?
    раз люди тратят время, значит видят смысл.
    вот у них и поинтересуйся.

     

  • 1.6, sailorTheCat (?), 14:03, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Годно и нужно.
     
     
  • 2.8, Аноним (5), 14:10, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Годно и нужно.

    Но ведь новость не про JavaScript

     
     
  • 3.11, Аноним (36), 14:19, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А JavaScript в машкод не компилируется, как и в образы.
     
     
  • 4.13, Аноним (7), 14:24, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А JavaScript в машкод не компилируется

    Just JIT

     
     
  • 5.14, Аноним (36), 14:33, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть, не компилируется. А в райнтайме потихоньку то там, то сям застопорит программу, потом ещё раз застопорит, потом выльет неоптимизированную портянку вызовов функций к библиотеке движка... и никаких тебе бинарей на диске с асмовставками и заменой anytype-кода на прямую тасовку fixnum-ов в асме через объявления safety, type и speed в declare.
     
  • 4.15, Дима из Крыма (?), 14:39, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Компилируемые языки по большей части уходят в прошлое. Останутся только в системном программировании, в совсем уж критических местах. Не верите? Сравните количество вакансий и оцените спрос рынка.
     
     
  • 5.19, Аноним (19), 15:19, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Common Lisp -- компилируемый язык так то
     
     
  • 6.50, Тот_ещё_аноним (ok), 16:55, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Sbcl - компилирующий common lisp
    Основная масса common lisp реализаций интерпретаторы или jit
     
     
  • 7.82, Аноним (86), 19:40, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Основная масса - это какие? sbcl, cmucl, ccl, allegro, lispworks напрямую генерируют машинный код, ecl, clasp, gcl - через сишку,  abcl - в байткод jvm. Только clisp представляет из себя интерпретатор, да и тот интерпретирует байткод и имеет jit.
     
  • 5.21, Минона (ok), 15:21, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет уж.
    Давай ты сравнишь, а мы послушаем доклад.
     
  • 5.28, Аноним (36), 15:41, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    "Количество вакансий" и "спрос рынка" не с потолка берётся. И либо ты раб скиллбокса, либо сам пишешь проекты.
     
  • 5.58, Аноним (54), 17:59, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То что ты подразумеваешь (а подразумеваешь ты языки со статической типизацией) хоронят уже 20 лет, но только сейчас закопана динамическая - mypy, typescript и иже с ними не дадут соврать. А то что ты написал это вообще безграмотный бред, потому что языки от способа их исполнения никак не зависят. Возьми C и хочешь - интерпретируй, хочешь в байткод JVM компиль, хочешь в WASM, хочешь - в нативный. При этом и динамические языки все компилируемые, везде кроме питона JIT, а и питон к нему активно стремится, умея, те не менее, и компиляцию в нативный код (nuitka, pypy, cython). Ну и таки да, не знаю что мне должно сказать количество вакансий. Ну нужно много жс мaкак. Ещё курьеров, таксистов, дворников. Но идти-то надо на нормальном языке писать за 10х денег.
     
     
  • 6.74, Бывалый смузихлёб (?), 19:08, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    только есть вероятность что иная жс ма кака как раз и будет получать те самые 10... большой текст свёрнут, показать
     
     
  • 7.111, Прохожий (??), 11:20, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >парадоксально ли, но ощутимое количество "ит-специалистов" по итогу оказываются падкими на всякий инфомусор мак.аками, для которых достаточно опубликовать несколько статеек на хабре и каком-нибудь реддите-медиуме

    Обычно (не всегда) подобные статьи пишутся очень и очень умными людьми. И в них много рациональных зёрен. Поэтому другие люди и берут их на вооружение. А можно их просто игнорировать и продолжать ходить по граблям. Каждому своё.

    >Внезапно оказалось, что типизация в принципе не избавляет от ошибок

    А кто говорит про все ошибки? Речь о том, что их количество желательно свести к минимуму, чтобы удешевить эксплуатацию ПО конечному пользователю. В этом весь смысл. Странно, что подобные банальные вещи надо ещё обсуждать.


     
  • 6.115, Аноним (115), 12:53, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >закопана динамическая - mypy, typescript и иже с ними не дадут соврать

    Так дают же, anytype anytype-ом погоняет.

     
  • 4.26, Аноним (26), 15:34, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А JavaScript в машкод не компилируется

    а на лиспе нельзя модули для ядра писать

     
     
  • 5.29, Минона (ok), 15:42, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Один чувак на нём драйвер написал.
     
  • 5.33, Аноним (36), 15:47, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На лиспе написали ОС и не одну.
     
     
  • 6.48, Аноним (26), 16:42, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > На лиспе написали ОС и не одну.

    если бы было что-то стоящее я бы об этом знал

     
     
  • 7.97, Аноним (96), 23:04, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Про Redox же знаешь наверняка? Но оно нестоящее.
     
     
  • 8.112, Прохожий (??), 11:27, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне себе стоящее для образовательных целей ... текст свёрнут, показать
     
  • 6.62, Аноним (-), 18:08, 05/02/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.34, Аноним (36), 15:48, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >нельзя

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

     
     
  • 6.40, ZloySergant (ok), 16:03, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >И тут мы подходим к тому, что каждый вменяемый программист должен уметь присобачить свой язык к си.

    TCL (немного протух, но собрать после пары ящиков пива - можно), ECL (эти долбоклюи на кресты решили переехать), CCL (ябблы - то бишь дуподрюки, но не точно).

     
  • 5.114, Аноним (86), 12:48, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Зато можно написать само ядро
    https://github.com/froggey/Mezzano
     
  • 4.42, ZloySergant (ok), 16:16, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А JavaScript в машкод не компилируется, как и в образы.

    SBCL как-бы тоже (только в "образ"). Даже tree shacker'а нет. За этим - к ECL и CCL.

     
  • 4.81, Аноним (65), 19:38, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    JavaScript компилируется в Webassembly, который по сути машкод для довольно специфичной машины.
     
     
  • 5.84, C00l_ni66a (ok), 20:02, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >который по сути машкод для довольно специфичной машины

    Не просто "специфичной", а "несуществующей в природе".

     

  • 1.12, Аноним (36), 14:20, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Ускорена работа цикла "(LOOP FOR X IN (REVERSE LIST) ...)", который теперь использует меньше cons-ов.

    А в принципе в функциональных языках замену map на map! компилятор умеет делать?

     
     
  • 2.95, Аноним (86), 22:31, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Сабж не является функциональным, но мультипарадигменным.
    SBCL умеет только раскрывать map'ы в циклы.  "Сплюснуть" цепочку map/reduce до однопроходного цикла не может (вдруг у тебя там побочный эффект, тогда оптимизация сломает логику).
    Но есть интересная библиотека series, она может. https://github.com/tokenrove/series/blob/master/s-doc.txt
     

  • 1.16, Аноним (-), 14:57, 05/02/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
  • 1.20, Аноним (-), 15:20, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В чём преимущество записи выражений в польской нотации. Типа: + 2 3

    Для типично математический выражений никакого преимущества перед традиционной формой нет. Я по крайней мере не вижу.

     
     
  • 2.22, svr (?), 15:29, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Код является AST
     
  • 2.23, sailorTheCat (?), 15:30, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Для типично математический выражений

    Это такие, которые обычно занимают 0.0001% кода?

     
  • 2.24, Минона (ok), 15:31, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    https://en.wikipedia.org/wiki/S-expression
     
  • 2.30, Аноним (30), 15:43, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не нужно запоминать приоритет оператов. Проще парсить, проще понимать структуру выражения. Вообще проще программно работать с такой записью. А вот в случае с классической матетматикой на бумаге, наверное, нет смысла на такое переучиваться. Хотя некоторые разделы математики такую запись используют.
     
     
  • 3.32, Аноним (36), 15:47, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Проще парсить, проще понимать структуру выражения.

    Особенно если вставлять переводы строк, большие формулы становятся понятнее.

     
  • 3.39, Аноним (38), 15:57, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Не нужно запоминать приоритет оператов. Проще парсить, проще понимать структуру выражения.

    Да, просто парсинг перекладывается на оператора ЭВМ. Ну… если вспомнить, на каком убогом железе она в основном использовалась, то оно и понятно.

     
     
  • 4.43, Аноним (36), 16:16, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это с каких пор процессор, ориентированный на язык, убогим железом является?
     
     
  • 5.59, Аноним (54), 18:02, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    С тех пор как языков много, а конкретно тот на который он ориентирван никому нахрен не сдался.
     
  • 2.31, Аноним (36), 15:46, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Для типично математический выражений никакого преимущества перед традиционной формой нет

    Прикол в том, что:
    1. Дело не в польской нотации, а в AST. Этот AST можно превратить в вызовы SIMD. На том же лиспе.
    2. Математические операции в лиспе не являются операторами, они являются функциями. Со всеми вытекающими, навроде отправки в функции высшего порядка, неполного применения и так далее.

     
     
  • 3.60, Аноним (54), 18:03, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну-ка, а расскажи нам скорее в каком языке операторы не являются функциями?
     
     
  • 4.104, n00by (ok), 07:25, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В Си операторы не являются функциями. Особенно comma operator.
     
  • 4.108, Аноним (108), 09:55, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    почти во всех
     
  • 2.41, ZloySergant (ok), 16:07, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >В чём преимущество записи выражений в польской нотации. Типа: + 2 3

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

    З.Ы. Поэтому, кстати, LOOP я недолюбливаю - выбивается за концепцию.

     
     
  • 3.51, Аноним (30), 17:04, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати говоря, классическая префиксная нотация может писаться вообще без скобок
     
     
  • 4.98, ZloySergant (ok), 00:24, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Кстати говоря, классическая префиксная нотация может писаться вообще без скобок

    Может, но блоки кода определять сложнее.

     
  • 3.68, Аноним (54), 18:23, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А в чём смысл стандартизации выражений? Brainfuck и тот язык с одной инструкцией поболе стандартизированы, почему лисп лучше их?
     
     
  • 4.99, ZloySergant (ok), 00:28, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А в чём смысл стандартизации выражений? Brainfuck и тот язык с одной
    > инструкцией поболе стандартизированы, почему лисп лучше их?

    Brainfuck - некорректный пример. Сравнивать надо с чем-нибудь высокого уровня (хотя тоже будет не совсем корректно).

    З.Ы. Да, забыл совсем, как очевединое. Такая стандартизация позволяет составить произвольный список переменных и их обработать, а не насиловать себе мозг. К примеру, в функции "сложения" указать через REST произвольное количество входящих данных.

     
  • 2.57, Вы забыли заполнить поле Name (?), 17:47, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не нужно вводить понятие приоритета и ассоциативности, разбирать и вычислить выражение можно за один проход, достаточно просто стэка. Это использовалось раньше во многих физических калькуляторах. А по поводу программ: man dc. Его, кстати, использует bc.
     
     
  • 3.63, Аноним (54), 18:09, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Не нужно вводить понятие приоритета и ассоциативности

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

    > разбирать и вычислить выражение можно за один проход, достаточно просто стэка

    Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в 10 ни в 100500 проходов программу распарсить, но не будем использовать её возможности, а заставить людей ковыряться в yблюдском формате.

     
     
  • 4.76, Вы забыли заполнить поле Name (?), 19:21, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Не нужно вводить понятие приоритета и ассоциативности
    > Но его нужно вводить, потому что это правила разбора математических выражений. Если
    > на языке решаются реальные задачи, включающие математику, он обязан это делать.

    В префиксной нотации скобки не обязательны если арность фиксирована. Конкретно в лиспе скобки - это вызов процедуры, поэтому запись (+ * 1 2 3) просто некорректна, потому что * - это процедура и нужно писать так (+ (* 1 2) 3). Таким образом, скобки однозначно определяют порядок вычисления в мат выражении.

    >> разбирать и вычислить выражение можно за один проход, достаточно просто стэка
    > Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в
    > 10 ни в 100500 проходов программу распарсить, но не будем использовать
    > её возможности

    Можешь дальше писать на жс под электрон и требовать 16Гб памяти под ничего неделание.  

    > а заставить людей ковыряться в yблюдском формате.

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

     
     
  • 5.107, Аноним (108), 09:49, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>потому что * - это процедура

    (setf * 10)
    (print (+ * 1 2 3))
    (print (* * 10))

     
     
  • 6.116, Аноним (115), 13:00, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А ты зачем за процедурой в неймспейс данных лезешь?
     
  • 6.118, Вы забыли заполнить поле Name (?), 17:00, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >>>потому что * - это процедура
    > (setf * 10)
    > (print (+ * 1 2 3))
    > (print (* * 10))

    Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?

    > (print (* * 10))

    Вот это в Scheme работать не будет, т.к. ты пытаешься вызвать процедуру 10, а это не процедура.

     
     
  • 7.120, Аноним (120), 19:17, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?

    Намёк на особенности lisp-2. Что в лиспе разные пространства имён для разных сущностей.

     
  • 4.77, Аноним (77), 19:23, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > потому что это правила разбора математических выражений.

    Так в такой записи эти правила не нужны, про ассоциативность

    > а заставить людей ковыряться в yблюдском формате

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

     
     
  • 5.83, Вы забыли заполнить поле Name (?), 19:55, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > оно только выглядит страшно по началу

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

     
     
  • 6.102, Аноним (77), 04:52, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Именно так, да. В сложной формуле с кучей + и *, ещё и если всратые пробелы, легко запутаться, кто где первее выполняется. Уж во всяком случае одним взглядом не распарсишь
     
  • 6.119, n00by (ok), 19:12, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Транслятор Си на сложных выражениях выдаёт предупреждение и просит добавить скобки.
     
  • 2.71, Анонизмус (?), 18:57, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > В чём преимущество записи выражений в польской нотации. Типа: + 2 3

    (+ 2 3 4)

     

  • 1.25, Минона (ok), 15:33, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > На платформе FreeBSD реализована компоновка с libpthread и отключена рандомизация адресного пространства (ASLR).

    А чем фряха провинилась?

     
     
  • 2.100, Аноним (96), 00:41, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вам многопоточность дали, а вы недовольны. А рандомизация..., значит, работает плохо/не совсем как нужно.
     

  • 1.37, Аноним (36), 15:52, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Документацию на VOP бы...
     
  • 1.61, Аноним (26), 18:05, 05/02/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     

     ....ответы скрыты (6)

  • 1.85, Аноним (85), 20:25, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Непонятно для кого и для чего созданы все эти 100500 языков, связки Python + C хватает для всего.
     
     
  • 2.87, Аноним (86), 20:59, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кому-то и одного 1С хватает. Могу только пособолезновать
     
  • 2.92, Вы забыли заполнить поле Name (?), 21:28, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Непонятно для кого и для чего созданы все эти 100500 языков, связки
    > Python + C хватает для всего.

    Лисп создан в начале 60-х. Теперь посмотри когда создан Python и другие языки и задай свой вопрос их создателям.

     
  • 2.94, Вы забыли заполнить поле Name (?), 21:29, 05/02/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Непонятно для кого и для чего созданы все эти 100500 языков, связки
    > Python + C хватает для всего.

    И вообще Lisp не люди создали

    > It is an established fact that John McCarthy shared alien tech with the world in 1958 when he introduced us to Lisp.

     
     
  • 3.103, Аноним (-), 06:54, 06/02/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >John McCarthy shared alien tech

    Джон Маккарти "расшарил" людям инопланетную технологию. Возрадуйтесь люди!

     

  • 1.127, Аноним (127), 21:57, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Десятое правило Гринспена:
    Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру