c++ - expresiones - lenguajes de programacion mas usados 2018
Lisp como lenguaje de scripting en una aplicación C++ (9)
Oye, he estado buscando la posibilidad de agregar un lenguaje de scripting en mi framework y escuché acerca de Lisp y pensé en probarlo. ¿Hay una máquina virtual para Lisp como Lua y Python o estoy en la mentalidad equivocada? Encontré CLISP aquí, http://clisp.cons.org/ , pero no estoy seguro si esto es lo que estoy buscando.
¿Alguien puede señalarme en la dirección correcta?
A menos que necesite la totalidad de Lisp, es posible que desee establecer una implementación del esquema como Guile, que debe incorporarse a otro programa.
Google un poco: Common Lisp como lenguaje de extensión
Pero tenga en cuenta que Common Lisp no fue diseñado desde cero para ser un lenguaje de extensión, a diferencia de Lua o Guile.
Un consejo general: trate de usar un lenguaje de extensión que realmente haga que el trabajo de escribirlos sea más fácil, y recuerde que dominar Lisp para que pueda ser realmente productivo puede llevar bastante tiempo (y no hay muchas personas alrededor que puedan soportar tantas parens xD).
Lisp es una familia de idiomas.
Common Lisp es un estándar ANSI que es enorme . Piensa en C ++ enorme. No lo use como un lenguaje de script.
A menos que esté apuntando a programadores bastante hardcore, Lisp como lenguaje de scripting va a ser ... er ... no está tomando bien. Probablemente . Es probable que Lua sea una mejor apuesta como lenguaje de script.
Dicho esto, un Lisp está bien (técnicamente) para implementar un lenguaje de scripting.
CLISP es solo una implementación de Common Lisp. Es una implementación muy buena, y tiene cierto soporte para ser incorporada en otros programas (basados en C), pero ese no es su enfoque y es GPL, lo que puede o no ser un factor decisivo para usted.
Es posible que esté interesado en retirar ECL . Esta implementación está diseñada específicamente para ser incorporada (¡de hecho, la "E" significa "Embebedable"!), Y tiene numerosas características que pueden ser útiles para usted, incluida la capacidad de compilar programas Common Lisp para C (además de proporcionar byte) compilación de código y un intérprete).
Hay un par de opciones fáciles.
GUILE es el lenguaje de extensión de GNU. Es un Esquema incrustable (dialecto de LISP). GPL (naturalmente).
TinyScheme es una implementación muy pequeña, muy simple basada en intérpretes de Scheme. Fue utilizado con éxito por una empresa de malware para hacer todo tipo de cosas desagradables. Está disponible en forma de fuente, no recuerdo bajo qué licencia (s).
Pruebe Incrustable Common Lisp (ECL).
Está destinado a la integración y solo se obtienen las partes de Common Lisp vinculadas que necesita tu lenguaje de scripting.
Un Lisp es una buena opción para un lenguaje incrustado. Mucha gente cree que Lisp es difícil, pero la sintaxis es relativamente ligera, especialmente para los no programadores. En esencia, es la notación de prefijo y eso es todo. Las reglas de precedencia son siempre inequívocas. Los nombres de funciones y nombres de variables pueden ser iguales. Eres muy libre de usar los caracteres que quieras para los nombres de diversión y var.
Con Lisp puedes doblar la sintaxis a tu gusto; los usuarios no tienen que aprender el ceceo común . Es fácil ampliar y proporcionar instalaciones más simples, como la expresión de reglas comerciales o la extracción de datos de archivos.
Creo que mi punto es que el poder y la complejidad de decir Common Lisp, permite la provisión de construcciones simples, específicas de dominio para el usuario final. Muchos otros lenguajes integrados significarán que los usuarios aprenderán las complejidades de ese idioma.
Como no es un Lisp, Fuzuli tiene una sintaxis similar a Lisp. Es fácil de integrar en aplicaciones C ++. El sitio oficial es http://www.fuzuliproject.org
Otra es newLISP en http://www.newlisp.org/ y tampoco es un Lisp, pero está muy cerca de Lisp.
Chicken Scheme es otra opción para incrustar. Vea aquí para más detalles de la API embebible.