Når et program ikke længere reagerer på brugerens desperate klikken med musen eller frustrerede hamren i tastaturet, skyldes det som regel, at programmet er fanget i én eller anden form for løkke.
En gruppe forskere med Microsofts Byron Cook i spidsen har udviklet et testprogram kaldet Terminator, der kan hjælpe udviklere med at identificere de steder i et programs kode, hvor programmet uventet kan gå i stå.
Ikke alle løkker skyldes åbenlyse fejl, som eksempelvis While-løkker hvor programmøren har glemt tælleren.
Kan være et ventende program
Det kan også være et program, der afventer svar fra et netværk, der ikke er tilsluttet, men ikke har fået besked på, hvor længe det skal blive ved at forsøge.
En af datalogiens fædre Alan Turing beviste i 1936, at det var umuligt at bevise, hvorvidt alle programmer ville afvikles til ende eller ej.
- Men dette udelukker ikke eksistensen af fremtidige testprogrammer, der virker 99,9 procent af tiden på programmer udviklet af mennesker. Det er den slags værktøjer, vi forsøger at lave, siger Byron Cook til Microsoft Research.
Sammen med en gruppe europæiske matematikere udviklede han Terminator-algoritmen, som netop kan anvendes til at bestemme, hvorvidt et program vil afvikles til ende som forventet eller stoppe undervejs.
Selv om algoritmen ikke kan anvendes på alle typer programmer, arbejder forskerne på at udvide den til at fungere med flere typer af programstrukturer, end den i dag kan håndtere.
Relevant link