<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%3ABrainfuck</id>
	<title>Обсуждение:Brainfuck - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%3ABrainfuck"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:Brainfuck&amp;action=history"/>
	<updated>2026-07-17T21:33:25Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:Brainfuck&amp;diff=43134&amp;oldid=prev</id>
		<title>imported&gt;Yotic: /* Интерпретатор на C# */</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:Brainfuck&amp;diff=43134&amp;oldid=prev"/>
		<updated>2022-05-16T21:43:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Интерпретатор на C#&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Сообщение ЗЛВ | даты=30 июля — 1 августа 2005 года | текст=Язык программирования &amp;#039;&amp;#039;&amp;#039;[[Brainfuck]]&amp;#039;&amp;#039;&amp;#039; содержит всего восемь инструкций | архив=2005-07#30 июля — 1 августа}}&lt;br /&gt;
{{Статья проекта Информационные технологии|уровень=|важность=}}&lt;br /&gt;
&lt;br /&gt;
==интерпрититор+исчерпывающая документация по языку==&lt;br /&gt;
http://ideone.com/msTeU&lt;br /&gt;
интерпрититор+исчерпывающая документация по языку&lt;br /&gt;
--[[Special:Contributions/213.88.39.97|213.88.39.97]] 10:34, 21 января 2012 (UTC)&lt;br /&gt;
&lt;br /&gt;
== О переводе ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для [[User:Ramir|Ramir]]:&amp;#039;&amp;#039;&amp;#039; Предлагаю не переводить слово &amp;#039;&amp;#039;fuck&amp;#039;&amp;#039; так буквально, тем более, что Ваш перевод и не вполне верен. Кроме слова &amp;#039;&amp;#039;fuck&amp;#039;&amp;#039;, в статье о языке Brainfuck и в самом языке нет ничего оскорбительного. Это язык представляет немалый теоретический интерес; Brainfuck - не какое-то девиантное явление, он включён во многие учебники по программированию в качестве интересного объекта для всевозможных упражнений и традиционно является одним из языков, на которых разрешается писать участникам различных состязаний программистов. К тому же, указаний на оскорбительность нет в статьях о Brainfuck&amp;#039;е на других языках Википедии. Наилучший, на мой взгляд, вариант - вообще никак не разъяснять этимологию слова (как и было изначально). --[[Участник:Evgop|evgop]] 12:17, 31 июля 2005 (UTC)&lt;br /&gt;
: Но перевод названия - важное в этом случае сведение, даёт понять отношение авторов языка к нему. Перевод дать &amp;#039;&amp;#039;&amp;#039;нужно&amp;#039;&amp;#039;&amp;#039;. Другое дело - что можно перевести пуританско-ханженским &amp;quot;как бы научным&amp;quot; способом, но это долго. Мой перевод верен вполне: язык назван простым составлением  (&amp;lt;s&amp;gt;[[:en:portmaneau]]&amp;lt;/s&amp;gt; [[:en:portmanteau]])  двух слов, и &amp;quot;мозгоёбка&amp;quot; здесь - самый подходящий перевод. Если же Вы просто хотите, чтобы на странице не было обидной лексики, то я возражу вот так: все образованные русские знают английский, ну и слово &amp;quot;fuck&amp;quot; тоже. Оно ничуть не менее оскорбительно слова &amp;quot;ёб&amp;quot;, и поэтому либо Вы тут закрасите название звёздочками, либо мы ничего не теряем применяя мат в статье. [[Участник:Ramir|Ramir]]&lt;br /&gt;
:: Во-первых, ещё раз отсылаю Вас к английской Википедии, где никаких звёздочек не наблюдается, равно как и предупреждения об оскорбительной лексике. Дело в том, что слово &amp;lt;i&amp;gt;fuck&amp;lt;/i&amp;gt;, хотя и является ругательным, существенно мягче русского мата. Я вовсе не ханжа-пуританин, и хочу сообщить, что &amp;lt;i&amp;gt;fuck&amp;lt;/i&amp;gt; можно перевести так же словами &amp;lt;i&amp;gt;хуй&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;чёрт&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;жопа&amp;lt;/i&amp;gt; и так далее. Так что, давайте заполним википедию всевозможными вариациями на эту тему? Вот именно, что слово &amp;lt;i&amp;gt;fuck&amp;lt;/i&amp;gt; в переводе не нуждается. Ваш же перевод сделал из статьи про программирование (не знаю, читали ли Вы её дальше первой строчки), fuck knows what. Кстати, в большинстве википедий на других языках термин Brainfuck никак не переводится. И не транскрибируется тоже. --[[Участник:Evgop|evgop]] 23:48, 31 июля 2005 (UTC)&lt;br /&gt;
: 1. Вы не правы, самый умный — я. 2. «...что я сделал из статьи про программирование» за довод вообще не принимается. 3. Как делают на других Википедиях — нам не устав. Есть другие критерии, более подходящиие. 3. «в большинстве» — тем более показывает несостоятельность Вашего аргумента. Ну ладно, см. моё последнее слово ниже. [[Участник:Ramir|Ramir]] 09:06, 1 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
И ещё для [[User:Ramir|Ramir]]: я не понял, по какому принципу Вы заменили часть &amp;#039;&amp;#039;Brainfuck&amp;amp;prime;&amp;#039;&amp;#039;ов на &amp;#039;&amp;#039;Брэйнфак&amp;amp;prime;&amp;#039;&amp;#039;и, а часть - оставили. --[[Участник:Evgop|evgop]] 12:24, 31 июля 2005 (UTC)&lt;br /&gt;
:Убрал «дословный» перевод, название языка править не стал, не знаю точно какие насчёт этого договорённости есть. [[Участник:Лий|Лий]] 13:26, 31 июля 2005 (UTC)&lt;br /&gt;
:: Я сделал неправильно: название языка следует (покуда произношение однозначно) заменить на транскрипцию везде, кроме введения. [[Участник:Ramir|Ramir]]&lt;br /&gt;
::: Однозначно, не однозначно... Уважаемый [[Участник:Ramir|Ramir]], а Вы современные книжки по программированию читаете? Давным давно называния языков пишутся по-английски: Java, Delphi, Visual Basic и т.д. Была такая тенденция в 60/70-х годах переводить всё на русский. У меня советская книжка сохранилась, где переводчики даже операторы по-русски записали. Но сейчас такое выглядит старомодно и просто неумно. Это как в медицинской книжке транскрибировать латынь.  --[[Участник:Evgop|evgop]] 23:48, 31 июля 2005 (UTC)&lt;br /&gt;
:::: Я почти что не читаю книг о программировании, особенно современных на русском языке. Но мой довод не в том, как пишут нынешние переводчики, а в том, как удобно русскому читателю. Однако... похоже, среди википедийцев столько очень современных программистов, что я не смогу всем восперечить. Пишите хоть на латыни, хоть на китайском. Брэйнфак-то останется мозгоёбкой. (отбой) [[Участник:Ramir|Ramir]] 09:06, 1 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
гг, пишите &amp;#039;взрыв мозга&amp;#039; &amp;gt;_&amp;lt; --[[Special:Contributions/81.200.20.167|81.200.20.167]] 14:15, 24 июня 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::: Уважаемый Ramir, согласно правилам русского языка названия и имена НЕ переводятся. Если вы хотите записать название или имя, вы должны написать его либо на оригинальном языке, либо в транслитированом варианте, без изменения звучания и произношения. &amp;quot;Brainfuck&amp;quot;, он хоть на русском, хот ьна китайском будет писаться &amp;quot;Brainfuck&amp;quot;(в русском языке возможен вариант &amp;quot;Брэйнфак&amp;quot;). Господа, прежде, чем разводить дискуссию о правильном написании в русском разделе википедии, удосужитесь заглянуть в правила русского языка. Спасибо. --[[User:Hakujin|Hakujin]] 06:55, 24 марта 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== «Генетическое программирование» ==&lt;br /&gt;
Вопрос к [[user:62.85.72.62|62.85.72.62]] по поводу &amp;#039;&amp;#039;Brainfuck - идеальное средство для решения задач генетического программирования&amp;#039;&amp;#039;. Поясните, пожалуйста! --[[Участник:Evgop|evgop]] 17:28, 10 августа 2005 (UTC)&lt;br /&gt;
:В принципе, довольно логично - синтаксис очень простой, правила &amp;quot;скрещивания&amp;quot; алгоритмов сформулировать легко, так что в экспериментах по &amp;quot;выращиванию&amp;quot; алгоритмов BF вполне может занять свою нишу.  Но насчёт идеальности, на мой взгляд, товарищ несколько переборщил. ==[[Участник:Maxim Razin|Maxim Razin]][[Обсуждение участника:Maxim Razin|&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;(talk)&amp;lt;/span&amp;gt;]] 17:48, 10 августа 2005 (UTC)&lt;br /&gt;
:: По-моему, искусственный минимализм BF не позволяет программировать на нём что-либо реально полезное. Тем более, &amp;quot;идеально&amp;quot;. А вообще, идея интересная, я как-то не задумывался. Но - только в качестве учебной задачи.&lt;br /&gt;
&lt;br /&gt;
::: Замени &amp;quot;идеально&amp;quot; на &amp;quot;хорошо&amp;quot; :) ==[[Участник:Maxim Razin|Maxim Razin]][[Обсуждение участника:Maxim Razin|&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;(talk)&amp;lt;/span&amp;gt;]] 19:18, 10 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Кстати, ты немного изменил текст, фактически заменил машину Тьюринга на полноту по Тьюрингу. А ведь несколько ниже про полноту по Тьюрингу уже есть. К тому же, машина, которой управляет BF -  действительно машина Тьюринга :) --[[Участник:Evgop|evgop]] 18:38, 10 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Принимаю.  BF это МТ с дополнительными ограничениями. ==[[Участник:Maxim Razin|Maxim Razin]][[Обсуждение участника:Maxim Razin|&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;(talk)&amp;lt;/span&amp;gt;]] 19:18, 10 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: А с какими ограничениями? В абстрактном BF бесконечная лента и размер ячейки никак не декларируется. По-моему, МТ в чистом виде :) --[[Участник:Evgop|evgop]] 19:31, 10 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: У BF, по сравнению с МТ, сильно ограниченная система команд, и априори неясно, что они эквивалентны. ==[[Участник:Maxim Razin|Maxim Razin]][[Обсуждение участника:Maxim Razin|&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;(talk)&amp;lt;/span&amp;gt;]] 20:08, 10 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::: Вообще говоря, наоборот :) В МТ нет таких сложных операций, как «+» и «-», тем более «[» и «]», не говоря уже о «.» и «,». С другой стороны, да, МТ - это не только лента, движущая головка и конечный алфавит. Ещё есть множество состояний, текущее состояние и таблица переходов. Но говоря, что BF - язык управления MT, я имел в виду, что &amp;quot;аппаратная часть&amp;quot; BF совпадает с &amp;quot;аппаратной частью&amp;quot; MT. Пожалуй, я сделал это не совсем корректно. --[[Участник:Evgop|evgop]] 21:16, 10 августа 2005 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Интерпретация [] ==&lt;br /&gt;
&lt;br /&gt;
Моя правка делает определения [ и ] симметричными и позволяет уменьшить число проверок условия.&lt;br /&gt;
Можно еще определить ] как безусловный переход к [, это уменьшит размер скомп. программы, но добавит лишние переходы, и этим снизит производительность.&lt;br /&gt;
{{unsigned|80.82.187.33|09:29, 2 июня 2007}}&lt;br /&gt;
&lt;br /&gt;
== «все существующие BF-машины являются эмуляторами» ==&lt;br /&gt;
&lt;br /&gt;
#Что это значит?&lt;br /&gt;
#Как насчёт интерпретируемых языков типа [[Perl]] и [[Python]]?&lt;br /&gt;
##А как насчёт [[Forth (язык программирования)|Forth]]?&lt;br /&gt;
#И компиляторы есть.&lt;br /&gt;
##Даже про hardware интерпретаторы пишут.&lt;br /&gt;
—[[Участник:AVRS|AVRS]] 11:03, 12 августа 2007 (UTC)&lt;br /&gt;
: Прошло 2 месяца с момента постановки &amp;lt;nowiki&amp;gt;{{fact}}&amp;lt;/nowiki&amp;gt;. Удалил. --[[User:AVRS|AVRS]] 22:19, 21 ноября 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Оператор условия ==&lt;br /&gt;
&lt;br /&gt;
На мой взгляд, можно чуууть улучшить&lt;br /&gt;
&lt;br /&gt;
   @(t+1)[-]+@(-t-1) устанавливаем флаг 1 для случая else&lt;br /&gt;
   [&lt;br /&gt;
    здесь действия ветки true&lt;br /&gt;
    @(t+1)[-] устанавливаем флаг 0 для случая else, выход из цикла&lt;br /&gt;
    ]&lt;br /&gt;
   @(t+1)&lt;br /&gt;
   [&lt;br /&gt;
    здесь действия ветки false&lt;br /&gt;
    [-] выход из цикла&lt;br /&gt;
    ]&lt;br /&gt;
   @(-t-1)&lt;br /&gt;
&lt;br /&gt;
Не согласен с этим. После цикла ветки if в данной версии мы можем оказаться как в @0 ячейке (если текущая ячейка - ноль), так и @(t+1) (если мы прошли по циклу), а это делает дальнейший алгоритм бессмысленным, т.к. переход из @(t+1) на @(t+1) приведёт к неизвестному результату (зависит от t).&lt;br /&gt;
[[User:Worldalexey|Worldalexey]] 20:49, 18 января 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== ++++++++++[&amp;gt;+++++++&amp;gt;++++++++++&amp;gt;+++&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;++.&amp;gt;+.+++++++..+++.&amp;gt;++.&amp;lt;&amp;lt;+++++++++++++++.&amp;gt;.+++.------.--------.&amp;gt;+.&amp;gt;. - так верней ;) ==&lt;br /&gt;
&lt;br /&gt;
Уважаемые, у вас в исходник «Hello world!» закралась ошибка. Первый оператор &amp;#039;&amp;lt;&amp;#039; (17-й символ) явно лишний. [[Special:Contributions/217.10.38.243|217.10.38.243]] 21:28, 23 ноября 2008 (UTC)speller&lt;br /&gt;
&lt;br /&gt;
== Программы на brainfuck ==&lt;br /&gt;
&lt;br /&gt;
Я считаю что создать на brainfuck генератор случайных чисел(без вмешательства юзера) невозможно.&lt;br /&gt;
Кто-нибудь знает как на нём написать калькулятор? [[Special:Contributions/95.58.7.74|95.58.7.74]] 15:13, 18 марта 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Пожалйста, простейший калькулятор. Требует доработки и оптимизации :) состряпано  на коленке.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 						*******************								&lt;br /&gt;
						*       Ввод      *&lt;br /&gt;
						*******************&lt;br /&gt;
