Ich brauche eine extrem kleine Implementierung von (vielleicht einer Teilmenge?) Javascript. Codegröße und Speicherverbrauch sind extrem wichtig (Geschwindigkeit ist nicht in Frage, es kann so langsam laufen, wie es möchte). Es muss in C (nicht C++) geschrieben sein, und zwar in ANSI C (GCC-Erweiterungen sind in Ordnung). Wenn es auf einer VM läuft, wäre es am besten, weil ich dafür einen Compiler schreiben muss. Irgendwelche Vorschläge?
EDIT: Beide Antworten, die ich habe, scheinen gut zu sein, außer:
SpiderMonkey konzentriert sich sehr darauf, es schneller zu machen, es ist mir egal, ob es überhaupt schnell ist.
Quad-Wheel klingt gut, außer der Aktivität darauf, und es gibt nur wenige Codekommentare (ich werde dies auf eine andere Architektur portieren, wenn das hilft).
Also, andere Antworten wären toll. Oder ich könnte meine eigene vereinfachte Version von JS einführen (aber das klingt überhaupt nicht lustig)
Es könnte hilfreich sein, wenn wir Ihren Anwendungsfall kennen. Ein eingebetteter Controller vielleicht?
– Robert Harvey
21. März 2011 um 23:02 Uhr
Müssen Sie Javascript verwenden? Beispielsweise gibt es eine Vielzahl von Implementierungen von Scheme (oder sogar Forth), die klein und vielleicht gut für Ihre Anwendung geeignet sind.
– Greg Hewgill
21. März 2011 um 23:24 Uhr
Wenn Sie Javascript nicht verwenden müssen, versuchen Sie es mit Lua.
– lhf
22. März 2011 um 0:51 Uhr
Es existiert bereits eLua. Ich würde gerne mein eigenes erstellen 🙂 Schema klingt gut, und es wäre sehr einfach, einen Interpreter dafür zu schreiben.
– Dhaivat Pandya
22. März 2011 um 1:59 Uhr
Es ist nicht klar, warum dies eingebettet getaggt ist.
– Clifford
22. März 2011 um 18:55 Uhr
Duktape ist in C geschrieben, mit Fokus auf Portabilität und kompaktem Footprint: http://duktape.org/
Im Vergleich zu einigen Alternativen ist die Dokumentation von Duktape ausgezeichnet. Ich wechsle aus genau diesem Grund von muJS zu Duktape.
– CyberFonic
5. Dezember 2014 um 22:05 Uhr
Was ist der RAM-Fußabdruck von Ducktape? Ich finde keine Dokumentation dazu. Ich weiß, dass Espurino in nur 8K starten kann
Ich habe lange danach gesucht, da Spidermonkey/v8 normalerweise ziemlich groß ist und mehrere Abhängigkeiten mit sich bringt. Tiny-js ist eine portable „run make and your done“-Linux-C-Klasse. Perfekt, wenn Sie nur nach einfachen Bindungen suchen und Javascript/C-Syntax gegenüber Lua/anderen großartigen Skriptsprachen bevorzugen.
+1 und akzeptiere. Das ist ziemlich toll. Entschuldigung für die eineinhalb Jahre verspätete Antwort.
– Dhaivat Pandya
12. Februar 2013 um 0:23 Uhr
tiny-js ist in C++ und nicht wie erwartet in C.
– rahulg
12. Februar 2013 um 9:27 Uhr
Es scheint, dass tiny-js praktisch nicht gewartet wird. Keine Commits seit Juli 2013.
– Alex Thomas
24. September 2014 um 5:20 Uhr
Es scheint, dass Duktape (@Samuli Kärkkäinen, unten) eine zeitgemäßere Alternative ist. Da es ECMA-Standards implementiert, entspricht es besser den Prinzipien “objektbasierter” Implementierungen.
muJS von Artifex Software könnte eine weitere Option für die eingebettete JS/ES-Implementierung sein.
pcmacdon
Sie sollten sich Jsi ansehen, das gerade veröffentlicht wurde. Es ist sehr klein, ist eine Teilmenge von Javascript und ist in C (abgeleitet von Quadwheel).
Es könnte hilfreich sein, wenn wir Ihren Anwendungsfall kennen. Ein eingebetteter Controller vielleicht?
– Robert Harvey
21. März 2011 um 23:02 Uhr
Müssen Sie Javascript verwenden? Beispielsweise gibt es eine Vielzahl von Implementierungen von Scheme (oder sogar Forth), die klein und vielleicht gut für Ihre Anwendung geeignet sind.
– Greg Hewgill
21. März 2011 um 23:24 Uhr
Wenn Sie Javascript nicht verwenden müssen, versuchen Sie es mit Lua.
– lhf
22. März 2011 um 0:51 Uhr
Es existiert bereits eLua. Ich würde gerne mein eigenes erstellen 🙂 Schema klingt gut, und es wäre sehr einfach, einen Interpreter dafür zu schreiben.
– Dhaivat Pandya
22. März 2011 um 1:59 Uhr
Es ist nicht klar, warum dies eingebettet getaggt ist.
– Clifford
22. März 2011 um 18:55 Uhr