c++ - best - codelite
¿Lenguaje de scripting para C/C++? (12)
¿Existe un lenguaje de scripting para C ++ (como perl) que se pueda usar para un desarrollo rápido y use alguna herramienta que se pueda convertir en un programa de C / C ++ para obtener un mayor rendimiento para la implementación?
EDITAR:
Basado en algunos comentarios, permítanme aclarar la pregunta. Debería poder convertir el script en un programa C / C ++ o binario sin modificar mi script.
Cling es un intérprete para c ++ cling
Con un intérprete de C / C ++ puede usar C / C ++ como lenguaje de scripting
Ch : http://www.softintegration.com/
Intérprete comercial de C / C ++ con una edición estándar gratuita. Tiene soporte para varias bibliotecas populares y juegos de herramientas de ventanas.
CINT : http://root.cern.ch/drupal/content/cint
Intérprete C / C ++ de código abierto (licencia MIT) desarrollado activamente. Desarrollado como parte del entorno ROOT en el CERN . Utilizado por muchos físicos.
ccons : http://code.google.com/p/ccons/
Una consola C interactiva que emplea LLVM y su nueva interfaz C (clang). Bajo desarrollo activo
UnderC : http://home.mweb.co.za/sd/sdonovan/underc.html
Un intérprete de C ++ de código abierto (LGPL). Parece un poco anticuado (2002).
Nota: Hasta ahora, solo he probado Ch y CINT . He añadido ccons y UnderC para que la lista sea más completa.
Cualquier persona interesada en un lenguaje de secuencias de comandos que es (en su mayoría) muy similar a C ++, puede querer echar un vistazo a angelscript (ZLIB):
AngelCode Scripting Library, o AngelScript como también se conoce, es una biblioteca de scripts multiplataforma extremadamente flexible diseñada para permitir que las aplicaciones amplíen su funcionalidad a través de scripts externos. Se ha diseñado desde el principio para ser un componente fácil de usar, tanto para el programador de aplicaciones como para el escritor de scripts.
Se han hecho esfuerzos para dejar que llame funciones estándar de C y métodos de C ++ sin necesidad de funciones proxy. La aplicación simplemente registra las funciones, los objetos y los métodos con los que los scripts deberían poder trabajar y nada más debe hacerse con su código. El motor de secuencias de comandos también puede usar las mismas funciones que la aplicación usa internamente, lo que elimina la necesidad de duplicar la funcionalidad.
Para el escritor de scripts, el lenguaje de scripting sigue la sintaxis ampliamente conocida de C / C ++ (con cambios menores), pero sin la necesidad de preocuparse por los punteros y las fugas de memoria. Al contrario de la mayoría de los lenguajes de scripting, AngelScript usa los tipos de datos comunes de C / C ++ para una comunicación más eficiente con la aplicación host.
Para obtener más información, visite: http://www.angelcode.com/angelscript/sdk/docs/manual/index.html
GML: www.yoyogames.com
Hay un nuevo paquete Chaiscript que está diseñado para C ++. Es relativamente nuevo y todavía no es completamente estable.
La pregunta podría ser interpretada de diferentes maneras ...
Si ya ha codificado una parte de su aplicación en C ++ y necesita agregar módulos o scripts, que desea agregar en el código de C ++ para obtener un mejor rendimiento, puede usar Qt, que es un marco multiplataforma sólido y muy completo.
Incluye soporte para scripts (ECMAScript, la versión estandarizada de Javascript), desde donde puede acceder a sus objetos de C ++ si lo necesita. También proporciona soporte para complementos.
Con ese enfoque, incluso puede proceder en tres pasos,
- Primero haz algunas pruebas en Javascript,
- luego codifique la base de su aplicación en C ++ y aún use una parte en los scripts (por ejemplo, si necesita probar diferentes algoritmos),
- y finalmente portar todo, o al menos las partes críticas, en C ++.
Otra opción es incrustar un intérprete de Python en su código, aunque eso probablemente requerirá más trabajo.
Muchos proyectos se combinan, por ejemplo, C ++ y Python; consulte, por ejemplo, boost.python .
Prefiero R y uso la interfaz Rcpp de R a C ++.
Cualquiera de los dos casos le brinda su lenguaje de scripting para la creación de prototipos y el fácil "pegamento" a C ++ para el rendimiento.
No estoy seguro de entender su pregunta, pero si está buscando implementar su propio lenguaje de scripting que pueda interactuar con su código c ++, puede echar un vistazo a boost :: spirit. Solo tiene que decirle su gramática y su lenguaje de scripting hará lo que le diga en c ++. Usted especifica su gramática utilizando operadores de c ++, lo que lo hace muy fácil e intuitivo.
Eso es lo que actualmente uso para mis necesidades recientes y parece que hará el trabajo bien. Usted tiene acceso completo a sus objetos de c ++ al especificar su gramática y su usuario puede aprender un lenguaje muy simple (en comparación con CINT, donde el lenguaje sería el propio c ++).
El tiempo de compilación es un poco lento ahora, pero si no necesita implementar un lenguaje muy complejo, debería ser manejable (no me gustaría ver el tiempo de compilación para algo como c ++). También faltará un poco de documentación para la versión más reciente (y la versión más actualizada es un poco difícil de encontrar) pero es relativamente fácil de usar, por lo que puede valer la pena verificarla, según sus necesidades.
Para Python, a veces encuentro que el psyco útil. No estoy seguro si hay algún equivalente para perl sin embargo.
Al elegir un idioma para una tarea, me resulta más útil elegir el idioma más adecuado para el trabajo. Si el trabajo solicita más rendimiento del que un lenguaje de secuencias de comandos puede proporcionar en condiciones normales, generalmente es mejor simplemente cambiar que ir hacia atrás para intentar que su código sea rápido.
Podría codificar utilizando el lenguaje de programación D como script o como salida compilada rápida.
Aquí hay un artículo que habla en detalle sobre D y sus ventajas "The Case for D"
Puede probar Lua bastante frecuencia con C ++ en la industria de los juegos. Tiene una pequeña huella de memoria y es bastante madura, tiene una gran biblioteca ... inténtelo.
hm ... No entiendo lo que quieres lograr: ¿quieres encontrar un lenguaje de scripting que, de alguna manera, se convierta mágicamente en fuente de c ++? ¿O lo que realmente quieres es solo una opción para crear un ejecutable desde el script? Si es lo último, entonces puedes probar py2Exe .
peón es un lenguaje de extensión de 32 bits simple, sin tipo, con una sintaxis similar a C. Un programa "fuente" de peón se compila en un archivo binario para una velocidad de ejecución óptima. El compilador de peones genera un código P (o un código de bytes) que posteriormente se ejecuta en una máquina abstracta. La velocidad de ejecución, la estabilidad, la simplicidad y una pequeña huella fueron criterios de diseño esenciales tanto para el lenguaje como para la máquina abstracta.
Este lenguaje es muy similar a la sintaxis de c, por lo que cualquier persona que haya hecho c ++, c, c #, java podrá leerlo y está simplemente simplificado para que ninguno de los codificadores pueda leerlo. Este lenguaje se usa actualmente en todos los sitios, entre otros, en los scripts de los servidores halflife 1 y halflife2 .