2010-11-18 13 views
19

Ich habe eine Reihe von mathematischen/dsp-Algorithmen in C. Einzelne Funktionen, eine Funktion pro Datei, keine fancy Linking oder Includes oder Präprozessordirektiven, nur c99 und Standardbibliotheksaufrufe (hauptsächlich memset und memmoves) handle array kopieren etc). Übersetzen ist kein großes Problem, aber es braucht Zeit. Ich habe mich gefragt, ob es ein C -> Javascript-Übersetzungstool gibt, um die Arbeit zu beschleunigen.Übersetzen von C nach JavaScript

Bitte beachten Sie, ich brauche keine perfekte Übersetzung, ich lege meine Hand auf das Endergebnis sowieso. Was ich brauche, ist ein einfaches Werkzeug, das bei den grundlegenden, "langweiligen" Dingen hilft.

Hat jemand von so etwas gehört?

Edit: scheint, dass emscripten den Trick tun wird.

+4

Die Art und Weise, wie C die Verwendung von Zeigern ermöglicht, würde ein solches Werkzeug sicherlich bei allen außer den meisten erfundenen Beispielen versagen. – cdhowie

+1

Ich bin nicht auf der Suche nach einem perfekten Übersetzer, der die Zeigerlogik verstehen kann, ich suche nach einem mild-dummen Arbeitspferd, das die langweiligen Teile automatisch machen kann. – janesconference

+0

(THX für die Bearbeitung!) – janesconference

Antwort

22

Update: es scheint, The Times They Are a-Changin' :)

diesem Artikel: DOOM Ported to JavaScript and HTML5

Zakai die DOOM Quellcode von C mit Hilfe von JavaScript Emscripten und Clang und optimiert zusammengestellt es mit Closure Compiler.

Und hier ist die Project page. Habe Spaß! :)

+4

Ahah ich fand den Weg: Übersetzen Sie c mit dieser Java: http://www.axiomsol.com/, dann Java in Javascript mit GWT (nur Witze) zu übersetzen. – janesconference

+1

Anyway: 1) Parsen Sie C und, wenn Sie realize es ist eine Ganzzahl-Division (Sie sehen sich die Arten der Operanden), Sie Math.floor das Ergebnis in js 2) Sie kümmern sich nicht, was nutzlos ist, Sie Übergeben Sie den Parameter im übersetzten Skript trotzdem. Es ist überflüssig, nicht falsch. Ich möchte nicht nach einem optimierenden Übersetzer Ausschau halten, sondern nach Optimierungen. 3) Sieht komplexer aus, aber Sie können immer beim Array-Typ suchen und berechnen, wie viele Elemente Sie kopieren. 3b) Objekte in C? Du sprichst von Strukturen oder denkst an OO-Techniken in C? – janesconference

+0

Siehe mein Update, es scheint, einige Leute haben es funktioniert für DOOM :) – galambalazs

2

Ich würde sie neu schreiben. Sie sind zwei sehr verschiedene Sprachen, wenn Sie sie "übersetzen", werden Sie miesen Javascript-Code bekommen.

Oder Sie können sie wickeln, in eine Bibliothek stellen und sie von JS aufrufen.

Verwandte Themen