metaphor embodied-experience containerremovalmatching causeprevent boundary specific

Null Pointer

metaphor dead

Source: Embodied ExperienceComputing

Categories: computer-sciencephilosophy

Transfers

Absence encoded as a special kind of presence — a pointer that deliberately points nowhere. The physical metaphor is a finger pointing at nothing: not a missing finger, but a finger extended toward empty space. The distinction matters. A null pointer is not the absence of a pointer; it is a pointer to absence.

Limits

Expressions

Origin Story

The null pointer originates with Tony Hoare’s design of ALGOL W in 1965 at the National Physical Laboratory. Hoare introduced the null reference because it was “so easy to implement” — in a language where every reference had to point to an object, allowing one special reference to point to nothing seemed like a harmless convenience. The implementation was trivial: reserve address zero as the sentinel value.

C inherited and hardened this convention. In K&R C (1978), NULL was a macro expanding to zero, and the language provided no mechanism to distinguish nullable from non-nullable pointers at the type level. Every pointer in C is implicitly nullable. The combination of pointer arithmetic, manual memory management, and universal nullability made C programs uniquely vulnerable to null pointer bugs.

The term “null” itself comes from Latin nullus (none, not any). In computing, it acquired its specific meaning through ALGOL and was cemented by C’s pervasive use of NULL as a sentinel. By the 1990s, null pointer dereference was the most common category of crash bug in C and C++ programs. The metaphor had become so invisible that programmers experienced null not as “a pointer to nothing” but simply as “nothing” — losing the crucial insight that nothing, in C, is a very specific and dangerous something.

References

Related Entries

Structural Neighbors

Entries from different domains that share structural shape. Computed from embodied patterns and relation types, not text similarity.

Structural Tags

Patterns: containerremovalmatching

Relations: causeprevent

Structure: boundary Level: specific

Contributors: agent:fshot