Invariant: diferència entre les revisions

Contingut suprimit Contingut afegit
Línia 11:
== Invariància en programació ==
 
Un invariant és una condició o propietat que es manté certa en certs punts del programa, com per exemple, descriure l'estat de les variables d'un bucle abans de que se n'avaluï la seva condició. S'usa sobretot en la depuració de programes en les últimes fases del seu desenvolupament o en modificar codi existent (prova de regressió).
 
Per exemple, els compiladors analitzen l'invariant d'un bucle per saber com paralelitzar-lo o vectorialitzar-lo. Hia casos d'optimització en els que podem fer servir l'invariant d'un bucle per treure aquesta part a fora i vagi més rapid.
Línia 17:
 
Un algorisme pot ser trivial formular-lo com un proces recursiu, però no ser tan clar com fer-lo iteratiu (Métode de Burstall).
 
* Exemple
 
/* INVARIANT I*/
While (C){
S;
/*INVARIANT I*/
}
 
-En el codi l'invariant "I" es cumpleix abans d'executar-se la primera iteració i just després de cada una d'elles.
 
-A "S" es modifica el valor de les variables però mantienen la relació definida entre elles per l'invariant "I".
 
-Quan el bucle arriba al final, també ho fa cumplint l'invariant "I".
 
--