English


 * Not to be confused with ENGLISH, a (non-esoteric) SQL-like programming language used in the old Pick operating system, or ~English, an esoteric attempt at using a natural language as a programming language.

English is a declarative programming language. Many people are familiar with it even if they don't know any other programming language.

Description
Programs are as declarative as they can be: a program is a natural language description of what the program does.

Hello World
This program writes "Hello World" (without quotes) to the output.

99 Bottles of Beer
This program outputs 99 verses in the manner: "N bottles of beer on the wall N bottles of beer Take one down and pass it around N-1 bottles of beer on the wall", where N is replaced by numbers from 99 to 1 and 1-1=0 is replaced by "No more". After that there is hundredth verse: "No more bottles of beer on the wall No more bottles of beer Go to the store and buy some more 99 bottles of beer on the wall".

Quine
This program outputs its own source

or (as the former may be considered a cheat):

This program outputs some string followed by its quotation, and that string is "This program outputs some string followed by its quotation, and that string is"

Self interpreter
This program reads a description of a program and executes it.

Turing completeness
It's obvious that English is Turing complete. For example, here is a Brainfuck interpreter:

Read "Brainfuck" article on Esolang wiki. This is a Brainfuck interpreter.

It's shown here how one can include some specific knowledge into a program.

Computability
Of course English is uncomputable. It solves the halting problem:

Read "Halting Problem" article in Wikipedia. This program solves the halting problem.

Compilers
A compiler of English (usually to some other high-level language) is usually a programmer. They are usually humans and they can be quite buggy at times. However, the 'programmer's are not able to compile English into another high-level language if the original source is uncomputable. Programmer compilers take more time than other compilers like 'gcc' or so, but they also have abilities to disassemble or decompile high-level language into English.

Some computer programs are also able to compile the English language. They are called natural language programming systems.

Localization
English is possibly the easiest esoteric programming language to localize to different human languages, although no such localizations are known to exist at the moment. They might help to introduce esoteric programming languages to a larger audience.