&lt;br /&gt;
,														Читаем первое число&lt;br /&gt;
&amp;gt;														сдвигаемся&lt;br /&gt;
,														читаем второе число&lt;br /&gt;
&amp;lt;&lt;br /&gt;
 						*******************								&lt;br /&gt;
						*   Копирование   *&lt;br /&gt;
						*******************&lt;br /&gt;
						    &lt;br /&gt;
[&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;						первое число&lt;br /&gt;
[&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;						второе число&lt;br /&gt;
&lt;br /&gt;
[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;		первое число&lt;br /&gt;
[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;	второе число&lt;br /&gt;
&lt;br /&gt;
[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;					первое число&lt;br /&gt;
[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;				второе число&lt;br /&gt;
&lt;br /&gt;
														теперь у нас есть&lt;br /&gt;
														четыре пары чисел&lt;br /&gt;
														вида хх0хх0хх0хх0&lt;br /&gt;
														указатель стоит в начале&lt;br /&gt;
&lt;br /&gt;
 						*******************								&lt;br /&gt;
						*    Сложение     *&lt;br /&gt;
						*******************&lt;br /&gt;
&lt;br /&gt;
++++++++++++++++++++++++++++++++++++++++++++++++.&lt;br /&gt;
------------------------------------------------		печатаем первое число&lt;br /&gt;
&amp;gt;&amp;gt;+++++++++++++++++++++++++++++++++++++++++++.			печатаем символ плюс&lt;br /&gt;
&amp;lt;++++++++++++++++++++++++++++++++++++++++++++++++.&lt;br /&gt;
------------------------------------------------		печатаем второе число&lt;br /&gt;
&amp;gt;++++++++++++++++++.[-]									печатаем знак равно&lt;br /&gt;
														освобождаем ячейку&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;br /&gt;
[&amp;lt;+&amp;gt;-]													складываем&lt;br /&gt;
&amp;lt;++++++++++++++++++++++++++++++++++++++++++++++++.		печатаем результат&lt;br /&gt;
[-]+++++++++++++.										делаем возврат каретки&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;														переходим к началу&lt;br /&gt;
														новой пары символов&lt;br /&gt;
&lt;br /&gt;
 						*******************								&lt;br /&gt;
						*    Вычитание    *&lt;br /&gt;
						*******************&lt;br /&gt;
						&lt;br /&gt;
++++++++++++++++++++++++++++++++++++++++++++++++.		печатаем первое число&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;+++++++++++++++++++++++++++++++++++++++++++++.		печатаем знак минус&lt;br /&gt;
&amp;lt;++++++++++++++++++++++++++++++++++++++++++++++++.&lt;br /&gt;
 ------------------------------------------------		печатаем второе число&lt;br /&gt;
&amp;gt;++++++++++++++++.[-]									печатаем знак равно&lt;br /&gt;
														освобождаем ячейку&lt;br /&gt;
&amp;lt;[&amp;lt;-&amp;gt;-]&lt;br /&gt;
&amp;lt;++++++++++++++++++++++++++++++++++++++++++++++++.&lt;br /&gt;
[-]+++++++++++++.										возврат каретки														&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;														к первому символу&lt;br /&gt;
&lt;br /&gt;
 						*******************								&lt;br /&gt;
						*    Умножение    *&lt;br /&gt;
						*******************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
++++++++++++++++++++++++++++++++++++++++++++++++.		печатаем первое число&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;++++++++++++++++++++++++++++++++++++++++++.			печатаем знак умножения&lt;br /&gt;
&amp;lt;++++++++++++++++++++++++++++++++++++++++++++++++.&lt;br /&gt;
 ------------------------------------------------		печатаем второе число&lt;br /&gt;
&amp;gt;+++++++++++++++++++.[-]								печатаем знак равно&lt;br /&gt;
														освобождаем ячейку &lt;br /&gt;
&amp;lt;&amp;lt;&lt;br /&gt;
[&amp;gt;&lt;br /&gt;
[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;								сисходники взяли&lt;br /&gt;
&amp;lt;-]														а понимать кто будет&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;														я то понял а теперь&lt;br /&gt;
++++++++++++++++++++++++++++++++++++++++++++++++.		ваша очередь&lt;br /&gt;
&amp;gt;[-]+++++++++++++.[-]&lt;br /&gt;
&lt;br /&gt;
 						*******************								&lt;br /&gt;
						*     Деление     *&lt;br /&gt;
						*******************&lt;br /&gt;
&amp;gt;														ставим указатель на &lt;br /&gt;
														первый символ&lt;br /&gt;
														&lt;br /&gt;
++++++++++++++++++++++++++++++++++++++++++++++++.		печатаем первое число&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;+++++++++++++++++++++++++++++++++++++++++++++++.		печатаем знак умножения&lt;br /&gt;
&amp;lt;++++++++++++++++++++++++++++++++++++++++++++++++.&lt;br /&gt;
 ------------------------------------------------		печатаем второе число&lt;br /&gt;
&amp;gt;++++++++++++++.[-]										печатаем знак равно&lt;br /&gt;
														освобождаем ячейку &lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;														встаем в обратный зад												&lt;br /&gt;
&lt;br /&gt;
  [&lt;br /&gt;
  &amp;gt;[-&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;]											копируем&lt;br /&gt;
  &amp;gt;[-&amp;lt;&amp;lt;-[&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[&amp;lt;[&amp;gt;&amp;gt;&amp;gt;-&amp;lt;&amp;lt;&amp;lt;[-]]&amp;gt;&amp;gt;]&amp;lt;&amp;lt;] 						вычитаем и если ноль то &lt;br /&gt;
	 													выходим&lt;br /&gt;
  &amp;gt;&amp;gt;&amp;gt;+ 													счетчик&lt;br /&gt;
  &amp;lt;&amp;lt;[-&amp;lt;&amp;lt;+&amp;gt;&amp;gt;] 											копируем&lt;br /&gt;
  &amp;lt;&amp;lt;&amp;lt;													возвращаемся к делимому&lt;br /&gt;
  ]														конец деления&lt;br /&gt;
  &amp;gt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;[-&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;] 								привет тому кто дочитал&lt;br /&gt;
  &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;  												возврат к результату	&lt;br /&gt;
														&lt;br /&gt;
														&lt;br /&gt;
++++++++++++++++++++++++++++++++++++++++++++++++.		Autor&lt;br /&gt;
&amp;gt;[-]+++++++++++++..+++++++++++++++++++++++++++++		ASU 05 1&lt;br /&gt;
+++++++++++++++++++++++.++++++++++++++++++.++.--		Kovalyov V M&lt;br /&gt;
--------------------------------------.+++.+++++&lt;br /&gt;
.--------.++++.[-]+++++++++++++.++++++++++++++++&lt;br /&gt;
++++++++++++++++++++++++++++++++++++++++++++++.+&lt;br /&gt;
+++.+++++++.---------------------.+++++++++++.++&lt;br /&gt;
+++++++++++.----------.+++++++.&lt;br /&gt;
 [[User:Manya g|Manya g]] 23:58, 24 марта 2009 (UTC)Маня a-ka Monyag&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Я считаю что создать на brainfuck генератор случайных чисел(без вмешательства юзера) невозможно&amp;#039;&amp;#039; - думаю вполне можно если через brainfuck можно обратиться к дампу по адресу хранения времени(0040:006c) [[User:Advisors|Advisors]] 14:18, 2 июня 2009 (UTC)&lt;br /&gt;
== Фатальные ошибки ==&lt;br /&gt;
предлагаю внести в статью информацию о том что можеть &amp;quot;убить&amp;quot; БФ машину. (ну или как это назвать?)&lt;br /&gt;
например такой код&lt;br /&gt;
  ++[&amp;gt;++]&lt;br /&gt;
приведет к почти мгновенному переполнению буффера [[Special:Contributions/78.111.145.29|78.111.145.29]] 16:27, 15 апреля 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
А можно не так жестоко? Например бесконечный цикл без переполнения буфера:&lt;br /&gt;
  ++[]&lt;br /&gt;
[[User:Lohmatiyy|lohmatiyy]] 12:51, 18 августа 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Зависит от реализации интерпретатора/компилятора. В [http://ironbrainfuck.codeplex.com/ IronBrainFuck] лента и значения зациклены между 0 и MaxValue (=UInt16.MaxValue) и поэтому через некоторое время (пару секунд) код вернёт управление в ячейке с индексом 0, где все остальные будут равны MaxValue-2.&lt;br /&gt;
[[User:Worldalexey|Worldalexey]] 20:46, 14 января 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Дополнение ссылок ==&lt;br /&gt;
&lt;br /&gt;
К списку прилагаемых ссылок я бы добавил [http://erichware.com/litvor/bfcomint.htm описание интерпретатора и компилятора Brainfuck], исходные тексты открыты.&amp;lt;br/&amp;gt;&lt;br /&gt;
Кстати, в статье написано о компиляторах размером в 200 байт, что кажется несерьезным. Почему нет соответствующих ссылок?&lt;br /&gt;
--[[User:Ignizavr|Ignizavr]] 18:23, 12 мая 2010 (UTC)&lt;br /&gt;
: [http://aminet.net/package.php?package=dev/lang/brainfuck-2.lha#contents тут] исходный вариант в 240 байт, остальное еще искать надо.--[[User:AlexVinS|AlexVinS]] 19:52, 18 августа 2010 (UTC)&lt;br /&gt;
: а [http://www.codebreakers-journal.com/content/view/265/96/ вот тут] исходник компилятора для Линукс размером 171 байт. Итого факт есть, но лучше конечно найти вторичный АИ на тему &amp;quot;самый маленький компилятор брейнфака&amp;quot;, чтобы не превращать статью в каталок ссылок.--[[User:AlexVinS|AlexVinS]] 20:04, 18 августа 2010 (UTC)&lt;br /&gt;
Кстати, в разделе ссылок уже есть [http://www.muppetlabs.com/~breadbox/bf/], откуда есть есть ссылка на [http://www.muppetlabs.com/~breadbox/software/tiny/bf.asm.txt исходник компилятора размером 166 байт].--[[User:AlexVinS|AlexVinS]] 20:11, 18 августа 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Я новый участник и хочу добавить исходный код интерпретатора BrainFuck на Python 3.x  ==&lt;br /&gt;
Ниже приведён код интерпретатора Brainfuck&amp;#039;а, написанный на языке Python 3.x&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
str = &amp;#039;&amp;#039;&lt;br /&gt;
for line in sys.stdin:&lt;br /&gt;
    str += line.replace ( &amp;#039; &amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
cmdIndex = 0&lt;br /&gt;
cmd = &amp;#039;&amp;#039;&lt;br /&gt;
index = 0&lt;br /&gt;
memMap = []&lt;br /&gt;
memMap.append (0)&lt;br /&gt;
ceillSize = 256&lt;br /&gt;
loopsMap = []&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
while cmdIndex &amp;lt; len ( str ):&lt;br /&gt;
    cmd = str [cmdIndex]&lt;br /&gt;
    memMap [index] %= ceillSize&lt;br /&gt;
    if cmd == &amp;#039;&amp;lt;&amp;#039;:&lt;br /&gt;
        index -= 1&lt;br /&gt;
        if index &amp;lt; 0:&lt;br /&gt;
            print ( &amp;#039;Error index &amp;lt; 0&amp;#039;)&lt;br /&gt;
            sys.exit ( - 1 )&lt;br /&gt;
    elif cmd == &amp;#039;&amp;gt;&amp;#039;:&lt;br /&gt;
        index += 1&lt;br /&gt;
        if index == len ( memMap ):&lt;br /&gt;
            memMap.append ( 0 )&lt;br /&gt;
    elif cmd == &amp;#039;+&amp;#039;:&lt;br /&gt;
        memMap [index] += 1&lt;br /&gt;
    elif cmd == &amp;#039;-&amp;#039;:&lt;br /&gt;
        memMap [index] -= 1&lt;br /&gt;
    elif cmd == &amp;#039;.&amp;#039;:&lt;br /&gt;
        sys.stdout.write ( chr ( memMap [index] ) )&lt;br /&gt;
    elif cmd == &amp;#039;,&amp;#039;:&lt;br /&gt;
       memMap [index] = ord ( sys.stdin.read (1) )&lt;br /&gt;
    elif cmd == &amp;#039;[&amp;#039;:&lt;br /&gt;
        loopsMap.append ( cmdIndex + 1 )&lt;br /&gt;
    elif cmd == &amp;#039;]&amp;#039;:&lt;br /&gt;
        if memMap [index] == 0:&lt;br /&gt;
            loopsMap.pop ()&lt;br /&gt;
        else:&lt;br /&gt;
            cmdIndex = loopsMap [ len ( loopsMap ) - 1]&lt;br /&gt;
            continue&lt;br /&gt;
    cmdIndex += 1&lt;br /&gt;
print (&amp;#039;&amp;#039;)       &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Sviridenkovalera|Sviridenkovalera]] 14:09, 25 мая 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ещё один интерпретатор Brainfuck  ==&lt;br /&gt;
&lt;br /&gt;
Реализованный на встроенном языке 1С предприятия: http://infostart.ru/public/198930/ [[Special:Contributions/91.241.13.31|91.241.13.31]] 15:39, 27 августа 2013 (UTC)Илья&lt;br /&gt;
&lt;br /&gt;
== Оформление интерпретатора ==&lt;br /&gt;
&lt;br /&gt;
Скажите, кто и зачем так отформатировал код интерпретатора Brainfuck&amp;#039;а на Perl&amp;#039;е? — [[User:Kotolegokot|Kotolegokot]] 16:17, 26 июня 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Реализация Brainfuck для Arduino ==&lt;br /&gt;
&lt;br /&gt;
В статье на русском языке описывается реализация языка для платформы Arduino. Представлены тексты и работающие примеры.&lt;br /&gt;
http://arduino.ru/forum/programmirovanie/razrabotka-sketchei-na-yazyke-brainfuck&lt;br /&gt;
[[User:Asper321|Asper321]] 06:27, 2 мая 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== else if (acc[i] == &amp;#039;]&amp;#039;) { ...  if (acc[i] == &amp;#039;]&amp;#039;) - &amp;quot;масло масляное&amp;quot; ? ==&lt;br /&gt;
&lt;br /&gt;
 else if (acc[i] == &amp;#039;]&amp;#039;) {&lt;br /&gt;
            if (!cpu[j])&lt;br /&gt;
                continue;&lt;br /&gt;
            else {&lt;br /&gt;
                &amp;#039;&amp;#039;&amp;#039;if (acc[i] == &amp;#039;]&amp;#039;)&amp;#039;&amp;#039;&amp;#039; // думаю, это лишнее :)&lt;br /&gt;
                    brc++;&lt;br /&gt;
&lt;br /&gt;
 elsif ($code[$_] eq &amp;#039;]&amp;#039;) {&lt;br /&gt;
    if (!$cpu[$i]) {&lt;br /&gt;
      next;&lt;br /&gt;
    } else {&lt;br /&gt;
      ++$brc &amp;#039;&amp;#039;&amp;#039;if $code[$_] eq &amp;#039;]&amp;#039;&amp;#039;&amp;#039;&amp;#039;; // аналогично&lt;br /&gt;
или я чего-то недопонимаю ? — поправьте, меня или &amp;#039;&amp;#039;&amp;#039;текст&amp;#039;&amp;#039;&amp;#039; :)&lt;br /&gt;
&lt;br /&gt;
== Интерпретатор на C# ==&lt;br /&gt;
Написал вот такой интерпретатор на C# Net6.0&lt;br /&gt;
Прекрасно справляется со своей задачей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
byte[] Excute(string code, int allocSize = 30000)&lt;br /&gt;
{&lt;br /&gt;
    byte[] bytes = new byte[allocSize];&lt;br /&gt;
    short pos = 0;&lt;br /&gt;
    Dictionary&amp;lt;char, Action&amp;gt; types = new(){&lt;br /&gt;
        {&amp;#039;&amp;gt;&amp;#039;, new(() =&amp;gt; pos++)}, {&amp;#039;&amp;lt;&amp;#039;, new(() =&amp;gt; pos--)},&lt;br /&gt;
        {&amp;#039;+&amp;#039;, new(() =&amp;gt; bytes[pos]++)}, {&amp;#039;-&amp;#039;, new(() =&amp;gt; bytes[pos]--)},&lt;br /&gt;
        {&amp;#039;.&amp;#039;, new(() =&amp;gt; Console.Write(bytes[pos]))}, {&amp;#039;,&amp;#039;, new(() =&amp;gt; bytes[pos] = (byte)Console.ReadLine()[0])}&lt;br /&gt;
    };&lt;br /&gt;
    foreach (string z in code.Replace(&amp;quot;[&amp;quot;, &amp;quot;[|&amp;quot;).Replace(&amp;#039;]&amp;#039;, &amp;#039;[&amp;#039;).Split(&amp;#039;[&amp;#039;))&lt;br /&gt;
        if (z[0] == &amp;#039;|&amp;#039;)&lt;br /&gt;
            while (bytes[pos] != 0)&lt;br /&gt;
                for (int i = 1; i &amp;lt; z.Length; i++)&lt;br /&gt;
                    types[z[i]]();&lt;br /&gt;
        else&lt;br /&gt;
            for (int i = 0; i &amp;lt; z.Length; i++)&lt;br /&gt;
                types[z[i]]();&lt;br /&gt;
    return bytes;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Yotic</name></author>
	</entry>
</feed>