Original-URL des Artikels: https://www.golem.de/news/emscripten-javascript-backend-fuer-llvm-1207-93326.html    Veröffentlicht: 20.07.2012 09:40    Kurz-URL: https://glm.io/93326

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.

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.

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.  (ji)


Verwandte Artikel:
SQL.js: SQLite in Javascript   
(07.03.2012, https://glm.io/90338 )
Broadway.js: H.264-Decoder in Javascript   
(31.10.2011, https://glm.io/87409 )
Saphira: Compiler-Patches verraten neue Qualcomm-CPU   
(06.11.2017, https://glm.io/130991 )
Compiler-Baukasten: LLVM 5.0 erweitert Ryzen- und AMDGPU-Unterstützung   
(14.09.2017, https://glm.io/130049 )
Autonomes Fahren: Leiter der Autopilot-Software verlässt Tesla   
(21.06.2017, https://glm.io/128493 )

© 1997–2020 Golem.de, https://www.golem.de/