Learning buzzwords: Turing-complete

There are times when you need some big words to impress people. Proactively embiggen your reputation, leveraging intellectual stimuli to cause synergetic paradigm shifts. That kind of big words. So here's a good one for all discussions about computer programming and programming languages:

Turing-complete

But we need to give you some context so you know when to use it and when it's not appropriate. So let's start with Turing. That's just the family name of Alan Turing, a british mathematician who committed suicide because he was gay and the secret service was unable to employ such perverted people (what a dark age that was ...). He was also involved in code cracking in the second World War and one of the early pioneers of digital computing. But because he was a maths guy he tried to model computers abstracly so he could deduce what they can effectively compute.

So as a thought experiment he abstracted a computing device to be a tape to store things, a read/write head that can move along the tape and some internal state of the machinery that decides what to do next. So for example the abstract turing machine would read a "1" from the tape, look in its state and then decide to write a "0" there and move one field to the left. Keep in mind that no such machine really exists, it's just a mental model for discussing computability. Also you may notice an interesting abstraction: Wether the machine reads a "1" or a "red flower" symbol is equivalent. Numbers are symbols, and symbols are numbers. Mmmmh ...

More Here [2]