2. Reflections on Trusting Trust

Krisha Mehta
4 min readMay 2, 2018

Reflections on Trusting Trust by Ken Thompson is one of the most influential papers which describes how important it is to trust code written by others. To explain it better, the paper begins with the following lines-

To what extent should one trust a statement that a program is free of Trojan horses? Perhaps it is more important to trust the people who wrote the software.

Ken Thompson is an American pioneer of computer science. Having worked at Bell Labs for most of his career, Thompson designed and implemented the original Unix operating system. He also invented the B programming language, the direct predecessor to the C programming language, and was one of the creators and early developers of the Plan 9 operating systems. Since 2006, Thompson has worked at Google, where he co-invented the Go programming language. The following paper has been derived from the Turing award lecture he gave.

It is very difficult for a programmer to trust the code written by others. To delineate this, Ken talks about one of the programming exercises he participated in. The goal of the exercise was to create the shortest self-producing program i.e to write a source program that, when compiled and executed, will produce an exact copy of the source as its output. For people coming from a non-cs background, compiling a program means to convert the program from a programming language like C, Java into machine language that the computer processors understand. The program was written in three stages.

--

--