Emscripten
Emscripten ist ein LLVM-zu-Web-Compiler. Emscripten kompiliert LLVM-Assemblercode zu Standard-JavaScript oder zu WebAssembly. Je nach verwendeter Programmiersprache werden bei der Übersetzung verschiedene Ansätze verfolgt. Der Sourcecode wird entweder direkt von LLVM-Bytecode in JavaScript übersetzt (z. B. C++ oder C), oder die Ausführungsumgebung der Programmiersprache wird in JavaScript übersetzt. Die kompilierte Ausführungsumgebung wird dann genutzt, um Code der jeweiligen Programmiersprache auszuführen (z. B. CPython)[1]. Emscripten unterstützt eine ganze Reihe von Programmiersprachen[2], der Fokus der Entwickler liegt aber auf der Übersetzung von C und C++.
Ein Beispiel für die Anwendung von Emscripten zeigt die Portierung der Unreal Engine 4 auf JavaScript.[3]
Übersetzungsvorgang
Die erste Stufe des Kompiliervorgangs ist das LLVM-Frontend. Das verwendete LLVM-Frontend übersetzt den Sourcecode der verwendeten Sprache in LLVM-Assemblercode (LLVM Intermediate Representation). Für die Übersetzung von C++-Code kann beispielsweise Clang verwendet werden. Der erzeugte LLVM-Assemblercode wird anschließend von LLVM mit dem entsprechenden Backend in die Zielsprache übersetzt. Normalerweise würde im Backend der ausführbare Assembler-Maschinencode für eine bestimmte Plattform erzeugt. Diese Rolle übernimmt stattdessen der Emscripten-Compiler. Der Emscripten-Compiler übersetzt den erzeugten LLVM-Assemblercode zu einem performant übersetzbarem Subset von JavaScript (asm.js).
Performance
Im Gegensatz zur Ausführung nativer Applikationen ist die Ausführungsgeschwindigkeit von Emscripten-generiertem JavaScript-Code deutlich geringer. Dabei spielt auch der verwendete Browser eine große Rolle, je nach Anwendung variiert die Performance stark. Ein optimistischer Richtwert ist eine ca. zweifach längere Ausführungszeit[4][5]. Bei performance-kritischen Anwendungen muss daher auch die Ausführungsumgebung genau spezifiziert werden.
Lizenz
Emscripten ist als freie Software unter zwei verschiedenen Lizenzen verwendbar: MIT-Lizenz und University of Illinois/NCSA Open Source License.
Verwendung
Seit dem 23. Dezember 2014 verwendet das Internet Archive eine Emscripten-konvertierte DOSBox-Emulation für Browser-basierte Präsentation von Tausenden archivierter DOS-Computerspiele,[6][7][8] ausschließlich für Schul- und Forschungszwecke.[9]
Einzelnachweise
- ↑ Zakai, Alon. "Emscripten: an LLVM-to-JavaScript compiler." Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion. ACM, 2011.
- ↑ Porting Examples and Demos. Abgerufen am 19. Oktober 2022.
- ↑ https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox/
- ↑ http://arewefastyet.com/#machine=11&view=breakdown&suite=asmjs-ubench
- ↑ https://kripken.github.io/mloc_emscripten_talk/gindex.html#/11
- ↑ Abby Ohlheiser: You can now play nearly 2,400 MS-DOS video games in your browser. Washington Post, 5. Januar 2015, abgerufen am 8. Januar 2015 (englisch).
- ↑ Each New Boot a Miracle by Jason Scott (23. Dezember 2014)
- ↑ collection:softwarelibrary_msdos in the Internet Archive (29. Dezember 2014)
- ↑ Internet Archive's Terms of Use, Privacy Policy, and Copyright Policy. archive.org, 31. Dezember 2014, abgerufen am 8. Januar 2015 (englisch): „Access to the Archive’s Collections is provided at no cost to you and is granted for scholarship and research purposes only.“
Weblinks
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.