We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Fragile Perception of Reality

From Esolang
Jump to navigation Jump to search

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. 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 table
Opcode Description
97 Do nothing.
23 Enqueue A to the active queue.
89 Dequeue n the active queue and switch to nth queue if the active queue is not empty, else, switch to the 0th 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, if the I/O bit is 0 and the active queue is not empty, dequeue a value from the active queue and output it as an ASCII character, else, do nothing.
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

External resources