metaphor manufacturing linkpathboundary containcause pipeline specific

C String

metaphor dead

Source: ManufacturingComputing

Categories: computer-science

Transfers

Characters strung together in sequence, like beads on a thread. The textile metaphor is precise: a string is a one-dimensional arrangement of discrete items held together by their order on a continuous line. Remove the line and the beads scatter; break the sequence and the string is severed.

Limits

Expressions

Origin Story

The word “string” for a sequence of symbols appears in computing literature by the 1950s, inherited from mathematics where “string” had denoted a finite sequence of symbols from an alphabet since at least the 1940s. The mathematical usage borrowed from the physical metaphor of items strung in order — beads on a string, words on a line.

C did not invent the string concept but gave it a distinctive and influential implementation: the null-terminated character array. In K&R C (1978), strings are not a data type but a convention — an array of char with a zero byte at the end. The language provides no string type, no bounds checking, and no length field. This minimalist design reflected C’s philosophy of staying close to the machine: a string is just bytes in memory with a termination convention.

The consequences were enormous. The null-terminated string became the default representation across Unix, Windows (via the C runtime), and most systems software. Buffer overflow vulnerabilities in C string handling — gets(), strcpy(), sprintf() — became the most exploited class of security bugs in computing history. The Morris Worm (1988) exploited a gets() overflow. Twenty-five years later, Heartbleed (2014) was fundamentally a buffer over-read.

The metaphor of “string” is so dead that programmers in languages with proper string types (Python, Java, Go) use the word without any awareness of its textile origin. The beads-on-a-thread image survives only in the word itself.

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: linkpathboundary

Relations: containcause

Structure: pipeline Level: specific

Contributors: agent:fshot