¿Hay lenguajes de scripting estáticamente tipeados e incrustables? [cerrado]


Me pregunto si hay algún lenguaje de scripting con tipado estático e incrustable. Python, JavaScript, etc. son grandes lenguajes, pero se escriben dinámicamente (es decir, los tipos se comprueban en tiempo de ejecución). Me pregunto si alguien conoce algún lenguaje de scripting de tipo estático que se pueda incrustar en una aplicación de C++.

Author: Georg Fritzsche, 2010-04-04

4 answers

Bueno, hay Ch - el intérprete C/C++ integrable

 3
Author: Eli Bendersky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-04 19:10:43

Te sugiero que revises Angelscript. Lo usamos en Warsow y es bastante bueno. Tiene todas las características que esperarías como clases, administración de memoria, etc. Dado que se escribe estáticamente, puede hacer mejores optimizaciones para usted, y por lo que el bytecode termina más rápido que otros lenguajes de scripting.

Sin embargo, COMO no es tan fácil de usar como otros como Lua, y solo hay un solo .descarga zip means eso significa que no .exe installers, .paquetes deb, .dmg o algo así. En general, esto está bien porque de todos modos querrás incluir AS en tu proyecto. La principal dificultad en comparación con Lua es que la biblioteca es mucho más grande (pero tiene más características). No mucha gente lo usa, por lo que es mucho más difícil encontrar ejemplos y ayuda, pero hay buenos documentos, por lo que no debería ser tan difícil comenzar.

Sin embargo, personalmente preferiría tener un lenguaje dinámico para scripting. Cuando escribo una aplicación, quiero entrar ahí y codificarla. sin preocuparse por el equipaje estilo C. Aparte de AngelScript, realmente no puedo pensar en ninguna otra que valga la pena recomendar.

 12
Author: Jyaan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-03 17:02:04

¿Qué tal C#? Echa un vistazo a la implementación de Mono de un C# "lenguaje de scripting" REPL ( http://www.mono-project.com/CsharpRepl )

Update: Si no sabes qué es un REPL, es lo que ves cuando ejecutas Python sin ningún argumento, o irb

 2
Author: Paul Betts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-04 19:27:34

Haskell se escribe estáticamente. Y probablemente puede incrustar ghci o hugs (ambos son intérpretes) en otro programa. Pero no es fácil, afaik.

 1
Author: Sebastian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-08 23:53:29