LLVM
Emscripten macht C und C++ zu Javascript
Der Compiler Emscripten wandelt von LLVM erzeugten Bytecode in Javascript. In C und C++ geschriebener Code lässt sich so in Javascript übersetzen und im Browser ausführen. Eine Demo zeigt beispielsweise Doom im Browser.

Mit Emscripten lässt sich von LLVM erzeugter Bytecode in Javascript umwandeln. So lässt sich praktisch Code in jeder von LLVM erzeugten Sprache in Javascript umwandeln und im Browser beziehungsweise überall, wo Javascript läuft, ausführen. Ziel des Projektes ist es, Code im Web auszuführen, ganz gleich, in welcher Sprache dieser geschrieben ist.
Dabei wird C/C++-Code in LLVM-Bytecode übersetzt, der anschließend von Emscripten in Javascript umgewandelt wird. Andere Sprachen werden indirekt unterstützt. So kann beispielsweise die in C/C++ geschriebene Runtimes von Python und Lua in Javascript übersetzt und anschließend Python und Lua im Browser ausgeführt werden.
Derzeit kann Emscripten große Teile von C und C++ umwandeln, einschließlich großer Projekte wie CPython, Poppler und Bullet, erklären die Entwickler in einer FAQ. Sie gehen dennoch davon aus, dass Emscripten noch viele Fehler hat und es zu Problemen bei der Übersetzung beliebigen Codes kommen kann.
Was mit Emscripten schon geht, zeigen einige Demos, darunter Umsetzungen von Doom, Python, der Physikengine Bullets und Schriftrendering mit Freetype.
Der mit Emscripten generierte Code ist rund 90 Prozent langsamer als mit "gcc -O3" generierter Code. Das sei nicht gut, aber auch nicht so schlecht, kommentieren die Entwickler und verweisen auf die zu erwartende Optimierung bei LLVM, Javascript-Optimierer wie den Closure Compiler und die schneller werdenden Javascript-Engines.
Emscripten selbst ist in Javascript geschrieben, steht unter der MIT-Lizenz und kann bei Github heruntergeladen werden.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Ohgott, hoffentlich funktioniert das niemals ... Scriptkiddies sollten NIEMALS in der...
Wenn der c/c++ Code normal kompiliert wird, dann würde das Programm von der nicht mehr so...
Nicht unbedingt. Wenn alte Spiele nicht mehr laufen, liegt das meistens an den nicht...
Umso erstaunlicher, dass man bei solchen Ähnlichkeiten als Autor keine Artikelverlinkung...