101. Analitzador de codi C++ previ a la compilació per a Jutge.org
- Author
-
Universitat Politècnica de Catalunya. Departament de Ciències de la Computació, Fernández Durán, Pau, Sahun Montejano, Juli, Universitat Politècnica de Catalunya. Departament de Ciències de la Computació, Fernández Durán, Pau, and Sahun Montejano, Juli
- Abstract
El Jutge és la principal plataforma de la FIB per a la docència d'assignatures de programació i estructures de dades entre d'altres. Aquesta és una aplicació web en la qual els professors publiquen problemes organitzats en cursos. Per altra banda, els alumnes s'apunten a aquests cursos i resolen els problemes proposats pels professors. Les entregues dels alumnes són enviades al servidor del Jutge, on passaran per un procés d'avaluació que, actualment, consisteix en la compilació i execució del programa de l'alumne. En funció del resultat de la compilació i execució de l'entrega, es retorna una avaluació a l'estudiant. Aquest procés d'avaluació, tot i ser prou eficaç, sovint no és capaç de detectar entregues que són errònies. Els problemes on el Jutge no és capaç d'avaluar correctament una entrega són els exercicis on l'enunciat imposa alguna restricció que no és verificable ni en la compilació del codi ni en la seva execució. Algun exemple d'això són problemes on es prohibeix l'ús d'alguna llibreria concreta, o on es demana que la implementació de la solució sigui recursiva. El nostre projecte té com a objectiu el desenvolupament d'una eina que permeti la detecció d'aquestes característiques en un programa, abans de ser compilat. D'aquesta manera podem detectar entregues que, tot i passar indetectables el procés d'avaluació del Jutge, són invàlides. Aquesta detecció precoç permetrà als professors estalviar-se bona part de les revisions manuals en cerca d'aquest tipus d'error, així com permetrà notificar a l'estudiant que el seu enviament no compleix totes les condicions imposades per l'enunciat., Jutge is the FIB's main platform for teaching programming and data structures subjects, among others. This is a web application in which teachers publish problems organized into courses. On the other hand, students sign up for these courses and solve the problems proposed by the teachers. The students' submissions are sent to the Jutge server, where they will go through an evaluation process that, currently, consists of the compilation and execution of the student's program. Based on the result of the compilation and execution of the delivery, an evaluation is returned to the student. This evaluation process, although effective, is often not able to detect deliveries that are erroneous. The problems where the Jutge is not able to correctly evaluate a delivery are exercises in which the statement imposes some restriction that is not verifiable either in the compilation of the code or in its execution. Some examples of this are problems in which the use of a specific library is prohibited, or where the implementation of the solution is requested to be recursive. Our project aims to develop a tool that allows the detection of these characteristics in a program before being compiled. In this way we can detect deliveries that, despite passing the Jutge evaluation process undetectable, are invalid. This early detection will allow teachers to avoid a large part of manual reviews in search of this type of error, as well as notify the student that their submission does not comply with all the conditions imposed by the statement.
- Published
- 2024