Skip to main content

Science Quote by Ken Thompson

"I wanted to separate data from programs, because data and instructions are very different"

About this Quote

Thompson’s line sounds like a mild design preference until you remember it was uttered by someone helping invent the modern operating system. “Separate data from programs” isn’t just tidiness; it’s a refusal to let computers pretend that everything is the same kind of thing simply because it can be represented as bits. He’s drawing a bright conceptual border: data is inert, descriptive; instructions are active, prescriptive. Mixing them isn’t only confusing for humans reading code - it invites machines to behave in ways humans didn’t mean.

The intent is engineering clarity with a moral edge. Thompson is insisting that software should make its own power legible. When code and data blur, you get programs that are harder to reason about, harder to secure, and easier to accidentally weaponize. The subtext, especially in the Unix/C lineage, is that simplicity is not aesthetic minimalism; it’s a strategy for survival at scale. Separate the nouns from the verbs and you get systems that can be composed, tested, swapped, and debugged without mystical side effects.

Context matters: Thompson’s era was one of tight memory, shared machines, and growing complexity. The separation he’s pointing to anticipates entire architectural doctrines: code/data segmentation, executable permissions, the Unix philosophy of plain-text interfaces, even today’s sandboxing and “data-only” formats designed to resist code injection. It’s an argument against cleverness as a default. Computers will happily execute whatever looks executable; Thompson is arguing we shouldn’t.

Quote Details

TopicCoding & Programming
Source
Verified source: Computer: Unix and beyond, An interview with Ken Thompson (Ken Thompson, 1999)
Text match: 100.00%   Provider: Cross-Reference
Evidence:
I wanted to separate data from programs, because data and instructions are very different.. This line appears in the interview transcript hosted by Princeton (CS333 course archive) of the IEEE Computer magazine interview commonly titled “Unix and beyond: An interview with Ken Thompson” (May 1999). I also found a Nokia Bell Labs publications page that identifies the piece and date (01 May 1999) and links to the DOI/IEEE record, but the IEEE Xplore page could not be opened from my current browsing tool due to a safety/redirect restriction, and the Princeton page could not be re-opened in full due to a tool decoding error, however the snippet captured in search results includes the exact sentence. If you need the *first publication* with page numbers, it should be verified directly in the original IEEE Computer issue/PDF on IEEE Xplore (DOI: 10.1109/MC.1999.762801) or a library scan of the May 1999 issue.
Other candidates (1)
Introduzione ai sistemi real time (GianLuca DeMichelis, 2012) compilation95.0%
... I wanted to separate data from programs , because data and instructions are very different . Ken Thompson I proce...
Cite

Citation Formats

APA Style (7th ed.)
Thompson, Ken. (2026, February 10). I wanted to separate data from programs, because data and instructions are very different. FixQuotes. https://fixquotes.com/quotes/i-wanted-to-separate-data-from-programs-because-99185/

Chicago Style
Thompson, Ken. "I wanted to separate data from programs, because data and instructions are very different." FixQuotes. February 10, 2026. https://fixquotes.com/quotes/i-wanted-to-separate-data-from-programs-because-99185/.

MLA Style (9th ed.)
"I wanted to separate data from programs, because data and instructions are very different." FixQuotes, 10 Feb. 2026, https://fixquotes.com/quotes/i-wanted-to-separate-data-from-programs-because-99185/. Accessed 12 Feb. 2026.

More Quotes by Ken Add to List
Ken Thompson: Separating Data from Programs Concept
Click to enlarge Portrait | Landscape

About the Author

Ken Thompson

Ken Thompson (born February 4, 1943) is a Scientist from USA.

29 more quotes available

View Profile

Similar Quotes