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

A Comprehensive Review of Golang to Web Assembly Conversion with TinyGo

  • Datos identificativos

    Identificador: TFM:1639
    Autores:
    Guellil, Safia
  • Otros:

    Palabras clave: WebAssembly, Golang, TinyGo WebAssembly, Golang, TinyGo WebAssembly, Golang, TinyGo
    Título en diferentes idiomas: 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
    Áreas temàticas: Enginyeria informàtica Computer engineering Ingeniería informática
    Confidencialidad: No
    Curso académico: 2022-2023
    Estudiante: Guellil, Safia
    APS: No
    Departamento: Enginyeria Informàtica i Matemàtiques
    Derechos de Accesso: info:eu-repo/semantics/openAccess
    Fecha de la defensa del trabajo: 2023-09-15
    Director del proyecto: Sanchez Artigas, Marc
    Resumen: 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.
    Materia: Enginyeria informàtica
    Entidad: Universitat Rovira i Virgili (URV)
    Idioma: en
    Enseñanza(s): Enginyeria de la Seguretat Informàtica i Intel·ligència Artificial
    Título en la lengua original: A Comprehensive Review of Golang to Web Assembly Conversion with TinyGo
    Fecha de alta en el repositorio: 2024-04-09
  • Palabras clave:

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

  • Cerca a google

    Search to google scholar