Range (computer programming)

From Infogalactic: the planetary knowledge core
(Redirected from Range (computer science))
Jump to: navigation, search

In computer science, the term range may refer to one of three things:

  1. The possible values that may be stored in a variable.
  2. The upper and lower bounds of an array.
  3. An alternative to iterator.

Range of a variable

The range of a variable is given as the set of possible values that that variable can hold. In the case of an integer, the variable definition is restricted to whole numbers only, and the range will cover every number within its range (including the maximum and minimum). For example, the range of a signed 16-bit integer variable is all the integers from −32,768 to +32,767.

Range of an array

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

When an array is numerically indexed, its range is the upper and lower bound of the array. Depending on the environment, a warning, a fatal error, or unpredictable behavior will occur if the program attempts to access an array element that is outside the range. In some programming languages, such as C, arrays have a fixed lower bound (zero) and will contain data at each position up to the upper bound (so an array with 5 elements will have a range of 0 to 4). In others, such as PHP, an array may have holes where no element is defined, and therefore an array with a range of 0 to 4 will have up to 5 elements (and a minimum of 2).

Range as an alternative to iterator

Another meaning of range in computer science is an alternative to iterator. When used in this sense, range is defined as "a pair of begin/end iterators packed together".[1] It is argued [1] that "Ranges are a superior abstraction" (compared to iterators) for several reasons, including better safety.

In particular, such ranges are supported in Boost C++ Libraries[2] and the D standard library.[3]

See also

References

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. Boost.Range documentation
  3. D Phobos Runtime Library std.range module


<templatestyles src="Asbox/styles.css"></templatestyles>