2010-12-11 14 views
10

Another post cuestionaron cuán práctico es compilar idiomas en Javascript. Aparte de la práctica, ¿qué intérpretes traducen de algún idioma X a Javascript y se implementaron en Javascript? Estoy especialmente interesado en los casos en que X no fue diseñado con la intención de apuntar a Javascript. Incluso si el intérprete no está totalmente terminado, me gustaría escucharlo.Idiomas que se interpretan en Javascript?

Puede que tenga curiosidad acerca de la motivación para esta pregunta. JavaScript ciertamente no puede aprovechar tanta potencia como el ensamblador, pero la flexibilidad para la distribución y ejecución del código puede a veces superar ese costo.

Un caso de uso para estos intérpretes es un modelo para enseñar y aprender lenguajes de programación. Considere qué tan útil es tener un intérprete de Javascript en el libro interactivo Eloquent Javascript. Claro, puede haber un golpe de rendimiento sobre compilarlo de forma nativa, pero en algunas situaciones el costo ciertamente lo vale. Y sí, me doy cuenta de que siempre es una opción confiar en el servidor para compilar o interpretar el código, pero estoy específicamente interesado en los enfoques del lado del cliente.


ACTUALIZACIÓN: Una gran cantidad de respuestas incluyen referencias a los compiladores que no fueron implementados en Javascript. Solo quiero enfatizar que el intérprete en sí debería implementarse en Javascript para que tanto él como el código de idioma de origen puedan ejecutarse en el navegador de la computadora de su abuelo.

+0

+1 lenguaje de orden superior -> orden superior lang la compilación uage siempre es interesante. – Orbling

+0

Re: su actualización: el compilador no tiene que implementarse en JavaScript, solo en un lenguaje que * puede * ejecutarse * en JavaScript. El compilador de CoffeeScript, por ejemplo, está escrito en CoffeeScript. Pero dado que el compilador CoffeeScript compila CoffeeScript a JavaScript, puede compilar * * a JavaScript y así ejecutarlo en el navegador. Lo mismo se aplica a cualquier compilador escrito en C (ya que hay un compilador que compila C a JavaScript), Java, cualquier lenguaje .NET que compile a CIL, cualquier lenguaje JVM que compile en JVML, cualquier lenguaje que compile a LLVM Bitcode o LLVM IR, ... –

Respuesta

4

Wiki de la Comunidad, vamos a Mash Esta cabo :-)

jsc - re-compila de CIL (CIL compilado a partir de VB.NET, C#, etc.)

Script# - compila desde C# (fuente- código).

GWT: Google Web Toolkit - compila desde Java.

Emscripten - compila desde LLVM. Debería poder funcionar (Idioma X) -> LLVM-> JavaScript, menos problemas, donde Language X tiene un compilador LLVM.

+0

¿Sin alternativas C/C++? – ROAR

+0

@RA Agregó un enlace Emscripten de usted, que compila desde LLVM :-) No dude en agregar más información. –

0

Pyjamas puede compilar Python a JavaScript. Esa es una traducción tipo servidor; Pijamas aún no se ha utilizado para compilarse, por lo que no hay un intérprete de Python JavaScript.

1

j2js compila el código de bytes de Java para Javascript (por ejemplo, Java, Scala, etc.).

+0

Lamentablemente, ya no más. Consulte https://github.com/decatur/j2js-compiler/ por los motivos. –

Cuestiones relacionadas