Studying
wikis on esoteric languages, I came across an interesting
Piet programming language. A distinctive feature of which is a graphical representation of the program. For example, this program displays “Hello World!”

And it seemed to me that this program is similar to QR-Code.

Only Piet uses color coding. A QR Code uses a combination of the location of points.
“Yes, this is a finished program”, I thought. We divide the field into squares, so that 4 dots fit into each square. This gives us 16 combinations. A huge amount compared to the same Brainfuck!
Since there are many combinations, you can not restrain yourself in choosing the commands of the PL. Next, we look at the
PATH , and we see that it is the best way to form the basis of a new language. Because it consists of 15 teams.
It remains only to encode the commands of the
PATH language with combinations of points and slightly change the rules of the interpreter.
')
Dictionary of the language.
The equivalent of the
PATH language is given in brackets.
(#) - stop program execution.
(+) - increase by one the current memory cell.
(-) - reduce the current memory location by one.
(}) - go to the next memory location.
({) - go to the previous memory location.
(,) - enter a character from the standard input in the current memory cell.
(.) - print a character from the current memory location.
(/) - change the direction of movement of the pointer depending on the direction of movement:
- right - start to go up
- down - we start to go left
- to the left - we start to go down
- up - start to go right
(\) - change the direction of movement of the pointer depending on the direction of movement:
- right - start to go down
- down - we start to go left
- to the left - we start going up
- up - start to go left
(^) - if the current cell is zero, we start going up.
(<) - if the current cell is zero, we start going to the left.
(>) - if the current cell is zero, we start going to the right.
(v) - if the current cell is zero, we start going down.
(!) - jump over the cell.


- a team that does nothing but fills the empty space well.
The program is placed in the QR-code template, which is shown in the figure below.

Here the green square indicates the field where you can safely enter the program. The size of the field, in principle, is not limited, but it is better to use the standard dimensions adopted in the standard for the QR code.
The program starts running from the place indicated by the red square. The remaining space in the program field can be filled randomly to make it more like a QR Code.
When the program is started, the interpreter reads the program code starting from the upper left corner and moves from left to right, executing commands. And it will move until it encounters a stop command.
The name of the language is also composed of parts of the original technologies -
QR-PATH .
Ps. At the moment, this is the concept of the language. Interpreter does not exist.
Pps. As a basis, you could take
Data-Matrix . But QR codes are more recognizable, so a program on QR-PATH will produce a more unexpected effect.
Update.In the comments they asked to write a program that displays the same thing as a QR-PATH and as a QR-code.
The solution is presented
here.Here I bring only the final result. Unfortunately, the implementation of the program lortit data in the source code.
Update2.The article was mined by a decent amount of people who read it. And there are no critical comments in the comments. I now wonder what did not like the minus? Design, content?