quinta-feira, 4 de agosto de 2011

Ferramenta promete sair do loop infinito

Cientistas do MIT desenvolveram uma nova ferramenta capaz de interromper os loops infinitos.
Muito provavelmente, todo ser humano que já passou algum tempo razoável em frente a um computador se deparou em algum momento com essa “falha” dos programas: de repente, ele trava, simplesmente para de funcionar e não adianta mover o mouse, clicar ou dar “enter”.
Por fim, você simplesmente decide desligar tudo e recomeçar, perdendo o que quer que não estivesse salvo. Na maioria dos casos, um programa apresenta este comportamento quando entra no chamado “loop infinito”, ou seja, executando um mesmo bloco de códigos sem parar.
Os loops estão entre as tarefas mais básicas de um software. Eles permitem que um programador especifique, em um único passo, um procedimento que precisa ser realizado em muitas sequências de dados. Por exemplo, buscar uma palavra em um editor de texto, como o Word. O programa precisa comparar cada letra com o termo da busca e, se não encontrar a combinação, tem que partir para a próxima palavra e dar um “loop” para reexecutar o código que faz a comparação.
Um programa pode conter dezenas de milhares de loops, e um pequeno erro no código de qualquer um deles pode levar a um loop infinito – ou seja, quando o computador não consegue parara de repetir uma mesma operação.
Foi para tentar resolver esse problema que a equipe do Massachusetts Institue of Technology, liderada por Martin Rinard, desenvolveu uma ferramenta chamada Jolt.
Ela automaticamente interrompe a repetição infinita e obriga o programa a seguir para a próxima linha de código – e faz isso porque reconhece os loops ao monitorar a maneira como o programa usa a memória.
Se um usuário acredita que um software entrou em loop infinito, só precisa ativar o Jolt para que ele comece a tirar uma série de “retratos” da memória do computador. Ele trabalha em parceria com um compilador, um programa que traduz o que está escrito em linguagem de programação para uma linguagem que o computador possa entender. Quando uma aplicação está sendo compilada, o Jolt marca o começo e o fim de cada loop indicado no código fonte. Se ele notar alterações de execução a cada loop, provavelmente o programa está fazendo algo útil; no entanto, se não estiver, ele acusa a repetição infinita e simplesmente o força a pular para a próxima instrução.
Em testes, os pesquisadores restauraram cinco programas que conseguiram, no mínimo, salvar o trabalho que já havia sido feito. O problema é que, com o Jolt, os software ficam entre 7% e 8% mais lentos.
O MIT apresentou o Jolt na  25ª  Conferência Europeia em Programação Orientada a Objeto, em julho, na Inglaterra. No momento, os pesquisadores trabalham também em uma versão que opera diretamente em aplicações compiladas, cujas instruções consistem em sequências binárias. O nome da ferramenta será Bolt.

Nenhum comentário:

Postar um comentário