Tiny implementación de javascript?
embedding (10)
Necesito una implementación extremadamente pequeña de (¿quizás un subconjunto de?) Javascript. El tamaño del código y el uso de la memoria son extremadamente importantes (la velocidad no está en la pregunta, puede funcionar tan lento como desee). Debe estar escrito en C (no en C ++), y eso también, ANSI C (extensiones GCC están bien). Si se ejecuta en una máquina virtual sería lo mejor, porque tendré que escribir un compilador para ello. ¿Alguna sugerencia?
EDITAR: Ambas respuestas parecen buenas, excepto:
SpiderMonkey se concentra mucho en hacerlo más rápido, no me importa si es rápido.
Quad-Wheel suena bien, excepto la actividad en él, y los comentarios del código son pocos (voy a trasladar esto a otra arquitectura si eso ayuda).
Entonces, cualquier otra respuesta sería genial. O bien, podría lanzar mi propia versión simplificada de JS (pero eso no suena divertido en absoluto)
¿Has mirado JerryScript ?
Acabo de descubrir este ruby: https://github.com/gfwilliams/tiny-js
He estado buscando bastante tiempo para esto, ya que spidermonkey / v8 generalmente es bastante grande y viene con varias dependencias. Tiny-js es un portátil ''run make y tu done''-linux c-class. Perfectamente para si solo buscas enlaces simples y prefieres javascript / c-sintaxis sobre lua / otros lenguajes de scripting increíbles.
Creo que el jsi del que está hablando es este: http://pdqi.com/cgi-bin/cgiwrap/pdqi/jsi.cgi/doc/tip/jsi/www/usingjsi.wiki
(No culpes, no es ... jeje)
Deberías mirar a Jsi, que acaba de ser lanzado. Es muy pequeño, es un subconjunto de javascript y está en C (derivado de quadwheel).
Duktape está escrito en C, con un enfoque en la portabilidad y la huella compacta: http://duktape.org/
SpiderMonkey es la implementación C de Mozilla de JavaScript.
Un motor ANSI-C para ECMA-262: http://code.google.com/p/quad-wheel/
Mozilla SpiderMonkey también está escrito en C, pero probablemente sea complejo y grande para ti.
http://jsish.org lo redirigirá al sitio host.
muJS de Artifex Software podría ser otra opción para la implementación de JS / ES integrada.
https://github.com/cesanta/v7 está diseñado para sistemas integrados. Tiene una huella muy pequeña.