Original-URL des Artikels: https://www.golem.de/news/v8-engine-google-baut-decompiler-fuer-webassembly-2004-148134.html    Veröffentlicht: 28.04.2020 11:54    Kurz-URL: https://glm.io/148134

V8-Engine

Google baut Decompiler für Webassembly

Der Bytecode für das Web hat zwar eine Text-Repräsentation, die ist jedoch schwer zu lesen. Wasm-Decompile soll hier helfen.

Mit der wachsenden Verbreitung des Bytecodes für das Web, Webassembly (Wasm), wächst auch dessen Compiler-Support, schreibt der Google-Entwickler Wouter van Oortmerssen im Blog der Entwickler der V8-Engine. Weiter heißt es, dass Entwickler, die mit Wasm arbeiten, den erzeugten Code aber vielleicht auch untersuchen und verstehen wollen. Dabei soll künftig das Werkzeug Wasm-Decompile helfen.

Das Problem, mit dem viele Wasm-Entwickler konfrontiert sind, ist, dass der durch die Compiler erzeugte Code teilweise sehr stark optimiert wurde. Der so generierte Code sehe dann aber kaum noch aus wie der eigentlich geschriebene Code, schreibt van Oortmerssen. Zwar gebe es von Beginn an auch eine Text-Repräsentation von Webassembly. Diese sei laut der Ankündigung darüber hinaus aber auch originalgetreu und damit wenig lesbar und nicht vergleichbar mit Code, den Entwickler üblicherweise schreiben.

Letzteres soll nun aber genau mit dem Werkzeug Wasm-Decompile erreicht werden, also einer Code-Repräsentation, die an geschriebenen Code erinnert und entsprechend leicht lesbar ist. Die Ausgabe sehe dabei laut van Oortmerssen aus wie eine "sehr durchschnittliche Programmiersprache", die trotzdem noch nah an dem originalen Wasm sein soll, das diese repräsentiert.

Hauptziel der Arbeiten sei dabei die Lesbarkeit. Nutzer sollen in der Lage sein, damit Wasm-Code zu lesen, wobei der Code so einfach wie möglich verstanden werden soll. Darüber hinaus soll das Werkzeug aber auch weiter eine möglichst nahe Repräsentation von Webassembly sein, um seine Nützlichkeit als Disassembler nicht zu verlieren. Diese beiden Ziele seien aber nicht immer zur vollen Zufriedenheit miteinander vereinbar.

Der Code für Wasm-Decompile findet sich auf Github. Dort gibt es auch eine etwas ausführlichere Erklärung zu dem Werkzeug.  (sg)


Verwandte Artikel:
Envoy: Google bringt Webassembly in den Netzwerk-Proxy   
(13.03.2020, https://glm.io/147227 )
Javascript: Node.js 14 bringt native Wasm-Schnittstelle und LTS   
(23.04.2020, https://glm.io/148047 )
Javascript-Server: Node.js 12 bringt TLS 1.3 und wird LTS   
(24.04.2019, https://glm.io/140838 )
Propeller-Framework: Google baut Binär-Optimizer für LLVM   
(09.04.2020, https://glm.io/147817 )
LLVM: Google will mit MLIR den Compilerbau vereinfachen   
(27.02.2020, https://glm.io/146903 )

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