Size: a a a

2020 May 27

VM

Vyacheslav Mikushev in fprog_spb
Aleksei (astynax) Pirogov
Собственно это и интересно: можно сделать компиляцию в эффективный машинный код, а можно сделать программу, которая допишет себя.
Вот хороший ответ по поводу компиляторов common lisp. https://stackoverflow.com/questions/913671/are-there-lisp-native-code-compilers
источник

VM

Vyacheslav Mikushev in fprog_spb
Там про нативный код.:)
источник

AP

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

JS

Jerzy Syrowiecki in fprog_spb
Vyacheslav Mikushev
Это не синтаксический сахар, а reader-макросы. Можно самому писать такие.
в чём отличие?
источник

AP

Aleksei (astynax) Pi... in fprog_spb
В том, что даже это не часть парсера
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Можно расширять именно синтаксис S-exps
источник

VM

Vyacheslav Mikushev in fprog_spb
Jerzy Syrowiecki
в чём отличие?
Вероятно, ни в чем.:) Но у меня синтаксический сахар ассоциируется с тем, что разработчики компилятора добавляют явно, а не то, что программист, использующий компилятор, может добавить сам.:)
источник

VM

Vyacheslav Mikushev in fprog_spb
Aleksei (astynax) Pirogov
Можно расширять именно синтаксис S-exps
Я бы сказал, что можно добавить любой синтаксис, если семантика укладывается в common lisp.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Обычно всё же расширяют S-exps, даже рэкетиры
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Хотя лисп-код можно и в XML закодировать %)
источник

PS

Peter Sovietov in fprog_spb
Странно, однако, что со всеми этими средствами большая часть проектов на Лиспе все равно не использует изящные DSL-нотации. Даже в таких заурядных языках, как Ребол или Форт, чаще расширяют синтаксис :)
источник

VM

Vyacheslav Mikushev in fprog_spb
Не знаю как Ребол, но Форт мне не кажется заурядным. 😁
источник

PS

Peter Sovietov in fprog_spb
Vyacheslav Mikushev
Не знаю как Ребол, но Форт мне не кажется заурядным. 😁
С точки зрения расширения синтаксиса все, что там есть готового — WORD :) А в Rebol — целая PEG-подобная система.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Сравнивать лиспы с фортами очень странно
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Forth — это вообще "собери себе весь язык сам, потом будешь задачу решать"
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Более того, в случае форта принято думать о близости DSL к естественному языку. Культура такая.

Лисповые DSL — практически всегда eDSL, то есть вариации на тему S-exps с функциями в префиксной позиции и вот этим всем
источник

PS

Peter Sovietov in fprog_spb
Ну вот в сообществе Racket идею Форта о том, что решение задачи надо начинать с написания языка, начинают перенимать:
https://drops.dagstuhl.de/opus/volltexte/2019/10548/pdf/LIPIcs-SNAPL-2019-5.pdf
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Racket же и есть язык для написания языков %)
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Он не просто так PLT-Scheme назывался раньше
источник

AP

Aleksei (astynax) Pi... in fprog_spb
На ракете прототипировали и прототипируют "языки под пейперы"
источник