Che cos’è un ciclo infinito?

Un ciclo infinito è una condizione che fa sì che un programma per computer continui a eseguire un comando senza fine. Ciò è in genere dovuto a una delle tre cause: il programma non ha una condizione di fine, la condizione di fine del programma è irraggiungibile o un comando di ripetizione fa sì che un programma si riavvii continuamente. La maggior parte delle volte, un ciclo infinito causerà un drastico rallentamento o addirittura il blocco del computer. Nei primi computer, questi cicli richiedevano spesso un riavvio, ma i sistemi operativi moderni spesso li catturano e terminano il programma prima che sfuggano di mano.

Esistono loop infiniti all’interno della programmazione; altri usi del termine sono generalmente errati. Nella maggior parte dei casi, i cicli infiniti non sono l’obiettivo finale del programma e da qualche parte nel codice esiste un problema che causa il verificarsi della condizione. Ciascuno dei tre casi principali di un ciclo infinito è completamente basato sulla programmazione e sul software.

Quando un programma non ha una condizione di fine, continuerà ad eseguire l’ultima serie di istruzioni senza fine. In molti casi, ciò comporterà il blocco del programma in attesa di alcune istruzioni finali che non arriveranno mai. Altre volte, l’ultima istruzione data al programma era l’esecuzione di un’istruzione o l’elaborazione di un comando. In questi casi, continuerà a fare queste cose senza fine. Ciò farà sì che il computer si riempia lentamente di comandi ripetuti dal ciclo infinito fino a quando l’intero sistema non sta lavorando su un problema senza fine.

Una situazione simile esiste quando la condizione di fine di un programma è irraggiungibile. In questo caso, il programma può terminare, ma non lo farà mai. Il problema con il punto finale potrebbe essere nella programmazione o potrebbe essere un errore del computer che causa la condizione. Ad esempio, se un programma richiede un’informazione specifica da una posizione specifica, un errore di programmazione sarebbe che l’informazione è memorizzata in un punto diverso. D’altra parte, se l’informazione sta andando al programma, ma viene interrotta a causa di un’interferenza da parte dell’utente o di un altro programma, potrebbe semplicemente non arrivare mai.

L’ultima causa di un ciclo infinito è completamente basata sulla programmazione. Da qualche parte all’interno della programmazione c’è un comando che dice al programma di ripetere qualcosa. Sebbene questi comandi siano comuni, le condizioni non dovrebbero mai consentire al comando ripetuto di tornare alla ripetizione iniziale. Se ciò accade, il programma eseguirà un comando, premerà l’istruzione repeat, quindi eseguirà di nuovo il comando, quindi ripeterà di nuovo e così via. Questi loop hanno maggiori probabilità di essere programmati deliberatamente, spesso come parte di un malware.