Black hole

1. An expression which depends on its own value or a technique to detect such expressions.

In graph reduction, when the reduction of an expression is begun, the root of the expression can be overwritten with a black hole.

If the expression depends on its own value, e.g.

x = x + 1

then it will try to evaluate the black hole which will usually print an error message and abort the program.

A secondary effect is that, once the root of the expression has been black-holed, parts of the expression which are no longer required may be freed for garbage collection.

Without black holes the usual result of attempting to evaluate an expression which depends on itself would be a stack overflow.

If the expression is evaluated successfully then the black hole will be updated with the value.

Expressions such as

ones = 1 : ones

are not black holes because the list constructor, : is lazy so the reference to ones is not evaluated when evaluating ones to WHNF.

2. Where an electronic mail message or news aritcle has gone if it disappears mysteriously between its origin and destination sites without returning a bounce message. Compare bit bucket.

[Jargon File]

< Previous Terms Terms Containing black hole Next Terms >
black art
black box
black-box testing
Black Data Processing Associates
bit bucket
black hole
drop on the floor
infinite loop
black magic