summaryrefslogtreecommitdiffhomepage
path: root/ru-ru/brainfuck-ru.html.markdown
diff options
context:
space:
mode:
authorAdam <adam@adambard.com>2016-02-12 11:42:25 -0800
committerAdam <adam@adambard.com>2016-02-12 11:42:25 -0800
commit5aa692f5f3bbfa7b79224748dcfd8ca5fba7a8bc (patch)
tree96efb7799650065adc79769d03c0b7616dcd7276 /ru-ru/brainfuck-ru.html.markdown
parentb3c92c47b79f95be68f15d9d3b45161ae8b5e419 (diff)
brainfuck->bf
Diffstat (limited to 'ru-ru/brainfuck-ru.html.markdown')
-rw-r--r--ru-ru/brainfuck-ru.html.markdown85
1 files changed, 0 insertions, 85 deletions
diff --git a/ru-ru/brainfuck-ru.html.markdown b/ru-ru/brainfuck-ru.html.markdown
deleted file mode 100644
index fcee185f..00000000
--- a/ru-ru/brainfuck-ru.html.markdown
+++ /dev/null
@@ -1,85 +0,0 @@
----
-language: brainfuck
-contributors:
- - ["Prajit Ramachandran", "http://prajitr.github.io/"]
- - ["Mathias Bynens", "http://mathiasbynens.be/"]
-translators:
- - ["Dmitry Bessonov", "https://github.com/TheDmitry"]
-lang: ru-ru
----
-
-Brainfuck (пишется маленькими буквами, кроме начала предложения) - это очень
-маленький Тьюринг-полный язык программирования лишь с 8 командами.
-
-Вы можете испытать brainfuck в вашем браузере с помощью [brainfuck-визуализатора](http://fatiherikli.github.io/brainfuck-visualizer/).
-
-```
-Любой символ, кроме "><+-.,[]", игнорируется, за исключением кавычек.
-
-Brainfuck представлен массивом из 30000 ячеек, инициализированных нулями,
-и указателем с позицией в текущей ячейке.
-
-Всего восемь команд:
-+ : Увеличивает значение на единицу в текущей ячейке.
-- : Уменьшает значение на единицу в текущей ячейке.
-> : Смещает указатель данных на следующую ячейку (ячейку справа).
-< : Смещает указатель данных на предыдущую ячейку (ячейку слева).
-. : Печатает ASCII символ из текущей ячейки (напр. 65 = 'A').
-, : Записывает один входной символ в текущую ячейку.
-[ : Если значение в текущей ячейке равно нулю, то пропустить все команды
- до соответствующей ] . В противном случае, перейти к следующей инструкции.
-] : Если значение в текущей ячейке равно нулю, то перейти к следующей инструкции.
- В противном случае, вернуться назад к соответствующей [ .
-
-[ и ] образуют цикл while. Естественно, они должны быть сбалансированы.
-
-Давайте рассмотрим некоторые базовые brainfuck-программы.
-
-++++++ [ > ++++++++++ < - ] > +++++ .
-
-Эта программа выводит букву 'A'. Сначала программа увеличивает значение
-ячейки №1 до 6. Ячейка №1 будет использоваться циклом. Затем программа входит
-в цикл ([) и переходит к ячейке №2. Ячейка №2 увеличивается до 10, переходим
-назад к ячейке №1 и уменьшаем ячейку №1. Этот цикл проходит 6 раз (ячейка №1
-уменьшается до нуля, и с этого места пропускает инструкции до соответствующей ]
-и идет дальше).
-
-В этот момент мы находимся в ячейке №1, которая имеет значение 0, значение
-ячейки №2 пока 60. Мы переходим на ячейку №2, увеличиваем 5 раз, до значения 65,
-и затем выводим значение ячейки №2. Код 65 является символом 'A' в кодировке ASCII,
-так что 'A' выводится на терминал.
-
-
-, [ > + < - ] > .
-
-Данная программа считывает символ из пользовательского ввода и копирует символ
-в ячейку №1. Затем мы начинаем цикл. Переходим к ячейке №2, увеличиваем значение
-ячейки №2, идем назад к ячейке №1 и уменьшаем значение ячейки №1. Это продолжается
-до тех пор, пока ячейка №1 не равна 0, а ячейка №2 сохраняет старое значение
-ячейки №1. Мы завершаем цикл на ячейке №1, поэтому переходим в ячейку №2 и
-затем выводим символ ASCII.
-
-Также имейте в виду, что пробелы здесь исключительно для читабельности. Вы можете
-легко написать и так:
-
-,[>+<-]>.
-
-Попытайтесь разгадать, что следующая программа делает:
-
-,>,< [ > [ >+ >+ << -] >> [- << + >>] <<< -] >>
-
-Программа принимает два числа на вход и умножает их.
-
-Суть в том, что программа сначала читает два ввода. Затем начинается внешний цикл,
-сохраняя ячейку №1. Затем программа перемещается в ячейку №2, и начинается
-внутренний цикл с сохранением ячейки №2, увеличивая ячейку №3. Однако появляется
-проблема: В конце внутреннего цикла ячейка №2 равна нулю. В этом случае,
-внутренний цикл не будет работать уже в следующий раз. Чтобы решить эту проблему,
-мы также увеличим ячейку №4, а затем копируем ячейку №4 в ячейку №2.
-Итак, ячейка №3 - результат.
-```
-
-Это и есть brainfuck. Не так уж сложно, правда? Забавы ради, вы можете написать
-свою собственную brainfuck-программу или интерпретатор на другом языке.
-Интерпретатор достаточно легко реализовать, но если вы мазохист, попробуйте
-написать brainfuck-интерпретатор... на языке brainfuck.