Show simple item record

dc.contributorPetit Silvestre, Jordi
dc.contributor.authorGascons Gascon, Ricard
dc.contributor.otherUniversitat Politècnica de Catalunya. Departament de Ciències de la Computació
dc.date.accessioned2017-01-30T11:37:21Z
dc.date.available2017-01-30T11:37:21Z
dc.date.issued2017-01
dc.identifier.urihttp://hdl.handle.net/2117/100273
dc.description.abstractThe aim of this thesis is to design, develop and evaluate an open source tool to edit, run and debug C++ code inside a webpage without requiring a remote server to compile and execute the programs. C++ is widely used in education and industry, but to date no tools that run C++ code natively in the browser have been found. For this reason, it is been decided to develop an interpreter for a small subset of C++ that runs in a simple web interface. We call this tool C−−. This thesis parts from an older project able to interpret a small subset of C++ in the browser, and then designs and implements several features such as a debugger, non-blocking input/output operations, and a public API. In a second stage a web interface is built to allow users running and debugging code in a simple manner. After the first implementation of the web interface, feedback from testers is received and several adaptations for the improvement of the user experience are undertaken. Moreover, several efficiency tests have been performed to compare C−− execution times to other existing tools, such as GCC, JavaScript or Python. Finally, the tool is deployed to cmm.jutge.org where anyone can use it.
dc.description.abstractL’objectiu d’aquest projecte final de carrera és dissenyar, desenvolupar i evaluar una eina de codi obert capaç d’editar, executar i debugar codi C++ dins una pàgina web sense que es necessiti un servidor remot per compilar i executar els programes. C++ és molt popular en el mon educatiu i a la indústria, però a data d’avuí no s’ha trobat una eina que sigui capaç d’executar codi en C++ de forma nativa dins el navegador. Per aquesta raó s’ha decidit desenvolupar un intèrpret per un petit subconjunt de C++ que s’executi dins una interfície web. Aquesta eina l’hem anomenat C−−. Aquest projecte de final de carrera prové d’un projecte anterior capaç d’interpretar un petit subconjunt de C++ en el navegador, que posteriorment s’ha ampliat per donar suport a noves carecterístiques com un debugger, operacions d’entrada/sortida no bloquejants i una API pública. En la segona fase del projecte s’ha desenvolupat una interfície web per a què els usuaris puguin executar i debugar codi d’una forma molt senzilla. Després de la primera implementació de la interfície web, s’han realitzat proves amb usuaris on s’ha recollit el seu feedback i s’han fet les modicacions pertinents per tal de millorar l’experiència d’usuari. A més, s’han realitzat diversos testos d’eficiència on es mesura el temps d’execució de programes en C−− i es comparen els resultats amb altres eines existents, com GCC, JavaScript o Python. Finalment, l’eina és desplegada a cmm.jutge.org on qualsevol persona hi pot accedir.
dc.language.isoeng
dc.publisherUniversitat Politècnica de Catalunya
dc.subjectÀrees temàtiques de la UPC::Informàtica::Llenguatges de programació::C
dc.subject.lcshApplication software
dc.subject.lcshComputational grids (Computer systems)
dc.subject.othercompilador
dc.subject.otherc++
dc.subject.othercomputació
dc.subject.otherc--
dc.subject.otherdebugar
dc.subject.otherexecutar
dc.subject.othercompile
dc.subject.othercodi
dc.subject.othercompiler
dc.subject.othercomputer science
dc.subject.otherdebug
dc.subject.otherrun
dc.subject.othercode
dc.titleC++ simulation in the browser
dc.title.alternativeIntèrpret de C++ pel navegador
dc.typeBachelor thesis
dc.subject.lemacProgramari d'aplicació
dc.subject.lemacComputació distribuïda
dc.identifier.slug122226
dc.rights.accessOpen Access
dc.date.updated2017-01-27T05:00:15Z
dc.audience.educationlevelGrau
dc.audience.mediatorFacultat d'Informàtica de Barcelona
dc.audience.degreeGRAU EN ENGINYERIA INFORMÀTICA (Pla 2010)


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record