Degration

From Esolang
Jump to navigation Jump to search

Degration is a Brainfuck like language created by User:Bertrahm. However, the program is stored at the start of the tape and can be modified with the language's commands. 1/16 of all data on the tape is modified randomly every 8th instruction execution.

Overview

Degration has a Tape, at the start of which the Program itself is stored and can be modified. The rest of the Tape starts of as empty. As mentioned before, every 8th instruction execution 1/16 of the data on the tape is degraded randomly, this can also affect the Program.

Degration is Just in Time Compiled as the tape consists of bytes. Below is a Table of each command, its bytecode value and a brief description.

Command Byte Code Description
P+ $01 Increments the Tape Pointer
P- $02 Decrements the Tape Pointer
V+ $03 Increments the Value of current Cell
V- $04 Decrements the Value of current Cell
[ $05 Opens a Loop
] $06 Closes a Loop
* $07 Outputs the value of the current Cell (ASCII)
? $08 Gets user input (Saved starting at current Cell)
! $09 Exits the Program

Looping

Loops are opened and closed using [ and ]. The closing bracket is prepended by a number from 0-255, when the closing bracket is reached, this number is compared with the number in the current cell on the tape. If they match, the loop terminates. This form of looping greatly simplifies programming.

Examples

The Program below demonstrates looping. It sets the starting cell to 9, the loop runs until it is decremented to 0.

 V+V+V+V+V+V+V+V+V+[V-0]!

This Program prints the Uppercase alphabet (atleast tries to)

 [V+65][*V+90]!

External Links