EE
Jump to navigation
Jump to search
EE is an Esoteric programming language created by User:Goldos24 and MisterJaJo in 2019. It is just another fully backwards compatible one-dimensional brainfuck derivative with 8 extra instructions.
| Paradigm(s) | imperative |
|---|---|
| Designed by | User:Goldos24, MisterJaJo |
| Appeared in | 2020 |
| Memory system | tape-based |
| Dimensions | one-dimensional |
| Computational class | Turing complete |
| Major implementations | Original |
| Influenced by | brainfuck |
| File extension(s) | .e, .ee |
Memory
EE has a tape-based Memory system with an extra cell referred to as accumulator which can only be accessed using the $ (copy) and § (paste) instructions.
Instructions
| Command | Description |
|---|---|
>
|
Move the pointer to the right |
<
|
Move the pointer to the left |
+
|
Increment the memory cell under the pointer |
-
|
Decrement the memory cell under the pointer |
.
|
Output the character signified by the cell at the pointer |
,
|
Input a character and store it in the cell at the pointer |
[
|
Jump past the matching ] if the cell under the pointer is 0
|
]
|
Jump back to the matching [ if the cell under the pointer is nonzero
|
$
|
Copy the cell under the pointer to the accumulator |
§
|
Paste into the cell under the pointer from the accumulator |
"
|
Declare a function |
{
|
Start of function content |
}
|
End of function content and return |
;
|
Return |
(
|
Call a function; Start of function name |
)
|
Call a function; End of function name |
Example Code
Here is some example code for the EE programming language. You can also use brainfuck code since EE is fully backwards compatible.
Hello, world!
"=0" {[-]} Sets selected cell to 0 like it is done in brainfuck
"H" {(=0) > (=0) +++++ +++ [- < +++++ ++++ > ] <} Sets selected cell to 8x9 / 'H'
"e" {(=0) > (=0) +++++ +++++ [- < +++++ +++++ > ] < + } Sets selected cell to 10x10 plus 1 / 'e'
"l" {(=0) > (=0) +++++ +++++ [- < +++++ +++++ + > ] < -- } Sets selected cell to 10x11 minus 2 / 'l'
"o" {(=0) > (=0) +++++ +++++ [- < +++++ +++++ + > ] < + } Sets selected cell to 10x11 plus 1 / 'o'
"," {(=0) > (=0) ++++ [- < +++++ +++++ + > ] < } Sets selected cell to 4x11 / comma
"space" {(=0) > (=0) ++++ [- < +++++ +++ > ] < } Sets selected cell to 4x8 / ' '
"w" {(=0) > (=0) +++++ +++++ [- < +++++ +++++ ++ > ] < - } Sets selected cell to 10x12 minus 1 / 'w'
"r" {(=0) > (=0) +++++ +++++ [- < +++++ +++++ + > ] < ++++ } Sets selected cell to 10x11 plus 4 / 'r'
"d" {(=0) > (=0) +++++ +++++ [- < +++++ +++++ > ] < } Sets selected cell to 10x10 / 'd'
"!" {(=0) > (=0) +++ [- < +++++ +++++ + > ] < } Sets selected cell to 3x11 / '!'
(H) . Calls 'H' function and outputs selected cell
(e) . Calls 'e' function and outputs selected cell
(l) . Calls 'l' function and outputs selected cell
(l) . Calls 'l' function and outputs selected cell
(o) . Calls 'o' function and outputs selected cell
(,) . Calls comma function and outputs selected cell
(space) . Calls 'space' function and outputs selected cell
(w) . Calls 'w' function and outputs selected cell
(o) . Calls 'o' function and outputs selected cell
(r) . Calls 'r' function and outputs selected cell
(l) . Calls 'l' function and outputs selected cell
(d) . Calls 'd' function and outputs selected cell
(!) . Calls '!' function and outputs selected cell
Conditional function call, no loop
Creating the function:
"f" { Place your function content here }
Call f if the selected cell is zero:
"if_zero_call_f" {](f);[} declaring a function which is the same as an if statement
(if_zero_call_f) call this function when you want to use the if statement
Call f if the selected cell is nonzero:
"if_nonzero_call_f" {[(f);]} declaring a function which is the same as an if statement
(if_nonzero_call_f) call this function when you want to use the if statement
Infinite loop using a self-calling function
This is a simple infinite loop doing nothing, but repeating:
"loop" {(loop)} creating the loop function
(loop) calling the loop function
Filling your whole memory with an input character
This program asks you for a character, then it fills every cell with that character:
"fill" {$>§(fill)} creating the 'fill' function
, input
(fill) calling 'fill'