Program analysis and evaluation using quimera
Résumé
Physical or mental games help to develop practical skills, to serve as a form of exercise, or to perform an educational role. Played for the absolute pleasure of overcoming a complex problem, or otherwise played for the pleasure of the competition, games are a universal part of human experience present in all cultures since thousands of years ago. Key components of games are goals, rules, challenge, and interaction. The spring of computers opened space for the impressive family of electronic games (a huge range of computer-based offline or online, singular or multi-player, games) that attract millions of users all over the world. Aside this family but also related with computers, a new challenge rose up inside the programming communities: the programming contests. Programming contests can vary slightly in the rules but all of them are intended to assess the competitor skills concerning the ability to solve problems using a computer. These contests raise up three kind of challenges: to create a nice problem statement (for the members of the scientific committee); to solve the problem in a good way (for the programmers); to find a fair way to assess the results (for the judges). This paper presents a web-based application, QUIMERA intended to be a full programming-contest management system, as well as an automatic judge. Besides the traditional dynamic approach for program evaluation, QUIMERA still provides static analysis of the program for a more fine assessment of solutions.