Представлен LISP/c - транслятор Common Lisp в C/C++

Увидел свет транслятор LISP/c. Инструмент ставит целью объединение выразительной силы языка Common Lisp и скорости языков C/C++, что позволяет воспользоваться мощным механизмом Lisp-макросов для генерации текста программ на C. В трансляторе реализована поддержка pthreads, MPI и CUDA. Поддерживается создание классов и шаблонов C++. В данный момент реализация LISP/c протестирована и может работать с использованием CLISP.

Примеры:
1. Hello World

       (header stdio)     (main       (@printf (str "Hello, world!"))       (return 0))  

транслируется в 

     #include ‹stdio.h›       int main(int argc,char **argv)     {        printf("Hello, world!");        return 0;     }  

2. Макросы

     (templates make-foo (typ)       (func (add/sym foo- typ) typ ((x typ) (y typ))         (return (+ x (* y 2)))))       (make-foos int long float double)  

транслируется в 

     int foo_int(int x, int y) {return x + y * 2;}     long foo_long(long x, long y) {return x + y * 2;}     float foo_float(float x, float y) {return x + y * 2;}     double foo_double(double x, double y) {return x + y * 2;}  

©  OpenNet