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.

This program outputs Hello World.

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 the 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".

This one uses more replace:

This program outputs 99 verses in this manner: "N bottles of beer on the wall, N bottles of beer. Take one down, pass it around, N-1 bottles of beer on the wall", where N is replaced by numbers from 99 to 0 and 1-1=0 is replaced by "No more". If this is the 100th verse, replace the second-to-last line by: "Go to the store and buy some more" and replace 0-1 by 99.

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.

Bootstrap

Note: the "French" can be replaced by any natural language.

This program reads a description of a program and transpiles it to French.

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 programmers 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.