# 8 команд

## Передісторія
### Ґьодель
### Шьонфінкель
### Чьорч та Тьюринг
### Дємон Тьюринга
### Простий та нонстоп дємон
### Убердємон Тьюринга
### Чи може убєрдемон відрізнити дємона від нонстоп дємона
### Убердємон BRAINFUCK
Brainfuck --- це спосіб та мова програмування, яка є еквівалентною убердємону Тьюринга, але має тільки 8 команд.
Brainfuck оперує на стрічці пам'яті. Стрічка складається з однобайтних чисел від 0 до 255. При старті програми всі байти в стрічці заповнені нулями.
В кожен момент часу убердємон може працювати з однією коміркою пам'яті. Ця комірка називається "поточною", а її номер по порядку називається поточним індексом.
Програма для дємона записана окремо. Дємон виконує команди з цієї програми одна за одною.
Команди для дємона:
- `+` --- збільшити значення на 1 в поточній комірці. Якщо було число 255, то відбувається переповнення і число стає 0
- `-` --- те саме, але зменшити на 1. Якщо було 0, то стає 255
- `>` --- перемістити дємона на 1 комірку вправо. Вважати що пам'ять дємона нескінченна вправо.
- `<` --- те сам, але вліво. Якщо дійшли до початку пам'яті, то поведінка не визначена.
- `,` --- зчитати символ з клавіатури і записати його ASCII код в поточну комірку
- `.` --- вивести число з поточної комірки як ASCII символ
- `[` --- якщо число в поточній комірці не 0, то виконувати наступну команду ніби нічого й не сталось. Якщо 0, то пропустити всі команди в блоці `[ ... ]`, враховуючи вкладеність квадратних дужок
- `]` --- якщо число в поточній комірці не 0, то стрибнути назад в програмі до відповідного `[`, враховуючи вкладеність. Якщо 0, то просто проігнорувати
Все.
###