Draft:Fragile Perception of Reality
- This draft has been finalized and moved to the Esolang Wiki. It can be found here. Note that there may be differences between this draft page and the finalized version.
Fragile Perception of Reality is an esoteric programming language made by User:Dragoneater67 in 2026. It was designed for obfuscating programs.
Overview
The program is a sequence of bytes. There are 256 unbounded queues of unsigned 8-bit integers initially empty, the I/O bit initialized to 0 and unsigned 8-bit integer register A initialized to 67. Only 1 queue can be active at a time, at the start of execution the active queue is 0. Dequeueing from an empty queue returns 0. Bytes are read left-to-right and each byte is XORred with A and interpreted as an opcode. After each instruction execution, A is incremented by 233. The program is executed in an implicit infinite loop.
| Opcode | Description |
|---|---|
| 97 | Do nothing. |
| 23 | Enqueue A to the active queue. |
| 89 | Dequeue n, switch to nth queue. |
| 11 | Switch to Ath queue. |
| 7 | Toggle the I/O bit. |
| 211 | If the I/O bit is 1, input a character and enqueue its ASCII code to the active queue, else enqueue a value from the active queue and output it as an ASCII character. |
| 151 | Halt. |
Computational class
Fragile Perception of Reality is Turing complete since it can simulate a Cyclic tag system. Each 1 is encoded as (bytes are represented in pairs of hexadecimal digits since the code contains unprintable characters):
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 17 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
And each 0 is encoded as:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 16 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
The program starts with enqueueing the encoded initial datastring, followed by this:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 b 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
Each production rule starts with:
1a 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
Followed by enqueueing encoded bits, then ends with:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 b 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
The program ends with:
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 a 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 fe e9 10 3b
Examples
XKCD Random Number
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 23 ce 91
Cat program
22 4d 74 9f 86 b1 d8 c3 ea 15 3c 27 4e 79 60 8b b2 dd c4 ef 16 1 28 53 7a 65 8c b7 de c9 f0 1b 2 2d 54 7f 66 91 b8 a3 ca f5 1c 7 2e 59 40 6b 92 bd a4 cf f6 e1 8 33 5a 45 6c 97 be a9 d0 fb e2 d 34 5f 46 71 98 83 aa d5 fc e7 e 39 20 4b 72 9d 84 af d6 c1 e8 13 3a 25 4c 77 9e 89 b0 db c2 ed 14 3f 26 51 78 63 8a b5 dc c7 ee 19 0 2b 52 7d 64 8f b6 a1 c8 f3 1a 5 2c 57 7e 69 90 bb a2 cd f4 1f 6 31 58 43 6a 95 bc a7 ce f9 e0 b 32 5d 44 6f 96 81 a8 d3 fa e5 c 37 5e 49 70 9b 82 ad d4 ff e6 11 38 23 4a 75 9c 87 ae d9 c0 eb 12 3d 24 4f 76 61 88 b3 da c5 ec 17 3e 29 50 7b 62 8d b4 df c6 f1 18 3 2a 55 7c 67 8e b9 a0 cb f2 1d 4 2f 56 41 68 93 ba a5 cc f7 1e 9 30 5b 42 6d 94 bf a6 d1 f8 e3 a 35 5c 47 6e 99 80 ab d2 fd e4 f 36 21 48 73 9a 85 ac d7 98 5b 76 89