Teach Time Encyclopedia - Learn About Our World
Home Page
Teach Time
Featured Topics

United States
by state

CITYology

Academic Disciplines

Historical Timelines

Themed Timelines

Calendars

Reference Tables

Biographies

How-tos



Wednesday, December 03, 2008

Infinite loop

An infinite loop is a sequence of instructions in a computer program which loops endlessly. There are a few situations when this is desired behavior. For example, many server programs such as Internet or database servers loop forever waiting for and servicing requests. More often, though, the term is used for those situations when this is not the intended result; that is, when this is a bug. Such errors are made by experienced programmers as well as novices, and their causes can be quite subtle.

One common cause, for example, is that the programmer intends to iterate over a collection of items such as a linked list, executing the loop code once for each item, but improperly formed links which create a reference loop in the list, causing the code to continue forever.

Unexpected behavior of a terminating condition can also cause this problem. Here's an example (in C):

 float x = 0.1;
 while (x != 1.1) {
   x = x + 0.1;
   printf("x = %f\\n", x);
 }

On some systems, this loop will run ten times as expected; but on some systems it will never terminate. The problem is that the loop terminating condition (x != 1.1) tests for exact equality of two floating point values, and the way floating point values are represented in many computers will make this test fail, because 1.1 cannot be represented exactly. Changing the test to something like while (x < 1.10001) will fix the problem (as will not using floating point values for loop indexes).

A similar problem occurs frequently in numerical analysis: in order to compute a certain result, an iteration is intended to be carried out until the error is smaller than a chosen tolerance. However, because of rounding errors during the iteration, the tolerance can never be reached, resulting in an infinite loop.

While most infinite loops can be found by close inspection of the code, there is no general method to determine whether a given program will ever halt or will run forever; this is the undecidability of the Halting problem.

When Apple Computer built its new headquarters in Cupertino, California, it needed to add a circular road running around all the buildings; so the company named it Infinite Loop, giving Apple its official mailing address - "1-5 Infinite Loop."



Internet Hotel Solutions

Site Sponsors
AC Units
Baltimore Harbor
Boot Camp Grads
Bra Size
Burkittsville
College Hotels
Digital Harbor
Free Cell Phones
Golden Hare Travel
Golf Vacations
Golf Courses
Gourmet
Hair Styles
Hippodrome
iWoman
Lesson Plans
Maryland Hotels
MD Genealogy
Minor League Stuff
Motel Site
Ocean City
OC Real Estate
Old Agers
Office Supplies
Orlando
Pet Friendly Hotel
Room Prices
Savannah, GA
Ski Vacations
South Baltimore
Student Teaching
Travel Sources
University Hotels
Visit Military Bases
Washington, DC

Brought to you by NoChildLeftBehind.com and the Beaches and Towns Network, LLC.