# Godencode

Godencode is an esoteric programming language based off of Gödel numbering and encoding created by Plasmath. Every line of code is composed of a single number, and all other characters are ignored (this can be used for commenting). Many programs in Godencode are extremely long/contain very large numbers, so using a calculator is recommended when programming in this language.

## Etymology

The name of the language comes from a combination of the words Gödel and encode.

## Description

The actual code of Godencode is a list of numbers , usually called just lines of code or values, separated by other characters that Godencode ignores. The best way to understand Godencode is to imagine an infinite 'memory' labeled 0,1,2,... (in the actual language, it's less of a memory and more of a lot of identifiers, but saying memory is much easier to think about) where each location can contain one of three things:

1. A command, a basic operation that lets Godencode actually compute things.
2. A variable, a number that can be adjusted by Godencode.
3. Or a line of code, a set of instructions that tell Godencode what to do.

At the beginning of a program, all memory locations contain no variables. All commands and lines of code can be entirely pre-determined before the program starts, so the lines of code are really just empty spaces in memory. If we want to run the commands at a,b,c,d,... (in order), the corresponding line of code that executes it would be at 2a*3b*5c*7d*... where the bases are the prime numbers. Some of the exponents (a,b,c,d,...) could also have locations to variables, as some commands require variables as input. When a variable is created, it completely overwrites whatever line of code was there, and this line of code cannot be run again in the program. If an exponent leads to a line of code, it will run that line of code.

The syntax of Godencode is just a list of lines of code (or commands, if they do not require input) that tell the program what to do.

Some samples of Godencode's 'memory' before a program runs.

Note: Some locations with lines of code have incorrect syntax. If used in a program, it will return an error.

### Commands

Godencode has 15 commands, labeled from 0-14 when used in exponents:

Godencode commands
Command Description
0 Null command. Does nothing.
1 Error command. Always leads to an error if found in code.
2 Truth command. Used for logic gates and if commands. Acts as you might expect. When not within any if command, it will not lead to an error and will just be ignored.
3 Not command/Not gate. Used for logic gates, takes one input as the command that comes directly after it. If the input is true, it will now be treated as false and vice versa.
4 Open bracket. When paired with a closed bracket, it can allow inputs of multiple commands to be within a function's input, and will be treated as a single character.
5 Closed bracket. See above.
6 Variable declaration command. Whatever value the current line of code is at, a new variable storing 0 will be created at the very next code value. If a variable already exists at that location, the number it stores will just be reset to 0. The inputs of this command must be the last part of a line of code.
7 Input command. Takes an input from the user and converts in into a binary number using ASCII characters, which is then stored as a variable in the next code value.
8 Ends the program. If the end of a program is reached without this command, it will result in an error.
9 Successor command. Adds 1 to the input variable. Input comes directly after the command, and the command must be the first part of a line of code.
10 Output command. Takes a variable as input and returns it as an ASCII character (mod 128). Input comes directly after command.
11 If command. Takes two inputs that both come directly after the command. It can either take two variables or two true/false values as inputs, and if both inputs are the same, run the next line of code in the program. Inserting a not gate directly before an if command will only execute the next line of code if the two inputs are not equal.
12 Reset command. Reset the program to either the beginning or to the last if gate. If this command comes directly after some number of nested if gates, it will go back twice that number. This does not reset variables.
13 Or gate. Takes two inputs (true/false), and if at least one is true, then it will be true.
14 Takes one variable (let's call the number it stores x). If x mod 2 = 0, it will be treated as true, but if x mod 2 = 1, it will be treated as false.

### Syntax

Godencode will reach an error if any of these events happen:

• A line of code containing Command 1.
• Commands have the wrong number of inputs/the wrong kind of input (see above for specifications)
• An open bracket shares no closed bracket and vice versa
• The end of the program is reached without running Command 8.
• A line of code's value begins with a 0.
• Command 6 is not the last part of a line of code.
• Command 7 is not the first part of a line of code.

If none of these events happen when the program is run, it has run successfully.

## Sample Programs

### Truth machine

The current shortest known truth machine in Godencode is as follows:

```128
64
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
196346015741787058376047850806398220574659123509750476440032701530569170245144050568342208862304687500000000000
10548276695938598352868912402271232
196346015741787058376047850806398220574659123509750476440032701530569170245144050568342208862304687500000000000
8
5274138347969299176434456201135616
18432
10548276695938598352868912402271232
12
```

### Hello, World!

The shortest known Hello, World! program in Godencode is as follows, being 17,536 characters long:

```64
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
10548276695938598352868912402271232
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
64
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
64
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
64
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
64
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
64
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
5274138347969299176434456201135616
10548276695938598352868912402271232
8
```

### 99 bottles of beer

The current shortest 99 bottles of beer program is much, much too long to fit on this page or even anywhere on this wiki, being made of 555,213 lines of code and 18,676,370 characters, the resulting program being a 19-megabyte file.

### Infinite loop

The shortest possible infinite loop in Godencode is as follows:

```12
```

### Simple arithmetic

These programs take in variables and set the result at a specified variable. Usually these use the 7th command for input variables and the 10th for the result. These programs contain comments so that they can be adapted to use different variable values.

#### Set one variable to another variable

This program takes two variables, taking the value of one variable and duplicating it to another.

```128 (new variable as input, assume this is a pre-defined number)
64 (new variable as zero)
1143018312178987156109700315498751756382944993394300485415072257205658438928474940802718335798296799345467783295383044916970760596086620353162288665771484375000 (if the first and second variables aren’t equal, do this)
```

1758046115989766392144818733711872 (add one to second variable)

```1143018312178987156109700315498751756382944993394300485415072257205658438928474940802718335798296799345467783295383044916970760596086620353162288665771484375000 (if the first and second variables aren’t equal, do this)
12 (go back two if commands)
3516092231979532784289637467423744 (print second variable, this is the result)
8 (end program)
```

The shortest known addition program. Takes two variables as input, the resultant sum will become the second variable.

```128 (first variable)
1152 (second variable)
64 (new variable as zero)
507994376689942107376461430924243527857453019629984223829110022550413364753459886187696654481148696275139529932030058034797548316419124603271484375000 (if first variable isn’t equal to the third variable, do this)
2254007714037592228031157917266484315602021851657278271223564031740217856324694658199498705731999899701406564198569392911174965065195467512712213057322916185601579347945068445099107390664196937227122935571808984608006069183845584549283023135596832362169689656211744564603803852364777024464247808432487458893199924351367510365089623324840619463134808789311144820276786032337456734091521595277632418634248859452194759122764001987359679455978490912675267639519469685959473184473227344433249823225003873568338861008153364075185558934188711671432859522171392 (add one to second variable)
507994376689942107376461430924243527857453019629984223829110022550413364753459886187696654481148696275139529932030058034797548316419124603271484375000 (if first variable isn’t equal to the third variable, do this)
1758046115989766392144818733711872 (add one to third variable)
507994376689942107376461430924243527857453019629984223829110022550413364753459886187696654481148696275139529932030058034797548316419124603271484375000 (if first variable isn’t equal to the third variable, do this)
460800 (if True is True)
12 (Reset command, go back four if gates)
4508015428075184456062315834532968631204043703314556542447128063480435712649389316398997411463999799402813128397138785822349930130390935025424426114645832371203158695890136890198214781328393874454245871143617969216012138367691169098566046271193664724339379312423489129207607704729554048928495616864974917786399848702735020730179246649681238926269617578622289640553572064674913468183043190555264837268497718904389518245528003974719358911956981825350535279038939371918946368946454688866499646450007747136677722016306728150371117868377423342865719044342784 (print second variable, this is the result)
8 (end program)
```

#### Multiplication by 2

This program is very similar to the addition program, although it only takes one input. The first variable will be the result.

```128 (new variable as input, assume this is a pre-defined number)
64 (new variable as zero)
576 (new variable as zero)
1143018312178987156109700315498751756382944993394300485415072257205658438928474940802718335798296799345467783295383044916970760596086620353162288665771484375000 (if the first and second variables aren’t equal, do this)
1758046115989766392144818733711872 (add one to second variable)
1143018312178987156109700315498751756382944993394300485415072257205658438928474940802718335798296799345467783295383044916970760596086620353162288665771484375000 (if the first and second variables aren’t equal, do this)
12 (Reset command, go back two if commands)
6989093449612897745615846515280682011755429918380395938040213972721873906995859968533924417487293778446483079966625513877627726275579120130561562402542712979671888496979745154929593324665320997197749289341460403384415881664037834068853608820273129774862918044701361602584724905675301186504707645246527048102871178283497660661712430866301839343450141823227964246810332862286777898114044688045776323400030471625214134579438807204354588975547812879085540771484375000 (if the second and third variables aren’t equal, do this)
6036574503802154583818686905043209556827244335245230647857644032 (add one to first variable)
6989093449612897745615846515280682011755429918380395938040213972721873906995859968533924417487293778446483079966625513877627726275579120130561562402542712979671888496979745154929593324665320997197749289341460403384415881664037834068853608820273129774862918044701361602584724905675301186504707645246527048102871178283497660661712430866301839343450141823227964246810332862286777898114044688045776323400030471625214134579438807204354588975547812879085540771484375000 (if the second and third variables aren’t equal, do this)
33971340120567031006365128486992707416417112538016112546009733828879060444464090787305424919843491200016838160416384775542039257052619565657897220855276276526918211984927706578186300105339113773270018052166072761648722717600728939663948688046259073769249214800236967559881687552 (add one to third variable)
12073149007604309167637373810086419113654488670490461295715288064 (print first variable, this is the result)
8 (end program)
```

#### Multiplication

```128 (new variable as input, assume this is a pre-defined number)
1152 (new variable as input, see above)
64 (new variable as zero)
576 (new variable as zero)
1600 (new variable as zero)
3324549524224532075964221592784920564244835583090600516692093881711087912510242521401487109615805006062870815426324666578767936745546556593825593282865809048333141295377743913628031119482758840190598945629276908440066551895659164055887877780008195200644038808743557318279045532560488168774255915932294743297544638971986768240791481808123581634665479054212583470233572856331978177611293033155988677666271134141266320083326410957132519565636968084369128038373373777834078000051438708860518245459657163114761429767978492242196464734901051154276613446346002933541248139561552029893048751055315360693905106821365434963557761561639456780969453580214424154039767414458720180030446782183515356759704762897049222489641940934822559514572201760532576172106761831047893512851903889722550474771834413609394087873794516099586679533242636699475712296490088952883370248414887737965257066910353107006915711987646104987021999450375210324369693432854346849364267160841944881071154214518453424995433968991100326254599100529727959468626869928211093594023362529196571141155474196269985239285208913017631813234596824823401617015949464440777245101177817204467923360995444368402758559440305173123705719035947644003211378163335623594984599568906750036924887856865542104242618308564058360644481776313494488193490117058702461270220397964829747841732808208187574527506086947925998304703953028395282448857279203636027851265752211586675670238097481154007691817769476926063668259418684320788302461934489172271695288846431581112046439958871264610389014163520852598767132735702539834361609301487273814141015285466241391810592536488047034648215408158131681095737503823667545057568966802211113071935431335152463650987586027255637304433466616857006723530039391704812599433049378745472107608953125855019055091050744798102978194390210905208653733870096111724606160493902542955047384624088961031235774717184560470695400948596544522508037721079615197054316877369783561740538900513751568210313822761850776994559779692420457396109915152972258052945046374486107092604020882560342278457503883380327886289744980160421681207970442659474719373238568478077447300561542663233094430097480653785169124603271484375000 (if second and fifth variables aren’t equal, do this)
2489174780068228802691724627202540690809723218876964285226326059178181998174129815430369477440538865902939457462672979971433874334759679886378326018278184024922743331279091447040596231428688797942959412639565657368842571648841550978186951643477443094347084548095787271173959358243136505955232341703131560715321890117746573312398987134985126602138662783826402655489130084252363201674327633151098714461644929492164451354245027726475024497007747731603939116262380266042893811165725305733535433795628725599101363092448584539644724606345776974324068842037149806856177747249603271484375000 (if first and fourth variables aren’t equal, do this)
460800 (if True is True)
1758046115989766392144818733711872 (add one to third variable)
2489174780068228802691724627202540690809723218876964285226326059178181998174129815430369477440538865902939457462672979971433874334759679886378326018278184024922743331279091447040596231428688797942959412639565657368842571648841550978186951643477443094347084548095787271173959358243136505955232341703131560715321890117746573312398987134985126602138662783826402655489130084252363201674327633151098714461644929492164451354245027726475024497007747731603939116262380266042893811165725305733535433795628725599101363092448584539644724606345776974324068842037149806856177747249603271484375000 (if first and fourth variables aren’t equal, do this)
33971340120567031006365128486992707416417112538016112546009733828879060444464090787305424919843491200016838160416384775542039257052619565657897220855276276526918211984927706578186300105339113773270018052166072761648722717600728939663948688046259073769249214800236967559881687552 (add one to fourth variable)
2489174780068228802691724627202540690809723218876964285226326059178181998174129815430369477440538865902939457462672979971433874334759679886378326018278184024922743331279091447040596231428688797942959412639565657368842571648841550978186951643477443094347084548095787271173959358243136505955232341703131560715321890117746573312398987134985126602138662783826402655489130084252363201674327633151098714461644929492164451354245027726475024497007747731603939116262380266042893811165725305733535433795628725599101363092448584539644724606345776974324068842037149806856177747249603271484375000 (if first and fourth variables aren’t equal, do this)
12 (reset command: go back four if gates)
12684621491828510450355538669222572701068091333457909279688505478262578922119762014290624153349880639364020848094605796456623747994889152440594336554238736412119741291873383459535406197792545694070460244989760791708672639327989949171189132033108504551079522982852220457464513133620699265272459971127744874159211568826274916616868079412104399262323956551211233562761641293388916343731859914200759274957958154791822027022052603143002211607585568773769005408511897258134510072502600774139817452815868723859492608706771153628673882639560964008718898320186629723322099692699523464423238156760020515183097743176891858917051845585204743015524953806412906661056843537416910962261183529797344456275738891487841404477974202227883243721922497654657539244542552332171161780224512 (add one to fifth variable)
3324549524224532075964221592784920564244835583090600516692093881711087912510242521401487109615805006062870815426324666578767936745546556593825593282865809048333141295377743913628031119482758840190598945629276908440066551895659164055887877780008195200644038808743557318279045532560488168774255915932294743297544638971986768240791481808123581634665479054212583470233572856331978177611293033155988677666271134141266320083326410957132519565636968084369128038373373777834078000051438708860518245459657163114761429767978492242196464734901051154276613446346002933541248139561552029893048751055315360693905106821365434963557761561639456780969453580214424154039767414458720180030446782183515356759704762897049222489641940934822559514572201760532576172106761831047893512851903889722550474771834413609394087873794516099586679533242636699475712296490088952883370248414887737965257066910353107006915711987646104987021999450375210324369693432854346849364267160841944881071154214518453424995433968991100326254599100529727959468626869928211093594023362529196571141155474196269985239285208913017631813234596824823401617015949464440777245101177817204467923360995444368402758559440305173123705719035947644003211378163335623594984599568906750036924887856865542104242618308564058360644481776313494488193490117058702461270220397964829747841732808208187574527506086947925998304703953028395282448857279203636027851265752211586675670238097481154007691817769476926063668259418684320788302461934489172271695288846431581112046439958871264610389014163520852598767132735702539834361609301487273814141015285466241391810592536488047034648215408158131681095737503823667545057568966802211113071935431335152463650987586027255637304433466616857006723530039391704812599433049378745472107608953125855019055091050744798102978194390210905208653733870096111724606160493902542955047384624088961031235774717184560470695400948596544522508037721079615197054316877369783561740538900513751568210313822761850776994559779692420457396109915152972258052945046374486107092604020882560342278457503883380327886289744980160421681207970442659474719373238568478077447300561542663233094430097480653785169124603271484375000 (if second and fifth variables aren’t equal, do this)
460800 (if True is True)
460800 (if True is True)
12 (reset command, go back six if gates)
3516092231979532784289637467423744 (print third variable, this is the result)
8 (end program)
```

#### Squaring

Squares a number.

```128 (new variable as input, assume this is a pre-defined number)
64 (new variable as zero)
576 (new variable as zero)
1600 (new variable as zero)
3136 (new variable as zero)
1143018312178987156109700315498751756382944993394300485415072257205658438928474940802718335798296799345467783295383044916970760596086620353162288665771484375000 (if the first and second variables aren’t equal, do this)
1758046115989766392144818733711872 (add one to second variable)
1143018312178987156109700315498751756382944993394300485415072257205658438928474940802718335798296799345467783295383044916970760596086620353162288665771484375000 (if the first and second variables aren’t equal, do this)
12 (go back two if commands)
12970524880869500400048802340891797365874845003758783958357605599332749717727554760015960984985475009102567950726584842536811101354878632907358935616758640788337455587587890831506190097317954774928367276545099293065294586337415619974870022973688911180602256708648836041394850012003484861134368630157998953014764569490065825052862750851381689491756882097735555661038664443864253962974788825127720344490237433647567615011304883155465789356492177830631300992702466004046690863628230461232321010482421111451445731173205417490652046248930757751507160311525328043422350659514896958778321836153567814941275072288140916047587549613503056387247240241581349009227098313525350432241281718443502122164262559819771093290440160509138500756603808962486950130338694928111442032349783363893736223776615120392068123433357728028727883556678512311473341918083558550941806067338877716213147752838132273146459335190675435634303644130142243981890741227987542620466478136533327262118483993173696849136029858949201512933356465312498094167635070180451359469778141326825631912183336792482419306488589034006636013388888091439958188013081507381813987422656021230791004537095963812756400837902522529799972335845994469948313864138581440688342423058227769995800330282563933232907340998402418441338422641966041673418408208399872867272350254449859614995772208944065642320592497076679830732085810089252821798882252066934684070311182300460843603297673583465226196296458700747699554968677984437925581831477996410730790359809220062693842009299325423753339840113521040027208865801702066565572259829334104937354022865587923000448919987355424323529500004375008821148627008842174164582615484456291805644400837554449752732119468067354813194407906372541022625713208222931997577768569385514312541147692183183715091947506613926112970152365621566253240178424870228754518511004791522410701763380273782436734447622419207787832450713073625124061222667221489765364942599149899493575617024991506760229057217300571218539179612527359493166576068433957601809323832283016962166061505109269705789245334154596746363983976161635910857524525031911160357895288228040039542214039110185002715505905822208664747915881312583034860568792299944741310482696481940069070865585594258549033991330469869184460301026535829704644624154057075296430726508840151191655771178509288830569104194824816556531039242007436393618980952682746787957105091327615271364509597441944611592434867198132685946150308161096778110924320404145869207872504991927525428761862743158308820444682054851317437498898949988046218374731271090894612838438615489716724230106765132183125574811189220669557946834803399069605299782328647243968180631782126993435546569687077944621478309272788465023040771484375000 (if second and fifth variables aren’t equal, do this)
59765198562082199280963546607918100504828748415006699895602235956401349332416213676594850617638017576695717839529555854716598800330434264852100577837037985153406996645776525540998889029534499944377845604987941504975116792681423927453235449073489160276723336042442368523548979498565796242056021706732486293621645091919300504189740305381185127164659958416036632314316863145326642901325323128693414940315049277244647477347343265965053728921362769719311015622957867380327717387700186580383631336576400698377255840079282025581816799750744707298001489806123958651759351896949076700697030734676111214855524307438527208496315804238255533594331036144919047651833932032576582847184395316811763105492957308785013725882388365937262216075189835966724610570227981382903031912344460515305462568640547349326254970175698457744819902084504191654431215569922515724247664346354868817108379696683569189500408244692630144680026012858409267793977670523014477084938748825739087819759517798968176936512371402531380208023538920051447556286951873569314089678622386517975109648792320654608891042584864733057861505088414688399013976774218317821928043280729270644141047391789304318836304493714902634735808617704121904473063080983484310460395358478252266788535936762453084737676093788886795554252235784889139810181706667320759996708449280241934788470089802293539340382717118330174018309462180758768422941493956963236390740499216883674891975797294207950471900403499603271484375000 (if first and fourth variables aren’t equal, do this)
460800 (if True is True)
33971340120567031006365128486992707416417112538016112546009733828879060444464090787305424919843491200016838160416384775542039257052619565657897220855276276526918211984927706578186300105339113773270018052166072761648722717600728939663948688046259073769249214800236967559881687552 (add one to third variable)
59765198562082199280963546607918100504828748415006699895602235956401349332416213676594850617638017576695717839529555854716598800330434264852100577837037985153406996645776525540998889029534499944377845604987941504975116792681423927453235449073489160276723336042442368523548979498565796242056021706732486293621645091919300504189740305381185127164659958416036632314316863145326642901325323128693414940315049277244647477347343265965053728921362769719311015622957867380327717387700186580383631336576400698377255840079282025581816799750744707298001489806123958651759351896949076700697030734676111214855524307438527208496315804238255533594331036144919047651833932032576582847184395316811763105492957308785013725882388365937262216075189835966724610570227981382903031912344460515305462568640547349326254970175698457744819902084504191654431215569922515724247664346354868817108379696683569189500408244692630144680026012858409267793977670523014477084938748825739087819759517798968176936512371402531380208023538920051447556286951873569314089678622386517975109648792320654608891042584864733057861505088414688399013976774218317821928043280729270644141047391789304318836304493714902634735808617704121904473063080983484310460395358478252266788535936762453084737676093788886795554252235784889139810181706667320759996708449280241934788470089802293539340382717118330174018309462180758768422941493956963236390740499216883674891975797294207950471900403499603271484375000 (if first and fourth variables aren’t equal, do this)
12684621491828510450355538669222572701068091333457909279688505478262578922119762014290624153349880639364020848094605796456623747994889152440594336554238736412119741291873383459535406197792545694070460244989760791708672639327989949171189132033108504551079522982852220457464513133620699265272459971127744874159211568826274916616868079412104399262323956551211233562761641293388916343731859914200759274957958154791822027022052603143002211607585568773769005408511897258134510072502600774139817452815868723859492608706771153628673882639560964008718898320186629723322099692699523464423238156760020515183097743176891858917051845585204743015524953806412906661056843537416910962261183529797344456275738891487841404477974202227883243721922497654657539244542552332171161780224512 (add one to fourth variable)
59765198562082199280963546607918100504828748415006699895602235956401349332416213676594850617638017576695717839529555854716598800330434264852100577837037985153406996645776525540998889029534499944377845604987941504975116792681423927453235449073489160276723336042442368523548979498565796242056021706732486293621645091919300504189740305381185127164659958416036632314316863145326642901325323128693414940315049277244647477347343265965053728921362769719311015622957867380327717387700186580383631336576400698377255840079282025581816799750744707298001489806123958651759351896949076700697030734676111214855524307438527208496315804238255533594331036144919047651833932032576582847184395316811763105492957308785013725882388365937262216075189835966724610570227981382903031912344460515305462568640547349326254970175698457744819902084504191654431215569922515724247664346354868817108379696683569189500408244692630144680026012858409267793977670523014477084938748825739087819759517798968176936512371402531380208023538920051447556286951873569314089678622386517975109648792320654608891042584864733057861505088414688399013976774218317821928043280729270644141047391789304318836304493714902634735808617704121904473063080983484310460395358478252266788535936762453084737676093788886795554252235784889139810181706667320759996708449280241934788470089802293539340382717118330174018309462180758768422941493956963236390740499216883674891975797294207950471900403499603271484375000 (if first and fourth variables aren’t equal, do this)
12 (reset command: go back four if gates)
91521844010543773853807890467891914245256008154196038993785127264382885359032735744562359952498616957776250615260297985552188108013357945132049882863148186432532873900898264610400474900100830263529255770551985713342115643253377004359555250300209913380051472701945411613207584619268363396655000454308815507720504761766469358146963634870279755177277546187930367784029263892010307762538792779111484585450562646011577250062066424295281553948069742149095439400298690444813709300786014994392109388452255692286441021099617019831675008113886484928325674910571935168535082548705507278070673343509176846627438104595536129288651733688993974055392775735543798944283981006634891754795746717025895647446282027298276485586047669643941506862822560884370861512329232187282212936545063312087329737405940357924892766017247846621027119574567516196859317215473647802123714689690394802059402289456264678497998150837522201712028757892364086459681564364486586659307428188923635406718955738701659968710240267202351462937444071765492465136240137502087563923952944049066843385564321782127723949473547863984227403201192137328687006311542835986707398273761315401966370178709119740175502327422936980264127402328847251586711076335051299626244695567369292257062536827213374385365947856888747159102808988115283470263530610831565550176380577340408954807849794583151130035897425932372958983225957573183195688377760769228086578582685868255003281439700275475851557165305104937203079816411865602224454417114071240993937953686369290813952 (add one to fifth variable)
12970524880869500400048802340891797365874845003758783958357605599332749717727554760015960984985475009102567950726584842536811101354878632907358935616758640788337455587587890831506190097317954774928367276545099293065294586337415619974870022973688911180602256708648836041394850012003484861134368630157998953014764569490065825052862750851381689491756882097735555661038664443864253962974788825127720344490237433647567615011304883155465789356492177830631300992702466004046690863628230461232321010482421111451445731173205417490652046248930757751507160311525328043422350659514896958778321836153567814941275072288140916047587549613503056387247240241581349009227098313525350432241281718443502122164262559819771093290440160509138500756603808962486950130338694928111442032349783363893736223776615120392068123433357728028727883556678512311473341918083558550941806067338877716213147752838132273146459335190675435634303644130142243981890741227987542620466478136533327262118483993173696849136029858949201512933356465312498094167635070180451359469778141326825631912183336792482419306488589034006636013388888091439958188013081507381813987422656021230791004537095963812756400837902522529799972335845994469948313864138581440688342423058227769995800330282563933232907340998402418441338422641966041673418408208399872867272350254449859614995772208944065642320592497076679830732085810089252821798882252066934684070311182300460843603297673583465226196296458700747699554968677984437925581831477996410730790359809220062693842009299325423753339840113521040027208865801702066565572259829334104937354022865587923000448919987355424323529500004375008821148627008842174164582615484456291805644400837554449752732119468067354813194407906372541022625713208222931997577768569385514312541147692183183715091947506613926112970152365621566253240178424870228754518511004791522410701763380273782436734447622419207787832450713073625124061222667221489765364942599149899493575617024991506760229057217300571218539179612527359493166576068433957601809323832283016962166061505109269705789245334154596746363983976161635910857524525031911160357895288228040039542214039110185002715505905822208664747915881312583034860568792299944741310482696481940069070865585594258549033991330469869184460301026535829704644624154057075296430726508840151191655771178509288830569104194824816556531039242007436393618980952682746787957105091327615271364509597441944611592434867198132685946150308161096778110924320404145869207872504991927525428761862743158308820444682054851317437498898949988046218374731271090894612838438615489716724230106765132183125574811189220669557946834803399069605299782328647243968180631782126993435546569687077944621478309272788465023040771484375000 (if second and fifth variables aren’t equal, do this)
460800 (if True is True)
460800 (if True is True)
12 (reset command, go back six if gates)
67942680241134062012730256973985414832834225076032225092019467657758120888928181574610849839686982400033676320832769551084078514105239131315794441710552553053836423969855413156372600210678227546540036104332145523297445435201457879327897376092518147538498429600473935119763375104 (print third variable, this is the result)
8 (end program)
```

#### Subtraction by 1

```128 (new variable as input)
64 (new variable as zero)
576 (new variable as zero)
1758046115989766392144818733711872 (add one to second variable)
460800 (if True is True)
507994376689942107376461430924243527857453019629984223829110022550413364753459886187696654481148696275139529932030058034797548316419124603271484375000 (if second variable isn’t equal to first variable, do this)
33971340120567031006365128486992707416417112538016112546009733828879060444464090787305424919843491200016838160416384775542039257052619565657897220855276276526918211984927706578186300105339113773270018052166072761648722717600728939663948688046259073769249214800236967559881687552 (add one to third variable)
507994376689942107376461430924243527857453019629984223829110022550413364753459886187696654481148696275139529932030058034797548316419124603271484375000 (if second variable isn’t equal to first variable, do this)
1758046115989766392144818733711872 (add one to second variable)
507994376689942107376461430924243527857453019629984223829110022550413364753459886187696654481148696275139529932030058034797548316419124603271484375000 (if second variable isn’t equal to first variable, do this)
460800 (if True is True)
12 (Reset: go back four if gates)
67942680241134062012730256973985414832834225076032225092019467657758120888928181574610849839686982400033676320832769551084078514105239131315794441710552553053836423969855413156372600210678227546540036104332145523297445435201457879327897376092518147538498429600473935119763375104 (print third variable, result)
8 (end program)
```