Hacker News new | ask | show | jobs
by bertr4nd 2256 days ago
A related idea that I’m interested in but find a bit hard to articulate is to describe “simple” Turing complete languages, where simplicity is defined more by ease of reasoning for a human than by any objective metric.

Basically, if I wanted to provide someone with a Turing complete language, what’s the simplest/easiest thing I could provide, that would still be useful?

2 comments

The simplest you could give someone is probably the Turing machine itself, the Brainfuck language or the lambda calculus.

Simplifying, to have a TC programming language you need two things: RAM and the ability to decide your next state based on the memory contents.

Right, so I think the suggestion of brainfuck illustrates the difficulty I’m having articulating what I want, because while it’s TC and trivial to implement, it is basically impossible to use as a language. I think I’m going for simultaneous ease-of-implementation and ease-of-use rather than any actually type of “minimalism”.

I’m probably just looking for Lisp, really. It’s easy to implement and usable enough.

Yeah, a simple Lisp like Scheme is basically the lambda calculus.

Brainfuck is useless because the operations are useless. But if you give the user a few more things, like addressing memory, basic arithmetic and a way to define variables and functions, then you have something way more useful very quickly.

From what I understand, Forth might be a contender.