Ура, вот и настал мой звёздный час. Наконец-то я надёжно заработаю посмертное попадание в ад, где буду, загорая на сковородке, обсуждать с лисперами-сатанистами дела давно минувших дней. Но приступим к делу. Предлагается создать open-source библиотеку, являющуюся лисповым синтаксисом для С.
Это не будет embedded lisp. Это не будет связка lisp-C по FFI или через IPC (хотя это возможно). Это не будет очередная виртуальная машина (хотя и это возможно). Это будет лисповая оболочка над С.
Будет иметься постоянно запущенная лисп-среда, своего рода "пчела-матка", которая будет генерировать C-код. С-код будет компилироваться обычным C-компилятором и потом исполняться отдельно.
Что мы возьмём от С? Всё. Результатом работы первой фазы компилятора будет обычный С-код.
Что мы возьмём от лиспа? Синтаксис. Синтаксис лиспа - это синтаксис деревьев из идентификаторов и констант. Кроме того, от лиспа мы возьмём статическое МП. Т.е., у нас будет не только c::defun (определение с-функции) и не только с::typedef. Но и defmacro, обычное лисповое defmacro, которое заменит #define. Также у нас будет лисповый класс c-type (который уже есть в разных реализациях лиспа в связи с FFI). Также у нас будет парсер сишных заголовочных файлов, чтобы мы могли "заинклюдить" сишный код в наш лисповый код. Такой парсер в разных реализациях лиспа тоже есть.
Зачем это нужно? Например, чтобы писать более удобно, чем на С, программы, которые обычно пишутся на С.