EsoEnglish

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

This article is unfinished

EsoEnglish is a popular esoteric programming language that is primarily used to transfer and store data in groups.

History

EsoEnglish is by far one of the oldest programming languages we still use today, tracing back to 5th century AD. This is before computers were invented, so people had to do all the processing instead (which is insane). Its predecessors are other languages such as EsoEspanol. Even today it is still relevant and still used by people primarily in the Americas, consistantly being updated all the time. Famous languages like JavaScript use EsoEnglish as their instructions.

Overview

Learnability

Human processors or 'Brains' are very slow at calculating complex problems and are better at processing and creating their own data and instructions, so you must be clear when installing new languages. Despite this, EsoEnglish by far has some of the most lazily documented source code. Ironically, it is able to be learned at a low level by toddlers.

All of the source code for every instruction is written in itself and documented in a large database called a dictionary. There are so many instructions we have lost track of them all, with there being an estimated 1M+ instructions, and about half of them do the same thing or mean something different in a different context.

Processing

The human brain once taught can master this language, and even assume what some words mean without having to be told. However, this is not possible for a computer, so reading and executing EsoEnglish programs can be a tough challenge for it.

In most programming languages, there is an interpreter that can change for example C into raw machine code, but EsoEnglish is different. In EsoEnglish, one line of code often can mean multiple things, and there's no clear difference between an instruction and a piece of data to store. Brains are much better at distinguishing this, while a computer cant.

Example Programs

Heres a simple one that's meant to be interpreted by a predictable machine.

 Make a pizza with pepperoni, sausage, and cheese. If you do not have the what's required, go to a store and buy them.

And here's that one but it's meant to be interpreted by a human.

 Please make a sausage and pepperoni pizza.

The main difference is the level of detail.

Commands

As stated their are 1M+ commands, so we cant list them all here. If you want a incomplete, but definitely more complete, list of instructions, your gonna wanna look at The Oxford English Dictionary.

Letters

Every instruction is composed of letters that can be capitalized or uncapitalized. They don't mean anything on there own, but also don't mean anything about the instruction. So there only there to differentiate them and to be slightly annoying as revealed later.

Capitalized Uncapitalized
A a
B b
C c
D d
E e
F f
G g
H h
I i
J j
K k
L l
M m
N n
O o
P p
Q q
R r
S s
T t
U u
V v
W w
X x
Y y
Z z

Common Instructions

A few instructions are quite common, so we will list them here.

Punctuation

Punctuation is a key part of EsoEnglish. These change the flow of the program and how its read to the interpreter.

Non-terminators

These are for within a line of code.

Command Instruction
( This marks the start of a comment.
) This marks the end of a comment.
, This marks the start of a list, and that the word its placed directly at the end of is the first entry. It can also denote a second sub-list of instructions to follow that commonly semi-relate to the ones before it. If that's the case, than a list ending instruction must follow, or you will get a "grammarSyntax" error.

Terminators

These mark the end of the current line. Keep in mind a space must follow all terminators.

Command Instruction
. Default line ending, it doesn't do anything special.
! Marks the line as type "audible" and denotes importance.
? Marks the line as an input for the user. When a line ends with this, it will output the lines contents and show an input. The next line generally should perform operations on "Answer".

Conjunctions

These go together with the comma to create lists/arrays.

Command Instruction
and This marks the end of a list, and that the next word is the last one in the list. It also denotes the list to be of type Inclusive, which means that all other elements in the list are important.
or Same as "and" but denotes the list to be of type Non Inclusive instead, which means that the user selects one item in the list as important.
nor Opposite of "and". Denotes the list to be of type Exclusive, which means that the the values are all not important and should be avoided.


Syntax

General

  • Every line MUST end with a terminator function.
  • The first letter of every line of code must be capital.
  • The first letter of every variable must be capital.

Comments

Unlike most comments, EsoEnglish comments can be read by the interpreter for extra context.

As referred to earlier, parenthesis denote a comment and can be placed anywhere in the program as long as it doesn't lie between an instruction.

For example:

Ths program outputs "Hello, world!"

 Send "Hello, World!" to the output. (Hello world is a common problem in programming.)