Proof That find + mkdir Are Turing-Complete

Data manipulation is at the heart of computation, and a system is said to be Turing-complete if it can be configured to manipulate data in a way that makes implementing arbitrary computation possible. [Keigo Oka] shared a proof that find and mkdir together are Turing-complete, which is to say, a system with only GNU’s find and mkdir has access to enough functionality to satisfy the requirements of Turing completeness, which ignores questions of efficiency or speed.

[Keigo Oka]’s first attempt at a proof worked to implement Rule 110, an elementary cellular automata configuration that has been shown to be Turing-complete, or ‘universal’, but has been updated to implement a tag system as it’s proof, and you can see it in action for yourself.

Seeing basic utilities leveraged in such a way illustrates how computation is all around us, and not always in expected places. We’ve also seen Turing-complete origami and computation in cellular automata.

10 thoughts on “Proof That find + mkdir Are Turing-Complete

    1. In Unix terms, the current working directory is a state variable of each process. If `mkdir` is an executable, it gets its own process and a copy of the parent process’s state. Thus, `mkdir` could change its own working directory or other state all it wants but it can’t change the parent’s state. All processes follow that paradigm. You’d need some special unusual agreement between child and parent to communicate a change, or merge `mkdir` into the shell parent process like `cd` is, and make it really clear how it doesn’t follow the now-50-year tradition.

  1. The latest Futurama episode had an ancient Mayan system of data storage using beads on a string, which was read by a futuristic Turing machine. Great math and science trivia gets thrown in, I enjoyed that immensely. Pop culture rarely understands CS

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.