Knitting Is Turing Complete?
Written by Harry Fairhead   
Saturday, 31 August 2013

All sorts of "simple" activities can be viewed as computation - but knitting? Yes, knitting...

I have to confess I have used knitting patterns as examples of programs and to convey the general idea of programming and programming languages - but have you ever seen a knitting pattern? Now we have a much deeper look at the relation between knitting and computation via the aptly named A Computational Model of Knitting

 

knitting1

 Photo by Johntex.

 

The argument goes that it isn't just the human that forms the computational hardware that runs the knitting pattern program, but the knitting needles and the stitches. That is the knitting needles and different types of stitches form the computational hardware of a computer. 

"First off we can observe, that hand knitting needles both have a storage and a stitch processing function."

The basic idea is that when you knit with a pair of needles each stitch is a bit like writing a one on a Turing machine tape.

But it doesn't stop there - you can knit with more than two needles and with needles that aren't straight.  If you have three needles then the third needle acts like additional storage. A needle with one end blocked acts like a LIFO or stack; a needle with two pointy ends can be used as a double ended queue or deque. 

From here things get increasingly fanciful, but you do need to realize that knitting is far more complicated than it seems at first look. For example, the ball of yarn is free memory and each stitch can be regarded as a data structure of pointers to the stitches it is connected to, i.e. a linked data structure.

The observation that knitting is sequential in nature leads to the speculation that it is an implementation of the Von Neumann architecture but with each needle forming a computational unit that tend to work in pairs - hence Von Neumann Knitting.

The whole thing has a four-clock cycle operation sequence which corresponds to knitting a standard stitch. There are also operations for creating different types of stitch as well as plain - purl, twisted purl and so on  - you can read the details on the original blog post. 

The reason for all of this elaborate restructuring of knitting into computational science? 

Does it need a reason?

One thought is:

"... that once we have identified the atoms of the knitting process, we can use them as building-blocks for all kinds of hand-knitting stitches and knitting instructions."

This sounds much too practical. I'd much prefer to consider the abstract computer science questions. What is the halting problem in terms of Von Neumann knitting? Is there a non-computable sock? Is the free memory to be considered finite or unbounded? And what about the scarf complexity question....

 

 knitting2

 

More Information

A Computational Model of Knitting

Related Articles

A Crab-Based Computer 

A Water Droplet-Based Computer       

 

To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, FacebookGoogle+ or Linkedin,  or sign up for our weekly newsletter.

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

 

Banner


The Feds Want Us To Move On From C/C++
13/11/2024

The clamour for safe programming languages seems to be growing and becoming official. We have known for a while that C and C++ are dangerous languages so why has it become such an issue now and is it  [ ... ]



Swimm Releases Copilot Extension For Documentation
03/12/2024

Swimm, best known for its AI-driven software documentation tools, has announced an extension for GitHub Copilot. The Swimm team says the extension means developers using GitHub Copilot Chat can turn C [ ... ]


More News

 

 

Last Updated ( Saturday, 31 August 2013 )