Testing and Correcting Programs with Applications to Codes
One of the main challenges of software engineering is verifying the correctness of software. In this proposal we focus on correctness of the code per input rather than full program verification. This methodology associates with ev...
ver más
¿Tienes un proyecto y buscas un partner? Gracias a nuestro motor inteligente podemos recomendarte los mejores socios y ponerte en contacto con ellos. Te lo explicamos en este video
Información proyecto CORTST-PROGRAMS
Líder del proyecto
BAR ILAN UNIVERSITY
No se ha especificado una descripción o un objeto social para esta compañía.
TRL
4-5
Presupuesto del proyecto
100K€
Fecha límite de participación
Sin fecha límite de participación.
Descripción del proyecto
One of the main challenges of software engineering is verifying the correctness of software. In this proposal we focus on correctness of the code per input rather than full program verification. This methodology associates with every function to be computed a new piece of code called a checker, which given any possibly buggy program for the function and an input, checks whether the program on this input computes the function correctly. We further aim on correcting buggy programs using self-testers and self-correctors. A self-corrector that is given a potentially buggy program which is guaranteed to compute the function correctly on a random input, corrects the program on any given input. A self-tester tests whether a program is correct on a random input. The focus of the achievements in the field has been the design of efficient checkers (and self correcters/self testers) for *specific* efficiently computable functions exploiting either their algebraic or combinatorial properties. In recent works we have demonstrated relation between highly symmetric error correcting codes and testing and correcting. Moreover we managed to design checkers for functions characterized by their complexity. In light of the this new body of work we suggest to revisit the checking and correcting methodology, emphasizing a general error correcting approach and complexity theoretic approach, rather than a function specific approach.