Wat is een oneindige lus?
Een oneindige lus is een voorwaarde waardoor een computerprogramma een opdracht zonder einde blijft uitvoeren. Dit is meestal te wijten aan een van de drie oorzaken: het programma heeft geen eindconditie, de eindconditie van het programma is onbereikbaar of een herhaalcommando zorgt ervoor dat een programma continu opnieuw start. Meestal zorgt een oneindige lus ervoor dat een computer drastisch vertraagt of zelfs vastloopt. In vroege computers vereisen deze lussen vaak een herstart, maar moderne besturingssystemen vangen ze vaak op en beëindigen het programma voordat ze uit de hand lopen.
Er bestaan oneindige lussen binnen de programmering; ander gebruik van de term is meestal onjuist. In de meeste gevallen zijn oneindige lussen niet het einddoel van het programma en er bestaat ergens in de code een probleem waardoor de aandoening optreedt. Elk van de drie hoofdgevallen van een oneindige lus is volledig gebaseerd op programmering en software.
Wanneer een programma geen eindconditie heeft, zal het zijn laatste reeks instructies zonder einde blijven uitvoeren. In veel gevallen zal dit ertoe leiden dat het programma vastloopt terwijl het wacht op een laatste instructie die nooit zal komen. Andere keren was de laatste instructie die aan het programma werd gegeven een instructie uitvoeren of een opdracht verwerken. In deze gevallen zal het deze dingen eindeloos blijven doen. Hierdoor wordt de computer langzaam gevuld met herhaalde opdrachten uit de oneindige lus totdat het hele systeem aan een probleem zonder einde werkt.
Een vergelijkbare situatie bestaat wanneer de eindconditie van een programma onbereikbaar is. In dit geval kan het programma eindigen, maar dat zal het nooit doen. Het probleem met het eindpunt kan te wijten zijn aan de programmering of een computerfout die de toestand veroorzaakt. Als een programma bijvoorbeeld om een specifiek stuk informatie van een specifieke locatie vraagt, zou een programmeerfout zijn dat de informatie op een andere plek wordt opgeslagen. Aan de andere kant, als de informatie naar het programma gaat, maar wordt onderbroken vanwege interferentie van de gebruiker of een ander programma, kan het eenvoudigweg nooit aankomen.
De laatste oorzaak van een oneindige lus is volledig gebaseerd op programmeren. Ergens in de programmering is een opdracht die het programma vertelt iets te herhalen. Hoewel deze opdrachten veel voorkomen, mogen voorwaarden de herhaalde opdracht nooit laten terugkeren naar de initiële herhaling. Als dit gebeurt, voert het programma een opdracht uit, drukt u op de opdracht repeat en voert u de opdracht opnieuw uit, herhaalt u de procedure enzovoort. Deze lussen worden het meest waarschijnlijk opzettelijk geprogrammeerd, vaak als onderdeel van een stukje malware.