Pull to refresh

Comments 22

Я когда-то очень давно изучал Лисп и Автолисп. Интересно, сейчас реально вообще найти работу, как-то связанную с лиспом?..

В каком смысле «связанную»? Всё IT связано с Lisp. Если точнее, то диалекты Lisp, в широком смысле, традиционно используются в качестве внутреннего представления в компиляторах.

Так, чтобы была какая-то продуктовая контора, имеющая своим внутренним языком Common Lisp/Scheme — сомнительно.

Вот и мне кажется, что сомнительно...

Lisp это по сути AST в чистом виде с накрученным поверх метапрограммированием. Знать и уметь перекладывать AST это одно из умений за которые платят много.

Знание Lisp у людей умеющих перекладывать AST обычно есть. Не знаю почему так выходит.

UFO just landed and posted this here

Вот, кстати, подскажи: в подходе Nanopass приходится делать много (десятка 2) типов AST, которые служат интерфейсами между проходами. С одной стороны, соседние AST практически не отличаются друг от друга, с другой — хотелось бы как-то их отличать.

То есть, в идеале мне нужно иметь какой-то вариант мягкого изменения типа AST, например, добавления payload (это легко — делается полиморфный тип), или добавления/удаления конструкторов (а это как?).

В общем, есть где что почитать на эту тему?

UFO just landed and posted this here
UFO just landed and posted this here

В лиспах эта проблема решается generic-процедурами, которые легко реализуются на core-языке без привлечения десятка "well established language extensions". Поэтому, вряд ли можно утверждать, что в лиспах есть сложности в работе с подобными древовидными конструкциями

Это я знаю! :-) Но ADT мне лично сильно нехватает. Как-то чувство спокойствия появляется.

Но, конечно, эти проблемы связаны исключительно с наличием типов. Что вы, что ув@true-grue, который пишет на Питоне, этих проблем не видите.

UFO just landed and posted this here

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

Конкретно меня эта статья зацепила тем, что в ней один из авторов технологии квазицитирования (которая, по-сути, удачное расширение широкоиспользуемой сейчас строковой интерполяции — f-strings, если писать лекцию для колхозников) рассказывает про детали и историю этой технологии.

Формат, конечно, не для Хабра — слишком глубоко и длинно, но ведь и Lisp* — это тоже хаб не для всех с улицы.

Выглядит как диссертация по ИТ-палеонтологии.

Эх... Могли бы раскрыть тему параллели с Expression в .Net

Эх... Могли бы раскрыть тему параллели с Expression в .Net

Как-то так:

Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

Ну, статья-то древняя, написанная явно раньше появления LINQ. А так в ней и Футамура тоже затронут, но не упомянут (то есть, мы должны писать про Truffle/Graal, которые на JVM).

И при всем при этом внутреннее представление квазицитирования до сих пор не стандартизовано в CL. Никаких тебе quasiquote, unquote и пр., каждый компилятор сам решает, как это представлять. И ведь столько лет прошло.

Sign up to leave a comment.

Articles