Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts
Friday, May 14, 2010

Turing Machines


Alan Turing was a brilliant mathematician and logician whose work in the first half of the 20th century was seminal in the development of computer science. In his famous 1936 paper, "On Computable Numbers, with an Application to the Entscheidungsproblem," he introduced the notion of what is now called a Turing machine. Turing machines are imaginary computing devices that provide a useful formalism for investigating the notion of computability.

A Turing machine is a very simple device that uses a tape for storing and manipulating symbols. The machine can read or write a symbol at the current location of the tape, and it can move the tape one position either left or right. The machine contains a single register for recording the current state of the machine. At any point in its execution, the state of the machine together with the symbol read at the current tape position determines the machine's actions.
Despite its simplicity, the concept of a Turing machine adequately captures the general idea of computability. According to the Church-Turing thesis, anything that is computable is computable by a Turing machine. This means, for instance, that even the operation of an extremely complex modern digital computer system could be realized using the simple operations of a Turing machine.

Though Turing machines are interesting primarily for their theoretical properties, Mike Davey has built a physical Turing machine. The video below shows Davey's machine in action. You can find more information about this beautiful device at Davey's website.



In the following video, Davey's machine uses a typical Turing machine strategy to solve a simple subtraction problem.



Related:
Bertrand Russell

Wednesday, April 7, 2010

The computer programmer, like the poet ...


Fred Brooks
The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. … Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. … The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.

– Fred Brooks
Saturday, March 20, 2010

Toxiclibs


Toxiclibs is an open source library of Java and Processing functions for computational design. The library contains functions for audio, color, geometry, math and physics. The following video is a collection of experiments and projects using the library.

toxiclibs showreel from postspectacular on Vimeo.


Tuesday, March 9, 2010

Complexity Kills


Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration.
- Ray Ozzie

Controlling complexity is the essence of computer programming.
– Brian Kernigan

Increasingly, people seem to misinterpret complexity as sophistication, which is baffling - the incomprehensible should cause suspicion rather than admiration. Possibly this trend results from a mistaken belief that using a somewhat mysterious device confers an aura of power on the user.
– Niklaus Wirth

Simplicity is the ultimate sophistication.
– Leonardo da Vinci

Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.
– David Gelernter