script rutinas para layers crear como lisp scheme scripting-language

lisp - rutinas - como crear layers en autocad



¿Cuáles son algunas implementaciones Lisp pequeñas prácticas que se insertan en C? (9)

Estoy buscando formas de integrar un lenguaje similar a Lisp en un programa en C, pero quiero hacerlo sin aumentar considerablemente el tamaño del programa. No necesita ser rápido, o soportar muchas características. (Aunque las macros estarían bien). Esta no es una aplicación de uso intensivo de matemáticas.

Me interesan los intérpretes empotrables pequeños y también los compiladores que generan código incrustable y autocontenido muy pequeño.


Erizo

Hedgehog es una implementación muy concisa de un lenguaje similar a Lisp para dispositivos de gama baja e integrados. Se compone de un compilador y un intérprete de código de bytes. El intérprete de código de bytes está escrito en C estándar, es eficiente y fácil de transportar, y se puede compilar en un ejecutable muy pequeño de solo 20 kilobytes en la configuración más pequeña para la arquitectura Intel x86.

El dialecto Hedgehog Lisp tiene soporte adecuado para funciones locales y lambda, alcance léxico, funciones de argumento variable, recolección de basura, excepciones, macros y más de cien funciones predefinidas o formas especiales. Los tipos incorporados son listas, símbolos, cadenas, enteros de 32 bits, árboles AVL y tuplas de hasta 16 elementos de ancho. Los enteros de ancho de 32 bits apropiados son necesarios para varias operaciones de nivel de bits en sistemas integrados.

Hedgehog es software libre. El compilador y el intérprete están bajo la Licencia Pública General Menor de GNU (LGPL) y la biblioteca estándar de Hedgehog está bajo una licencia similar a la BSD. La versión gratuita funciona en Linux y debería ser trivialmente portátil a cualquier sistema POSIX.

Erizo en github


No olvides mi favorito, XLisp , de David Betz. Estable desde los años 80 y una vez que el corazón de Autocad y un programa de autoría musical (Finale, creo).




Puedes probar ECL (Embeddable Common Lisp). ECL es un Common Lisp completo que se puede incrustar fácilmente en los programas de C y que genera pequeños binarios. Sin embargo, no es tan rápido como SBCL.


También hay una variante de Lisp llamada NewLisp . Tiene un tamaño aproximado de 200k (leve variación según la plataforma) y se puede incrustar. Es compatible con macros y se ejecuta en todas las plataformas principales. La licencia es GPL.


TinyScheme es bastante pequeño. Nils Holm también hizo que algunos intérpretes Lisp pequeños estuvieran disponibles en su página web .


GNU Guile es una implementación del Esquema expresamente con el propósito de integrarlo en otros programas.


LYSP es muy pequeño aunque un poco crufty. El intérprete con gc supuestamente es de 21k. Ha pasado un tiempo desde que lo miré, pero iirc es un intérprete tradicional con un lector y una impresora y eval. Hedgehog (que me gusta) tiene un tiempo de ejecución del mismo tamaño, pero simplemente ejecuta un bytecode compilado (no hay lector ni impresora en el tiempo de ejecución, no eval, el compilador es un programa separado y más grande). Creo que Lisp se está volviendo bastante oscuro en estos días y el pequeño intérprete integrado por defecto en estos días es Lua.

Mi suposición sobre la respuesta de NewLisp que se está descargando es que 200k es bastante grande en comparación con los otros programas mencionados.