Treballs Fi de Màster> Enginyeria Informàtica i Matemàtiques

A Comprehensive Review of Golang to Web Assembly Conversion with TinyGo

  • Dades identificatives

    Identificador: TFM:1639
    Autors:
    Guellil, Safia
  • Altres:

    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
  • Paraules clau:

    Enginyeria informàtica
    Computer engineering
    Ingeniería informática
    Enginyeria informàtica
  • Documents:

  • Cerca a google

    Search to google scholar