За основу я взял язык Brainfuck он настолько мал, что можно немного расширив получить практически новый и достаточно функциональный язык программирования. И при этом не потерять изюминку исходного языка – мой язык будет все так же терзать мозг программиста, как и его родитель!
Итак, Brainfuck. Вкратце, идея такая, есть N регистров/ячеек. У программиста есть доступ к ним всем но перемещения по ним делаются явным образом. Т.е. из ячейки 2 нельзя перейти к ячейке 7 сразу, нужно последовательно.
“Ключевые слова” языка:
- > – перейти на ячейку вправо.
- < – перейти на ячейку влево.
- + – увеличить значение ячейки на единицу.
- — – уменьшить значение ячейки на единицу.
- , – прочесть значение в ячейку со стандартного устройства ввода.
- . – напечатать значение ячейки стандартным устройством вывода.
- [ – начать цикл while если значение текущей ячейки не равно 0 и перейти к следующей ячейке.
- ] – конец блока while. Продолжить цикл, если значение “условной” ячейки не равно 0 ( “условная ячейка” — ячейка на которой начался цикл ).