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 alcuna condizione finale, la condizione finale del programma è irraggiungibile o un comando di ripetizione fa riavviare continuamente un programma. Il più delle volte, un loop infinito farà rallentare o addirittura bloccare un computer in modo drastico. Nei primi computer, questi loop richiedono spesso un riavvio, ma i sistemi operativi moderni li catturano e terminano il programma prima che sfuggano di mano.
Esistono cicli infiniti all'interno della programmazione; altri usi del termine sono generalmente errati. Nella maggior parte dei casi, i loop infiniti non sono l'obiettivo finale del programma e esiste un problema da qualche parte nel codice che causa il verificarsi della condizione. Ciascuno dei tre casi principali di un ciclo infinito è completamente basato su programmazione e software.
Quando un programma non ha alcuna condizione di fine, continuerà a 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 verranno mai. Altre volte, l'ultima istruzione fornita al programma era l'esecuzione di un'istruzione o l'elaborazione di un comando. In questi casi, continuerà a fare queste cose senza fine. Questo farà sì che il computer si riempia lentamente di comandi ripetuti dal ciclo infinito fino a quando l'intero sistema non sta funzionando su un problema senza fine.
Una situazione simile esiste quando la condizione finale 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 informazioni specifiche da una posizione specifica, un errore di programmazione sarebbe che le informazioni sono memorizzate in un punto diverso. D'altra parte, se l'informazione sta andando al programma, ma viene interrotta a causa di interferenze 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. Un posto all'interno della programmazione è un comando che dice al programma di ripetere qualcosa. Mentre questi comandi sono comuni, le condizioni non devono mai consentire al comando ripetuto di tornare alla ripetizione iniziale. In questo caso, il programma eseguirà un comando, premerà l'istruzione repeat, quindi eseguirà nuovamente il comando, quindi ripeti di nuovo e così via. È molto probabile che questi loop vengano programmati deliberatamente, spesso come parte di un malware.