Aviso: para depositar documentos, por favor, inicia sesión e identifícate con tu cuenta de correo institucional de la UCM con el botón MI CUENTA UCM. No emplees la opción AUTENTICACIÓN CON CONTRASEÑA
 

Uso de WebAssembly para proporcionar pistas ligeras en jueces en línea

dc.contributor.advisorGómez Martín, Pedro Pablo
dc.contributor.advisorGómez Martín, Marco Antonio
dc.contributor.authorDe Andrés Alonso, Adrián
dc.contributor.authorBenavente Romero, Raúl
dc.date.accessioned2023-06-16T14:56:54Z
dc.date.available2023-06-16T14:56:54Z
dc.date.issued2021-09
dc.degree.titleGrado en Ingeniería del Software
dc.descriptionTrabajo 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.
dc.description.abstractEste 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
dc.description.abstractThis 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
dc.description.departmentDepto. de Ingeniería de Software e Inteligencia Artificial (ISIA)
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.eprint.idhttps://eprints.ucm.es/id/eprint/68338
dc.identifier.relatedurlhttps://github.com/raubenav/DOMjudge-WebAssembly
dc.identifier.urihttps://hdl.handle.net/20.500.14352/5357
dc.language.isospa
dc.page.total63
dc.rightsAtribución-NoComercial 3.0 España
dc.rights.accessRightsopen access
dc.rights.urihttps://creativecommons.org/licenses/by-nc/3.0/es/
dc.subject.cdu004(043.3)
dc.subject.keywordJuez en línea
dc.subject.keywordWebAssembly
dc.subject.keywordCliente
dc.subject.keywordServidor
dc.subject.keywordDOMJudge
dc.subject.keywordCompilar
dc.subject.keywordJavaScript
dc.subject.keywordjQuery
dc.subject.keywordEmscripten.
dc.subject.keywordOnline judge
dc.subject.keywordClient
dc.subject.keywordServer
dc.subject.keywordCompile
dc.subject.ucmInformática (Informática)
dc.subject.unesco1203.17 Informática
dc.titleUso de WebAssembly para proporcionar pistas ligeras en jueces en línea
dc.typebachelor thesis
dspace.entity.typePublication
relation.isAdvisorOfPublicationef9526b3-169c-4e45-b8f9-2e82965baecb
relation.isAdvisorOfPublication47690a94-e97c-4f96-917d-569d14ecba3b
relation.isAdvisorOfPublication.latestForDiscoveryef9526b3-169c-4e45-b8f9-2e82965baecb

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
DE ANDRÉS ALONSO 83217_ADRIAN_DE_ANDRES_ALONSO_TFG_Pistas_ligeras_WebAssembly_1006096_1982309597.pdf
Size:
2.51 MB
Format:
Adobe Portable Document Format