x86 is Turing-complete with no registers
mainisusuallyafunction.blogspot.com
mainisusuallyafunction.blogspot.com
Also, you know you're reading the page of a True Language ... Person when you get gems like:
Brainfuck isn't the simplest language out there (try Subleq) but it's pretty familiar as an imperative, structured-control language. So I think compiling from Brainfuck makes this feel "more real" than compiling from something super weird.
Not sure how many people consider Brainfuck "pretty familiar" (especially at this level) or "real", even with quotes. :)
NB: As a final year project on my CS course in the 80s I did benchmarking on the efficiency of different sets of combinators for executing a toy functional programming language - the simplest set of combinators I used was SK and that was quite impressively awful to do something like multiplication. Quite interested to see how bad a single combinator scheme would be....
BLC Syntax
<term> ::= 00 | 01 | 1 <term> <term>
BLC Semantics (as string-rewriting rules for any terms x, y, z) 1100xy --> x
11101xyz --> 11xz1yz
http://homepages.cwi.nl/~tromp/cl/cl.html Code that self-modifies by calling read() is clearly the future of computing.My favorite is the OISC(One instruction set computer) http://esolangs.org/wiki/OISC
(Esolang is probably the best timewaster for language nerds)
http://en.wikipedia.org/wiki/SKI_combinator_calculus
I just found this document which describes a Q combinator that can be used to define S & K:
http://www.cs.uu.nl/research/techreps/repo/CS-1989/1989-14.p...
Writing it as \xyz.x is just a less noisy way of saying that.
There is a related concept called Bounded-Storage Machine for memory-bounded TM-like abstractions. This computation model is very common with esoteric programming languages. http://esolangs.org/wiki/Bounded-storage_machine
You could argue that I/O operations (which can emulate an unbounded tape) are defined in the C standard library, which is of course not the case of finite state machines.
So in absence of instantiation bounds C together with the C standard library IS Turing complete.
> https://www.usenix.org/conference/woot13/workshop-program/pr...