Winzige Javascript-Implementierung? [closed]

Lesezeit: 3 Minuten

Benutzer-Avatar
Dhaivat Pandya

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

    – JockM

    14. März 2018 um 22:14 Uhr

Benutzer-Avatar
Kodierer der Erlösung

Ich habe gerade diesen Rubin entdeckt: https://github.com/gfwilliams/tiny-js

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.

    – CyberFonic

    5. Dezember 2014 um 22:08 Uhr

Eine ANSI-C-Engine für ECMA-262: http://code.google.com/p/quad-wheel/

Mozilla SpiderMonkey ist auch in C geschrieben, aber wahrscheinlich zu komplex und groß für Sie?

SpiderMonkey ist Mozillas C-Implementierung von JavaScript.

http://www.mozilla.org/js/spidermonkey/

muJS von Artifex Software könnte eine weitere Option für die eingebettete JS/ES-Implementierung sein.

Benutzer-Avatar
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).

Benutzer-Avatar
Gemeinschaft

Ich denke, die jsi, von der er spricht, ist diese: http://pdqi.com/cgi-bin/cgiwrap/pdqi/jsi.cgi/doc/tip/jsi/www/usingjsi.wiki

(Keine Schuld, es ist nicht … hehe)

1384710cookie-checkWinzige Javascript-Implementierung? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy