Size: a a a

2020 May 27

AP

Aleksei (astynax) Pi... in fprog_spb
В этом плане особых различий от S-exp-only лиспов нет.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Racket, кстати, не "самый настоящий". Ибо это Scheme со скучным единым неймспейсом для функций и всего остального (Лисп-1, то есть)
источник

VM

Vyacheslav Mikushev in fprog_spb
Aleksei (astynax) Pirogov
Да нет никакого AST! Структура читается и тут же обрабатывается. Один из видов обработки — возврат новой структуры, которую нужно заново процессить. Это всё неразделимо и происходит в течении всего сеанса работы интерпретатора
Какого интерпретатора? sbcl -полноценный компилятор, у которого есть три фазы: чтение, разворачивание макросов, компиляция в байткод (вероятно даже в ассмемблер).
источник

VM

Vyacheslav Mikushev in fprog_spb
Да и когда говорите LISP уточняйте какой именно. Лиспов куча и многие отличаются друг от друга так же как и C++ от Haskell.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
То, что есть компиляторы, не означает, что язык компилируемый :)
источник

AP

Aleksei (astynax) Pi... in fprog_spb
SBCL кучу ограничений привносит, если хочется именно "всё скомпилить"
источник

VM

Vyacheslav Mikushev in fprog_spb
Aleksei (astynax) Pirogov
SBCL кучу ограничений привносит, если хочется именно "всё скомпилить"
Каких?
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Крылья подрезает!
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Ни макрос не объявить в рантайме, ни переписать язык на лету :)
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Да ладно, я скорее шучу. И да, лиспы очень разные
источник

VM

Vyacheslav Mikushev in fprog_spb
В чем проблема? Ты за собой тащишь полный образ лисп системы, делай что хочешь.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Не так это не коспиляция в ассемблер уже :)
источник

AP

Aleksei (astynax) Pi... in fprog_spb
И не проблема, конечно
источник

VM

Vyacheslav Mikushev in fprog_spb
Если, конечно, ты не сделал treeshake.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Ага %)
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Собственно это и интересно: можно сделать компиляцию в эффективный машинный код, а можно сделать программу, которая допишет себя.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Racket, кстати, тоже "компилирует", линкуя интерпретатор к байткоду.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Образа нет, конечно.
источник

VM

Vyacheslav Mikushev in fprog_spb
Jerzy Syrowiecki
и синтаксический сахар есть, если я правильно понимаю. типа '(a b c) = (quote a b c)
Это не синтаксический сахар, а reader-макросы. Можно самому писать такие.
источник

PS

Peter Sovietov in fprog_spb
Aleksei (astynax) Pirogov
Racket, кстати, тоже "компилирует", линкуя интерпретатор к байткоду.
В Racket еще и JIT используется, ну а сейчас там вообще Chez вместо байткода :)
источник