quarta-feira, 24 de agosto de 2011

Desfibrilador para programas travados


O programa travou
Já aconteceu com todo mundo: você está usando um programa bem conhecido para fazer algo que você já fez mil vezes antes - por exemplo, encontrar uma determinada palavra em um documento - e, de repente o programa simplesmente pára de funcionar.
Você tecla, clica, move o mouse, mas nada muda na tela, e, finalmente, você acaba tendo que sair do programa, perdendo o trabalho que fez desde a última vez que salvou o arquivo.
Muitas vezes, um programa entra naquilo que os cientistas chamam de um loop infinito, quando ele fica executando continuamente o mesmo bloco de código.
Agora, pesquisadores do MIT apresentaram uma nova ferramenta que consegue interromper automaticamente os loops infinitos e passar para a próxima linha de código do programa.
Nos testes, o sistema restaurou cinco programas diferentes para estados estáveis o suficiente para que os dados pudessem ser salvos e os programas fossem encerrados com segurança. Na maioria dos casos, os programas também ofereceram ao menos uma solução parcial para os cálculos que eles estavam tentando realizar quando travaram.
Loops e loops infinitos
Os loops estão entre os blocos mais básicos dos programas de computador. Eles permitem que um programador especifique apenas uma vez uma rotina que deve ser realizada em vários segmentos de dados em sequência.
Por exemplo, a função de pesquisa em um processador de texto pode ter que olhar para milhares de letras individuais em um documento, comparando cada uma das sequências com as letras do termo digitado na caixa de pesquisa.
Se ele não encontrar uma correspondência, vai passar para a próxima letra e reiniciar o loop para re-executar o mesmo código, que fará a comparação com a sequência a partir da próxima letra. E assim por diante.
Um programa comercial pode conter dezenas de milhares de loops, e mesmo um pequeno erro no código de qualquer um deles pode levar a um loop infinito, no qual o computador não sabe quando parar de repetir a mesma operação.

Nenhum comentário:

Postar um comentário