

Ask HN: What is the smallest possible language? - sethhovestol

I&#x27;ve been thinking about languages recently, and I&#x27;m wondering what the most simple Turing complete language needs. By this I mean flow control (if&#x2F;else) and recursion or loops (or the beloved Y combinator). What would be a list of these features?
======
valarauca1
The mov operator in x86 assembly is technically Turning Complete onto itself
[1]. I believe you'd be hard pressed to get smaller then that.

[1]
[http://www.cl.cam.ac.uk/~sd601/papers/mov.pdf](http://www.cl.cam.ac.uk/~sd601/papers/mov.pdf)

~~~
sethhovestol
I'm impressed. What I'm thinking more of is what types of functions and
specific functions do you need? So also add, subtract...

~~~
bmm6o
Nothing about Turing completeness requires the presence of functions. You're
probably looking for a _useful_ language, but you'll have trouble making that
criterion rigorous.

------
tsuyoshi
This type of language is called a Turing Tarpit:
[http://esolangs.org/wiki/Turing_tarpit](http://esolangs.org/wiki/Turing_tarpit)

~~~
gus_massa
Why the SKI “programming” language is not included in the list of examples?
[http://en.wikipedia.org/wiki/SKI_combinator_calculus](http://en.wikipedia.org/wiki/SKI_combinator_calculus)

------
ggchappell
A fair amount of research has gone into this question. A number of very simple
Turing-complete languages are known.

valarautical mentioned x86 mov. Another is an assembly-ish language with two
instructions: (1) decrement and (2) branch if <= 0. Another is the Lambda
Calculus. The only thing it has is lambda (and variables and function
application, if you want to consider those to be _things_ ). Lisp with only
QUOTE, ATOM, EQ, CAR, CDR, CONS, and COND is another example (and perhaps even
that list is not minimal; I'm a little vague on this).

~~~
sethhovestol
The lisp example is actually exactly what I'm looking for!

------
dbieber
Are you familiar with Brainfuck?
[http://en.wikipedia.org/wiki/Brainfuck](http://en.wikipedia.org/wiki/Brainfuck)
It has just 8 symbols and looks like gibberish when you actually write it. I
think you'll find it to be an amusing example of a very small Turing complete
language.

