English

From Esolang
Jump to: navigation, search
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.

Examples

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.