Array Changer
Jump to navigation
Jump to search
Array Changer is a very simple language invented by User:A which operates on a byte-valued state machine with binary transitions.
Architecture
The foundational element of a program is realized in a state machine, composed of byte-valued states enumerating in the range [0, 255]. Any such object is connected as a source to two destination states, responding to the transition values zero (0) and one (1) respectively. Commands are provided for changing the states through traversals along the transitions.
State Table
State | Next State On 0 | Next State On 1 |
---|---|---|
0x00 |
0x2B |
0xF7
|
0x01 |
0x77 |
0x1D
|
0x02 |
0x5F |
0x78
|
0x03 |
0x4E |
0xEA
|
0x04 |
0x9A |
0xAE
|
0x05 |
0x01 |
0x60
|
0x06 |
0x75 |
0x46
|
0x07 |
0x1A |
0x1A
|
0x08 |
0x73 |
0x68
|
0x09 |
0x76 |
0x50
|
0x0A |
0x63 |
0x44
|
0x0B |
0xC1 |
0x82
|
0x0C |
0x5E |
0x47
|
0x0D |
0xAA |
0xC9
|
0x0E |
0xA6 |
0x07
|
0x0F |
0x15 |
0x27
|
0x10 |
0x79 |
0x81
|
0x11 |
0x38 |
0xB1
|
0x12 |
0x5D |
0xA2
|
0x13 |
0x19 |
0xA5
|
0x14 |
0xBC |
0x55
|
0x15 |
0x3F |
0xE5
|
0x16 |
0x7A |
0x56
|
0x17 |
0x8D |
0x93
|
0x18 |
0xFB |
0x7F
|
0x19 |
0xF9 |
0xAC
|
0x1A |
0x3B |
0x16
|
0x1B |
0x91 |
0x2A
|
0x1C |
0xA8 |
0x57
|
0x1D |
0x68 |
0x51
|
0x1E |
0x04 |
0x9A
|
0x1F |
0x03 |
0xBD
|
0x20 |
0x36 |
0xB2
|
0x21 |
0x3E |
0x5E
|
0x22 |
0x35 |
0x6E
|
0x23 |
0x52 |
0x37
|
0x24 |
0x92 |
0x34
|
0x25 |
0xC7 |
0x69
|
0x26 |
0x87 |
0x52
|
0x27 |
0x05 |
0x08
|
0x28 |
0x96 |
0x04
|
0x29 |
0x6A |
0xD9
|
0x2A |
0xD8 |
0x77
|
0x2B |
0x8F |
0x0B
|
0x2C |
0x95 |
0xB5
|
0x2D |
0x5B |
0x1E
|
0x2E |
0x66 |
0x7D
|
0x2F |
0x69 |
0x1C
|
0x30 |
0xE2 |
0x64
|
0x31 |
0xCD |
0x9D
|
0x32 |
0x98 |
0xF4
|
0x33 |
0x6E |
0x75
|
0x34 |
0x64 |
0xD4
|
0x35 |
0x99 |
0xD6
|
0x36 |
0xAC |
0xCE
|
0x37 |
0x18 |
0x4F
|
0x38 |
0x5C |
0x4E
|
0x39 |
0x0D |
0x28
|
0x3A |
0xEB |
0x09
|
0x3B |
0xDD |
0x7A
|
0x3C |
0x86 |
0x40
|
0x3D |
0xE4 |
0x99
|
0x3E |
0x0C |
0xC5
|
0x3F |
0xC5 |
0x5F
|
0x40 |
0xAE |
0x9C
|
0x41 |
0xAF |
0x94
|
0x42 |
0xAB |
0x36
|
0x43 |
0x6C |
0x8B
|
0x44 |
0x7C |
0xBA
|
0x45 |
0xD4 |
0xF3
|
0x46 |
0x3D |
0x10
|
0x47 |
0x72 |
0xF6
|
0x48 |
0xF3 |
0x66
|
0x49 |
0xF5 |
0xB7
|
0x4A |
0xCE |
0x4A
|
0x4B |
0x07 |
0x25
|
0x4C |
0x46 |
0x4C
|
0x4D |
0x37 |
0xB8
|
0x4E |
0x4B |
0xDD
|
0x4F |
0x6B |
0x14
|
0x50 |
0x6D |
0x03
|
0x51 |
0x34 |
0x63
|
0x52 |
0x82 |
0xC1
|
0x53 |
0xCA |
0xCC
|
0x54 |
0xA0 |
0xF2
|
0x55 |
0xEF |
0xAD
|
0x56 |
0x6F |
0xAA
|
0x57 |
0xED |
0x54
|
0x58 |
0xA5 |
0x7E
|
0x59 |
0x2D |
0xD7
|
0x5A |
0xAD |
0x29
|
0x5B |
0x25 |
0x2D
|
0x5C |
0x50 |
0x3B
|
0x5D |
0xD3 |
0x12
|
0x5E |
0xC0 |
0x15
|
0x5F |
0x2A |
0xCB
|
0x60 |
0x74 |
0x43
|
0x61 |
0x1E |
0xF0
|
0x62 |
0x2E |
0x2E
|
0x63 |
0xFE |
0x1B
|
0x64 |
0x9B |
0xE2
|
0x65 |
0x53 |
0x9E
|
0x66 |
0x21 |
0x0C
|
0x67 |
0x06 |
0x22
|
0x68 |
0x60 |
0x45
|
0x69 |
0x61 |
0x70
|
0x6A |
0xA7 |
0x42
|
0x6B |
0xBF |
0xCF
|
0x6C |
0xFF |
0x92
|
0x6D |
0x65 |
0x90
|
0x6E |
0x31 |
0xDB
|
0x6F |
0xB5 |
0xB6
|
0x70 |
0xEC |
0xC2
|
0x71 |
0xE0 |
0x76
|
0x72 |
0x00 |
0x2B
|
0x73 |
0x1D |
0xCD
|
0x74 |
0x43 |
0x0F
|
0x75 |
0xDE |
0xC3
|
0x76 |
0xB7 |
0xD5
|
0x77 |
0x10 |
0x6C
|
0x78 |
0x12 |
0x88
|
0x79 |
0x33 |
0xFF
|
0x7A |
0xDB |
0x97
|
0x7B |
0xD2 |
0x87
|
0x7C |
0x7D |
0x21
|
0x7D |
0xA3 |
0xD8
|
0x7E |
0xF4 |
0x59
|
0x7F |
0x85 |
0xE6
|
0x80 |
0x8B |
0x24
|
0x81 |
0x8C |
0x79
|
0x82 |
0x4D |
0x4D
|
0x83 |
0xCB |
0x3E
|
0x84 |
0xE9 |
0xE4
|
0x85 |
0x20 |
0x20
|
0x86 |
0x8A |
0xEB
|
0x87 |
0xEE |
0xEE
|
0x88 |
0x0B |
0x8F
|
0x89 |
0xC3 |
0xAB
|
0x8A |
0x2F |
0x3A
|
0x8B |
0x93 |
0x39
|
0x8C |
0x27 |
0x80
|
0x8D |
0x4C |
0x06
|
0x8E |
0xF2 |
0x11
|
0x8F |
0x7B |
0xD2
|
0x90 |
0xBE |
0xEC
|
0x91 |
0xBA |
0xA6
|
0x92 |
0x08 |
0x30
|
0x93 |
0x81 |
0x31
|
0x94 |
0xCF |
0xBC
|
0x95 |
0x22 |
0x8C
|
0x96 |
0x97 |
0x8D
|
0x97 |
0xC6 |
0xC8
|
0x98 |
0x5A |
0xFA
|
0x99 |
0x56 |
0x35
|
0x9A |
0xD7 |
0x13
|
0x9B |
0xD0 |
0x3D
|
0x9C |
0x13 |
0xE3
|
0x9D |
0x51 |
0x01
|
0x9E |
0x3C |
0x86
|
0x9F |
0xE1 |
0x41
|
0xA0 |
0x8E |
0xED
|
0xA1 |
0x26 |
0xD3
|
0xA2 |
0xA1 |
0x23
|
0xA3 |
0x62 |
0x73
|
0xA4 |
0xDF |
0xF8
|
0xA5 |
0x40 |
0x58
|
0xA6 |
0x17 |
0x84
|
0xA7 |
0x89 |
0xBB
|
0xA8 |
0xEA |
0x71
|
0xA9 |
0xC9 |
0x8E
|
0xAA |
0xBD |
0xDE
|
0xAB |
0xFC |
0x61
|
0xAC |
0x4F |
0xAF
|
0xAD |
0xB2 |
0x6A
|
0xAE |
0x42 |
0x2F
|
0xAF |
0xE8 |
0x18
|
0xB0 |
0x0F |
0x3F
|
0xB1 |
0x29 |
0x5A
|
0xB2 |
0xD9 |
0x89
|
0xB3 |
0xB9 |
0xB9
|
0xB4 |
0xF0 |
0x65
|
0xB5 |
0x80 |
0x05
|
0xB6 |
0x24 |
0x74
|
0xB7 |
0x11 |
0x1F
|
0xB8 |
0x47 |
0xA1
|
0xB9 |
0x28 |
0x0D
|
0xBA |
0xF6 |
0xE7
|
0xBB |
0xDA |
0x32
|
0xBC |
0xD1 |
0x85
|
0xBD |
0x90 |
0xE9
|
0xBE |
0xCC |
0x67
|
0xBF |
0x14 |
0xF9
|
0xC0 |
0x02 |
0x91
|
0xC1 |
0xFD |
0xFD
|
0xC2 |
0x54 |
0xA9
|
0xC3 |
0x7E |
0xF1
|
0xC4 |
0xF8 |
0xC7
|
0xC5 |
0x0A |
0x9B
|
0xC6 |
0x84 |
0x5C
|
0xC7 |
0x9E |
0xA7
|
0xC8 |
0x16 |
0x0E
|
0xC9 |
0x1F |
0xB3
|
0xCA |
0xD5 |
0xCA
|
0xCB |
0xE7 |
0xC0
|
0xCC |
0xB3 |
0x17
|
0xCD |
0xD6 |
0x6F
|
0xCE |
0x41 |
0x98
|
0xCF |
0xBB |
0x6B
|
0xD0 |
0x45 |
0xFE
|
0xD1 |
0x4A |
0xE1
|
0xD2 |
0x78 |
0x72
|
0xD3 |
0xA2 |
0x26
|
0xD4 |
0x48 |
0x7C
|
0xD5 |
0xA9 |
0x4B
|
0xD6 |
0xB6 |
0xC6
|
0xD7 |
0x1C |
0xB4
|
0xD8 |
0x1B |
0x5D
|
0xD9 |
0xDC |
0xDA
|
0xDA |
0x7F |
0x9F
|
0xDB |
0x67 |
0xBE
|
0xDC |
0x9C |
0xA4
|
0xDD |
0x39 |
0x96
|
0xDE |
0x0E |
0x95
|
0xDF |
0xC4 |
0x8A
|
0xE0 |
0xB4 |
0x6D
|
0xE1 |
0x94 |
0xD1
|
0xE2 |
0xB0 |
0xB0
|
0xE3 |
0x58 |
0x5B
|
0xE4 |
0x2C |
0x33
|
0xE5 |
0x44 |
0x62
|
0xE6 |
0x32 |
0xDC
|
0xE7 |
0xB8 |
0x7B
|
0xE8 |
0xE6 |
0xE8
|
0xE9 |
0xC8 |
0x2C
|
0xEA |
0x57 |
0xA0
|
0xEB |
0x71 |
0x49
|
0xEC |
0xC2 |
0xF5
|
0xED |
0x3A |
0x38
|
0xEE |
0x88 |
0xD0
|
0xEF |
0xB1 |
0xDF
|
0xF0 |
0x70 |
0xE0
|
0xF1 |
0xA4 |
0x19
|
0xF2 |
0x49 |
0xA8
|
0xF3 |
0x30 |
0x48
|
0xF4 |
0xF1 |
0xC4
|
0xF5 |
0x09 |
0x53
|
0xF6 |
0xF7 |
0x83
|
0xF7 |
0x83 |
0x00
|
0xF8 |
0xE3 |
0x3C
|
0xF9 |
0x55 |
0xEF
|
0xFA |
0x9F |
0xFB
|
0xFB |
0xFA |
0xBF
|
0xFC |
0x59 |
0xFC
|
0xFD |
0x23 |
0xA3
|
0xFE |
0xE5 |
0x02
|
0xFF |
0x9D |
0x0A
|
Commands
r |
Change the state using the transition 0 and move right. |
R |
Change the state using the transition 1 and move right. |
l |
Change the state using the transition 0 and move left. |
L |
Change the state using the transition 1 and move left. |
F |
Repeat the next instruction the number of this byte times. |
c |
Change the state using the transition 0 without moving. |
C |
Change the state using the transition 1 without moving. |
O |
Output the cell state. |
Examples
Hello, World!
The following program outputs the ASCII character codes of the text “Hello, World!”, which constitutes the integer sequence 72 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33:
cccCcCcccOccCcCCCCCCcccOcCCCCCCcCOOCccCCOCcCccCccOCccCCCcCcCcCcCcOCCccCCcCOcCCcccCCcOCcCCcCCCcOcCccCcccCCOCCCOccccCCO
See also
External resources
- Common Lisp implementation of the Array Changer programming language.