Paraules clau: WebAssembly, Golang, TinyGo WebAssembly, Golang, TinyGo WebAssembly, Golang, TinyGo
Títol en diferents idiomes: Revisión exhaustiva de la conversión de Golang a Web Assembly con TinyGo Revisió exhaustiva de la conversió de Golang a Web Assembly amb TinyGo
Àrees temàtiques: Enginyeria informàtica Computer engineering Ingeniería informática
Confidencialitat: No
Curs acadèmic: 2022-2023
Estudiant: Guellil, Safia
Aprenentatge Servei: No
Departament: Enginyeria Informàtica i Matemàtiques
Drets d'accés: info:eu-repo/semantics/openAccess
Data de la defensa del treball: 2023-09-15
Director del projecte: Sanchez Artigas, Marc
Resum: WebAssembly is a bytecode language that has revolutionized web browsing by enabling high-performance code execution. Its outstanding qualities, such as portability, scalability, security, and speed, combined with the emergence of the WebAssembly System Interface standard, are bringing the vision of "write once, run anywhere" closer to reality. As a result, its influence has spread beyond web browsers, leading many programming languages, including Golang, to compile code for execution outside the browser. This project examines the conversion of WebAssembly to Golang using the TinyGo compiler for non-Web environments. We evaluate the memory system, which is fundamental in Golang, and the performance of the WebAssembly module compiled with TinyGo. In the analysis performed, we observed that the Golang memory system is reproduced in the WASM module but in a simplified version of TinyGo. In addition, we achieved execution speeds comparable to the Golang source language but with a significantly reduced binary size, which makes TinyGo and Golang a good choice for resource-constrained environments. WebAssembly és un llenguatge de codi de bytes que ha revolucionat la navegació web en permetre l'execució de codi d'alt rendiment. Les seves excel·lents qualitats, com ara la portabilitat, l'escalabilitat, la seguretat i la velocitat, combinades amb l'aparició de l'estàndard WebAssembly System Interface, estan apropant la visió d'"escriure una vegada, executar en qualsevol lloc" a la realitat. Com a resultat, la seva influència s'ha estès més enllà dels navegadors web, el que ha portat molts llenguatges de programació, inclòs Golang, a compilar codi per a l'execució fora del navegador. Aquest projecte examina la conversió de WebAssembly a Golang mitjançant el compilador TinyGo per a entorns que no són web. Avaluem el sistema de memòria, que és fonamental a Golang, i el rendiment del mòdul WebAssembly compilat amb TinyGo. En l'anàlisi realitzada, hem observat que el sistema de memòria Golang es reprodueix en el mòdul WASM però en una versió simplificada de TinyGo. A més, hem aconseguit velocitats d'execució comparables a l'idioma font de Golang, però amb una mida binària significativament reduïda, la qual cosa fa que TinyGo i Golang siguin una bona opció per a entorns amb recursos limitats.
Matèria: Enginyeria informàtica
Entitat: Universitat Rovira i Virgili (URV)
Idioma: en
Ensenyament(s): Enginyeria de la Seguretat Informàtica i Intel·ligència Artificial
Títol en la llengua original: A Comprehensive Review of Golang to Web Assembly Conversion with TinyGo
Data d'alta al repositori: 2024-04-09