www.wikidata.de-de.nina.az
asm js ist ein Zwischencode der entworfen wurde um Software die in Sprachen wie C geschrieben wurde in Webanwendungen zu nutzen dabei aber eine bessere Performance zu erzielen als mit gewohnlichem JavaScript das fur solche Anwendungen verwendet wird asm js besteht aus einer Teilmenge von JavaScript und wendet einige zusatzliche Konventionen an sodass Code der in statisch typisierten Sprachen mit manueller Speicherverwaltung wie etwa C geschrieben ist durch Transcompiler wie Emscripten ubersetzt werden kann Durch die Beschrankung der Syntax kann der Code durch einen Ahead of time Compiler oder auf andere Weisen optimiert werden Aufbauend auf asm js wurde das Binarformat WebAssembly entwickelt Inhaltsverzeichnis 1 Codeerzeugung 2 Implementierungen 3 Einzelnachweise 4 WeblinksCodeerzeugung Bearbeitenasm js wird in der Regel nicht direkt von Hand geschrieben sondern durch einen Transcompiler aus Code erzeugt der in Sprachen wie C oder C geschrieben ist Ausgangspunkt ist daher meist Code wie die folgende in C geschriebene Funktion int f int i return i 1 Emscripten ubersetzt dies in folgenden JS Code function f i i i 0 return i 1 0 Da JavaScript keinen echten Integer Datentyp besitzt wird fur eine interne Konvertierung ein bitweises Oder durch das angefugte 0 durchgefuhrt In asm js wird dieses Suffix als Hinweis fur den Datentyp erkannt sodass der AOT Compiler die ursprunglich im C Code genutzten Datentypen feststellen und den Code entsprechend optimieren kann Wahrend JavaScript eigentlich dynamisch typisiert ist verwendet asm js Code statische Typisierung Dadurch werden die Konvertierungen zur Laufzeit des Codes uberflussig was die Geschwindigkeit des Codes deutlich steigern kann Implementierungen BearbeitenDas Emscripten Projekt stellt Werkzeuge zur Verfugung um aus C und C oder jeder anderen Sprache die nach LLVM konvertiert werden kann asm js zu erzeugen Alle Browser mit aktueller JavaScript Unterstutzung konnen asm js Code ausfuhren Durch eine spezielle Implementierung kann asm js Code jedoch deutlich schneller ausgefuhrt werden Dies findet unter anderem in folgenden Browsern statt Mozilla Firefox war der erste Browser mit asm js Optimierungen erstmals in der Version 22 1 Zustandig dafur ist der Ahead of time Compiler OdinMonkey der Bestandteil von SpiderMonkey ist Microsofts JavaScript Engine Chakra die in Microsoft Edge zum Einsatz kommt erzeugt optimierten Code aus asm js 2 In Google Chrome erzeugt V8 ab der Version 28 sehr schnellen Code aus asm js 3 Einzelnachweise Bearbeiten Firefox Notes Desktop mozilla org 25 Juni 2013 abgerufen am 10 September 2016 Bringing Asm js to Chakra and Microsoft Edge windows com 7 Mai 2015 abgerufen am 10 September 2016 englisch Chrome 28 Beta A more immersive web everywhere chromium org 23 Mai 2013 abgerufen am 10 September 2016 englisch Weblinks BearbeitenOffizielle Website Abgerufen von https de wikipedia org w index php title Asm js amp oldid 227272619