refactoring est une série de transformations préservant l'exactitude, mais refactoring peut donner lieu à plus code général que l'original
nous ne pouvons pas affirmer simplement qu'une transformation de refactoring T sur le programme P a les mêmes propriétés R avant et après refactoring, mais les propriétés R « du programme refondus P » devrait être au moins équivalente à R
given program P implies R
refactoring transformation T(P) produces P'
where (P' implies R') and (R' is equivalent to or subsumes R')
nous pouvons affirmer que les entrées et les sorties restent les mêmes ou équivalent
mais pour suivre votre exemple, nous voulons peut-être définir une transformation de refactoring T comme un 4-tuple P, I, O, R où P est le programme original, I est les entrées et/ou les préconditions, O est les sorties et/ou postcondition, et R est le programme transformé, puis affirmer (en utilisant la logique temporelle?) Que
P:I -> O
tient avant transformation
T(P) -> R
définit la transformation et
R:I -> O
tient après transformation
est rouillé mes maths symbolique, mais qui est une direction générale
cela ferait un bon mémoire de maîtrise, BTW
rouverte et upvoted - c'est une excellente question –
Que diable est insultant ce? Une très bonne question – tvanfosson
Les transformations résonables incluent leurs propres conditions préalables, il semble donc redondant dans cette caractérisation. –