Abo
  • Services:

Emscripten: Javascript-Backend für LLVM

Emscripten-Entwickler Alon Zakai arbeitet an einem Javascript-Backend für LLVM, das den bisher in Javascript geschriebenen Emscripten-Compiler ersetzen könnte. Auch komplexe Projekte mit umfangreichen Quelltexten sollen sich dann recht schnell in Javascript umwandeln lassen.

Artikel veröffentlicht am ,
Alon Zakai präsentiert Emscripten.
Alon Zakai präsentiert Emscripten. (Bild: JSConf.eu)

Emscripten wandelt C-Code und C++-Code in Javascript um, womit sich bestehende Projekte vergleichsweise einfach ins Web übertragen lassen. Genutzt wurde dies unter anderem für die Sprachausgabe Speak.js, den H.264-Decoder Broadway.js und eine Javascript-Umsetzung von SQLite.

Stellenmarkt
  1. Gentherm GmbH, Odelzhausen
  2. Bosch Gruppe, Hildesheim

Der Original-Compiler von Emscripten ist in Javascript geschrieben. Dieser erzeugt zwar recht schnellen Code, benötigt dafür aber vergleichsweise lange, vor allem wenn alle Optimierungen aktiviert werden. Das sei für Projekte mit Zehntausenden Zeilen Code ein Problem, für Projekte mit Hunderttausenden Codezeilen ziemlich ärgerlich und für Projekte mit Millionen Code-Zeilen wirklich schrecklich, sagte Emscripte-Entwickler Alon Zakai.

Er hat sich deshalb daran gemacht, ein LLVM-Backend für Javascript zu entwickeln, das den in Javascript geschriebenen Emscripten Compiler ersetzen kann und deutlich schneller sein soll. Die übrigen Bestandteile von Emscripten bleiben davon unberührt.

Emscripten basiert ohnehin auf LLVM und würde damit noch enger mit LLVM verzahnt werden, was weitere Vorteile bringt, denn Emscripten könnte so die interne Code-Analyse und -Optimierung von LLVM nutzen.

Komplett ersetzen will Zakai den Emscripten-Compiler auch nicht, denn die Implementierung in Javascript habe auch Vorteile: Neue Ideen lassen sich damit sehr schnell und einfach ausprobieren.

Noch steht die Entwicklung aber am Anfang, Zakai will sich in den nächsten Monaten dem Javascript-Backend für LLVM widmen.



Anzeige
Blu-ray-Angebote
  1. (u. a. 3 Blu-rays für 15€, 2 Neuheiten für 15€)

chrulri 21. Jul 2012

GCC in JS, dann kannste dir einen Linux kernel im Browser kompilieren lassen. >:D


Folgen Sie uns
       


Hitman 2 - Fazit

Wer ist Agent 47 - und warum ist er so ein perfekter Auftragskiller? Einer Antwort kommen Spieler auch in Hitman 2 unter Umständen nicht näher, dafür erleben sie mit dem Glatzkopf aber spannend und komplexe Abenteuer in schön gestalteten, sehr aufwendigen Einsätzen.

Hitman 2 - Fazit Video aufrufen
NGT Cargo: Der Güterzug der Zukunft fährt 400 km/h
NGT Cargo
Der Güterzug der Zukunft fährt 400 km/h

Güterzüge sind lange, laute Gebilde, die langsam durch die Lande zuckeln. Das soll sich ändern: Das DLR hat ein Konzept für einen automatisiert fahrenden Hochgeschwindigkeitsgüterzug entwickelt, der schneller ist als der schnellste ICE.
Ein Bericht von Werner Pluta


    Serverless Computing: Mehr Zeit für den Code
    Serverless Computing
    Mehr Zeit für den Code

    Weniger Verwaltungsaufwand und mehr Automatisierung: Viele Entwickler bauen auf fertige Komponenten aus der Cloud, um die eigenen Anwendungen aufzubauen. Beim Serverless Computing verschwinden die benötigten Server unter einer dicken Abstraktionsschicht, was mehr Zeit für den eigenen Code lässt.
    Von Valentin Höbel

    1. Kubernetes Cloud Discovery inventarisiert vergessene Cloud-Native-Apps
    2. T-Systems Deutsche Telekom will Cloud-Firmen kaufen
    3. Trotz hoher Gewinne Wieder Stellenabbau bei Microsoft

    Wet Dreams Don't Dry im Test: Leisure Suit Larry im Land der Hipster
    Wet Dreams Don't Dry im Test
    Leisure Suit Larry im Land der Hipster

    Der Möchtegernfrauenheld Larry Laffer kommt zurück aus der Gruft: In einem neuen Adventure namens Wet Dreams Don't Dry reist er direkt aus den 80ern ins Jahr 2018 - und landet in der Welt von Smartphone und Tinder.
    Ein Test von Peter Steinlechner

    1. Life is Strange 2 im Test Interaktiver Road-Movie-Mystery-Thriller
    2. Adventure Leisure Suit Larry landet im 21. Jahrhundert

      •  /