2009-12-21 21 views
9

¿Alguien sabe de una implementación de un intérprete de lenguaje de scripting (algo apropiado para un juego) en Erlang? Algo como Javascript o Lua sería genial.Erlang Scripting Language Interpreter

+1

¿Por qué querrías un intérprete de Javascript o Lua escrito en Erlang? ¿Qué tipo de beneficio crees que obtendrás de algo como esto? –

+1

Escribo un servidor de juegos en Erlang, y me gustaría que los jugadores puedan escribir scripts para el juego que se ejecuta en el servidor. – Paul

+0

En algunos casos, hay una razón muy importante para no utilizar Erlang como un lenguaje de scripting expuesto. Si vas a permitir secuencias de comandos creadas por jugadores, entonces necesitas una forma de aislar lo que pueden hacer. Un ejemplo donde puedes hacer esto es en un fango. Poner algún tipo de intérprete en erlang va a ser una buena forma de permitir el contenido creado por el jugador, pero aún así poder restringir qué acciones pueden tomar sus scripts. –

Respuesta

5

Puede probar C/C++ port driver para ejecutar lua (u otro) intérprete de lenguaje, erlua es más probable que lo que necesita (funciona a través de controlador de puerto, supongo).

3

Erlang se puede utilizar como lenguaje de scripting. Ver escript en los documentos de Erlang.

+1

Esto es genial, pero estoy buscando un lenguaje similar a los dos que mencioné. Tengo la sensación de que Erlang no creará un lenguaje de scripting tan bueno. =/ – Paul

3

I segunda sugerencia de Vijay para usar Erlang. Sin embargo, también señalaré la existencia de Reia, que parece ser exactamente lo que usted solicita.

EDIT: Correcto, entonces está erlyjs, un compilador de JavaScript dirigido a la máquina virtual Erlang. No tengo ni idea de en qué etapa de desarrollo se encuentra este proyecto, qué tan bien está progresando, etc., pero ustedes pueden verificarlo. No estoy seguro si requiere una compilación anticipada del código JS, necesitaría verlo usted mismo ...

Here encontrará una de varias horquillas Github de la base de código. Todo en Erlang, por lo que puedo ver.

Una vez más, este no es un producto maduro. Pero luego, con el surgimiento de CouchDB, algo como esto podría ser realmente útil en algunas formas significativas ... por lo que es de esperar que en realidad madure algo pronto.

+0

Tal vez no parezca lo suficientemente claro, pero no estoy buscando escribir programas de Erlang (como en, programas que se compilarán en el bytecode de Erlang) en otro idioma. Lo que estoy buscando es un intérprete * en * Erlang. – Paul

+0

Bueno, desde la página principal de Reia: "Reia (pronunciado RAY-uh) es un lenguaje de scripting Ruby/Python". Compila el código de su programa a byte, pero también lo hace Python; en ambos casos sucede sobre la marcha cuando es necesario. La sintaxis no se parece en nada a Erlang IMO. Supongo que no es del todo similar a JS/Lua, pero al menos vale la pena echarle un vistazo. De todos modos, no estoy seguro si no fue posible ejecutar JavaScript en un motor basado en Erlang; miraré alrededor y actualizaré si encuentro algo. –

+0

Sí, erlyjs parece un proyecto increíble, desafortunadamente la versión de github parece bastante inmadura, y todo lo que está disponible. El repositorio original del código de Google desapareció misteriosamente: http://code.google.com/p/erlyjs/ También analicé cómo CouchDB maneja JavaScript, y veo que genera procesos de SpiderMonkey.Tal vez podría encontrar una forma de insertar V8 en un Cnode Erlang ... Bummer. ¡Gracias por tu ayuda, sin embargo! – Paul

0

Esta pregunta aparece en la búsqueda de Google, pero los comentarios no responden a la solicitud original. La respuesta que el cartel original buscaba era luerl en github: https://github.com/rvirding/luerl

Luerl es lua 5.3 vm implementado en Erlang y desarrollado por Robert Virding, uno de los desarrolladores originales de Erlang.