Um outro exemplo de transição de estado válido, só que agora com efeitos colaterais é posto logo abaixo. Imagine a mesma variável “a” com um novo valor (dois bilhões, cento e quarenta e sete milhões, quatrocentos e oitenta e três mil, seiscentos e quarenta e sete):

a = 2147483647;

Esse alto valor é um valor permitido, ou melhor, é o mais alto valor permitido (limite superior) para uma variável do tipo “int” de 32 bits com sinal. Agora, considere novamente a seguinte instrução:

a = a + 1;

Neste caso, a variável "a" que valia 2147483647 passaria a valer 2147483648. Ou seja, a variável passaria pelo que chamamos de transição de estado inválido. Isso significa que a variável mudou de um valor permitido (2147483647) para outro valor proibido (2147483648). Deste modo a transição de estado seria considerada inválida e jamais poderia ser executada. Tanto não é que o resultado apresentado pelo programa é o valor -2147483648, ou seja, um número negativo. E acreditem ou não, computacionalmente, esse resultado está correto. É obvio que para nós, seres humanos, esse resultado está errado. Portanto, somente transições de estado válidas e valores válidos é que são permitidos. Sempre!

Contudo, a maioria dos códigos, comerciais ou científicos, escritos atualmente em qualquer linguagem de programação, não levam em consideração o estado das variáveis ou objetos bem como as suas possíveis transições. Não levar isso em consideração, significa escrever códigos vulneráveis e passíveis de erros que produzem problemas cujas causas são extremamente difíceis de se encontrar e resolver.

Copyright © 2016 AIEC.