RT Generic T1 Uso de WebAssembly para proporcionar pistas ligeras en jueces en línea A1 De Andrés Alonso, Adrián A1 Benavente Romero, Raúl AB Este proyecto trata de la integración de WebAssembly en un juez en línea. El motivo por el cual creímos necesaria dicha integración es reducir la carga de trabajo en el servidor, de manera que si un ejercicio no devuelve la salida esperada a ciertos casos básicos de prueba, no se envía al servidor. WebAssembly permite compilar archivos C, C++ y Rust y correrlos en el lado del cliente. Esto lo hace gracias a unas APIs de JavaScript, mediante las cuales puedes compartir funcionalidad entre JavaScript y WebAssembly. En resumidas palabras, permite compilar y ejecutar código C, C++ y Rust en el navegador. Ya que muchos jueces en línea tienen ejercicios para ser realizados en C/C++, WebAssembly nos ofrecía una posibilidad para comprobar la corrección básica de un ejercicio en el lado del cliente, esto es, antes de subirlo al servidor del juez en línea. De esta forma, se podría hacer que aquellos archivos C/C++ que no pasen los casos de prueba básicos no lleguen al servidor.En este proyecto vamos a aplicar la tecnología WebAssembly sobre el juez online ya existente DOMjudge, el cual es utilizado en algunas asignaturas de este grado. Para ello, previamente hemos creado una simulación local de dicho juez en la que corroboramos la posibilidad de implementarlo en jueces en línea.El proyecto está realizado en Linux, ya que es el sistema operativo necesario para instalar DOMjudge.Todo el trabajo realizado se encuentra en: https://github.com/raubenav/DOMjudge-WebAssembly AB This project is about integrating WebAssembly into an online judge. The reason why we believe such integration is necessary is to reduce the workload on the server, so if an exercise does not retur the output expected to certain basic, it is not send to the server cases. WebAssembly allows you to compile C, C ++ and Rust files and run them on the client side. This is made thanks to JavaScript APIs, through which you can share functionality between JavaScript and WebAssembly. In short, it allows you to compile and run C,C ++ and Rust code in the browser. Since many online judges have exercises to be performed in C/C++, WebAssembly offered us a possibility to check the basic correctness of an exercise on the client side, that is, before uploading it to the online judge’s server. In this way, C/C++ files that fail the basic samples could be prevented from reaching the server.In this project we are going to apply theWebAssembly technology on the existing online judge DOMjudge, which is used in some subjects of this degree. To do this, we have previously created a local simulation of said judge in which we corroborate the possibility of implementing it in online judges.The project it’s made on Linux, because it’s the required operative system to install DOMjudge All project’s work can be accessed from: https://github.com/raubenav/DOMjudge-WebAssembly YR 2021 FD 2021-09 LK https://hdl.handle.net/20.500.14352/5357 UL https://hdl.handle.net/20.500.14352/5357 LA spa NO Trabajo de Fin de Grado en Ingeniería del Software, Facultad de Informática UCM, Departamento de Ingeniería del Software e Inteligencia Artificial, Curso 2020-2021. DS Docta Complutense RD 30 abr 2024