<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр:  Метки / brainfuck</title>
	<link>http://habrahabr.ru/rss/tag/brainfuck/</link>
	<description><![CDATA[]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 07:46:19 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
		
			
		<item>		
			<title><![CDATA[Prolog / [Из песочницы] Prolog. Программируем автоматы]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/prolog/136670/</guid>
			<link>http://habrahabr.ru/blogs/prolog/136670/</link>			
			<description><![CDATA[Прочитав <a href="http://habrahabr.ru/blogs/programming/124820/">статью</a> о Prolog, я решил написать небольшое дополнение к ней в виде 2 небольших задач.<br/>
 Вот они:<br/>
1. Интерпретатор языка brainfuck<br/>
2. Машина Тьюринга<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/prolog/136670/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 20 Jan 2012 13:35:53 GMT</pubDate>
			<author>freest</author>
			<category>brainfuck</category><category>prolog</category><category>машина тьюринга</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ненормальное программирование / Brainfuck на ленте с ячейками неограниченной разрядности]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/135561/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/135561/</link>			
			<description><![CDATA[Возьмем машину, у которой система команд точно такая же, как в языке brainfuck, но которая работает на ленте, в ячейки которой можно поместить любые целые числа. Переполнения в арифметических операциях не происходит, команда &quot;+&quot;, примененная к положительному числу, всегда даст положительный результат, и т.п. Спрашивается: можно ли работать на такой машине, какие возникнут проблемы и как их обойти?<br/>
<br/>
Преимущества очевидны: раз нет переполнений, то нет нужды и в длинной арифметике, можно одинаково работать с массивами любой длины и т.п. Но довольно быстро мы замечаем, что наш любимый способ очистки ячейки (&quot;[-]&quot;) не работает: если в ячейке было отрицательное значение, то программа зацикливается. Аналогично, мы не можем свободно использовать команду копирования &quot;[-&gt;+&lt;]&quot; — она тоже работает только для неотрицательных чисел.<br/>
<br/>
Получается, что при программировании нам надо внимательно следить за знаками содержимого ячеек (проще всего — не допускать появления отрицательных чисел вообще), а если возникнет число, знак которого неизвестен — работать с ним специальным образом<br/>
<br/>
Здесь мы рассмотрим две задачи: во-первых, запрограммируем оператор «if(a&gt;b) C; else D;» где a и b неотрицательны, а C и D — какие-то действия, а во-вторых, научимся обнулять, копировать и определять знак произвольного числа.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/135561/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 30 Dec 2011 19:04:11 GMT</pubDate>
			<author>Mrrl</author>
			<category>brainfuck</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Персональные блоги / Электрический Мозговынос]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/personal/135450/</guid>
			<link>http://habrahabr.ru/blogs/personal/135450/</link>			
			<description><![CDATA[<iframe width="560" height="349" src="http://www.youtube.com/embed/RkTvDjhImwo" frameborder="0" allowfullscreen></iframe><br/>
<br/>
Другие ролики этого мозготеррориста <a href="http://www.youtube.com/playlist?list=UUNAAxVKWPAbaZiB90_kjDJw&amp;feature=playlist-comment">тут</a>.]]></description>
			
			<pubDate>Wed, 28 Dec 2011 17:59:08 GMT</pubDate>
			<author>Derailed</author>
			<category>electro</category><category>brainfuck</category><category>fake</category><category>joke</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ненормальное программирование / Поздравление С Новым годом в стиле Brainfuck]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/128400/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/128400/</link>			
			<description><![CDATA[Хочется поздравить читателей блога с Новым годом. Но не просто так, а написав поздравление на Brainfuck. <br/>
<br/>
Первое поздравление выводит сообщение в виде ASCII-Art. <br/>
<br/>
<img src="http://3.bp.blogspot.com/-UBULkjBxbZw/TvZw_3xTt4I/AAAAAAAAAO8/PyMh3mhlYlg/s400/ny2012.png" alt="image"/><br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/128400/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 26 Dec 2011 11:06:01 GMT</pubDate>
			<author>AbnormalHead</author>
			<category>BrainFuck</category><category>Новый год</category><category>Елочка</category>
		</item>
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Ненормальное программирование / [Из песочницы] Сортировка цифр на Brainfuck]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/135262/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/135262/</link>			
			<description><![CDATA[В этой статье я покажу вам, как отсортировать циферки с помощью Brainfuck.<br/>
<br/>
Вы вводите цифры (каждая цифра не должна встречаться более 255 раз, при 8bit версии интерпретатора), после программа, если ее можно так назвать, выводит их по возрастанию.<br/>
<br/>
Это будет реализация <a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D1%91%D1%82%D0%BE%D0%BC">сортировки подсчётом</a>, которая работает следующим образом:<br/>
1. Считывается число k.<br/>
2. В массиве A увеличиваем A[k] на единицу.<br/>
3. Повторяем шаги 1 и 2, пока не закончатся числа на входе.<br/>
4. Выводим A[i] раз число i, где i — это возможные значения чисел k.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/135262/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sun, 25 Dec 2011 12:33:22 GMT</pubDate>
			<author>Aga</author>
			<category>Brainfuck</category><category>сортировка подсчетом</category><category>веселье</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[PHP / Интерпретатор Brainfuck]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/128673/</guid>
			<link>http://habrahabr.ru/blogs/php/128673/</link>			
			<description><![CDATA[<img align="right" src="http://habrastorage.org/storage1/85172476/a2e0fd7c/1ef6ea87/a26f4ef3.png"/><br/>
В этот раз я оказался недоволен решением в <a href="http://habrahabr.ru/blogs/brainfuck/128539/">одном</a> из хабратопиков, а именно, использованием какого-то мусорного интерпретатора BF, который глючит на неправильном коде. В этом топике я расскажу о языке программирования Brainfuck и напишу интерпретатор для него.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/128673/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sun, 18 Sep 2011 17:09:06 GMT</pubDate>
			<author>powder96</author>
			<category>интерпретатор</category><category>язык программирования</category><category>эзотерический</category><category>brainfuck</category>
		</item>
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Brainfuck / [Из песочницы] Пишем класс на php для интерпретации BrainLoller]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/brainfuck/128539/</guid>
			<link>http://habrahabr.ru/blogs/brainfuck/128539/</link>			
			<description><![CDATA[<img src="http://pix.am/rS2b.png" alt="image"/><br/>
<font color="gray">(Пример Brainloller кода увеличенного в несколько раз)</font><br/>
<br/>
<b>BrainLoller</b> — это визуальный диалект языка Brainfuck, в котором символьные команды заменяются на пиксели разных цветов, считываемые с изображения в формате *.png.<br/>
Brainloller был придуман в 2005 году Lode Vandevenne.<br/>
Цвета команд были выбраны как комбинации значений <b>0xFF</b> и <b>0x80</b> для трех <b>RGB</b> компонент. В результате была получена следующая таблица команд:<br/>
<ul>
<li>+ = 0x00FF00</li>
<li> — = 0x008000</li>
<li>&gt; = 0xFF0000</li>
<li>&lt; = 0x800000</li>
<li>[ = 0xFFFF00</li>
<li>] = 0x808000</li>
<li>. = 0x0000FF</li>
<li>, = 0x000080</li>
</ul><br/>
В Brainloller добавлены также две дополнительные команды — <b>0x00FFFF</b> (поворот указателя инструкций против часовой стрелки) и <b>0x008080</b> (поворот по часовой). Таким образом, “код” может записываться не в одну строку пикселей, а в двухмерное изображение. Перед началом выполения программы указатель инструкций находится в верхнем левом пикселе и направлен вправо. Изображение обрабатывается попиксельно, после каждой команды Brainfuck указательно инструкций сдвигается на один пиксель в том направлении, в котором он указывает. Выполнение программы заканчивается, как только указатель инструкций выходит за пределы изображения. (<a href="http://progopedia.ru/dialect/brainloller/">источник</a>)<br/>
<br/>
К сожалению, исходный набор инструментов для работы с Brainloller был утерян и мы попробуем в этой статье восполнить пробел)<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/brainfuck/128539/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 16 Sep 2011 00:04:49 GMT</pubDate>
			<author>Fedcomp</author>
			<category>php</category><category>brainfuck</category><category>brainloller</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ненормальное программирование / Изобретаем язык программирования для тренировки мозгов. Или эзотерический язык программирования за 5 минут]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/128120/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/128120/</link>			
			<description><![CDATA[Изучая <a href="http://esoteric.voxelperfect.net/wiki/Language_list">вики</a> по эзотерическим языкам я наткнулся на интересный язык программирования <b><a href="http://ru.wikipedia.org/wiki/Piet">Piet</a></b>. Отличительной особенностью которого является графическое представление программы. Например, эта программа выводит «Hello World!»<br/>
<img src="http://esoteric.voxelperfect.net/w/images/6/63/Piet_Hello_World.gif" alt="image"/><br/>
И показалось мне, что данная программа похожа на QR-Code. <br/>
<img src="http://qrcoder.ru/code/?%CF%F0%E8%E2%E5%F2+%D5%E0%E1%F0%E0%F5%E0%E1%F0%21&amp;4&amp;0" alt="image"/><br/>
Только Piet использует цветовую кодировку. А QR-Code использует комбинацию расположения точек.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/128120/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Fri, 09 Sep 2011 20:46:53 GMT</pubDate>
			<author>AbnormalHead</author>
			<category>Brainfuck</category><category>Piet</category><category>PATH</category><category>QR-PATH</category><category>интерпретатор</category><category>эзотерический язык</category>
		</item>
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Системное администрирование / [Из песочницы] Apache, f**k my brain!]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/sysadm/125039/</guid>
			<link>http://habrahabr.ru/blogs/sysadm/125039/</link>			
			<description><![CDATA[На хабре уже достаточно много статей про брэйнфак и разнообразные программы на нём.<br/>
Однако, практической применимости, как мне кажется, отображено не было.<br/>
Поэтому хотелось бы показать, как можно использовать этот занимательный язык в реальной жизни, а так же заставить апач понимать какой-либо дополнительный транслируемый язык для отдачи страничек.<br/>
Написанное актуально для Debian GNU/Linux Squeeze, но достаточно просто может быть перенесено на любую другую платформу с апачем.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/sysadm/125039/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 27 Jul 2011 11:47:02 GMT</pubDate>
			<author>3vi1_0n3</author>
			<category>brainfuck</category><category>apache</category><category>cgi</category>
		</item>
		
		
		
		
		
		
		
	
		
		
		
			
		<item>		
			<title><![CDATA[Python / [Перевод] Руководство: пишем интерпретатор с JIT на PyPy]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/python/124418/</guid>
			<link>http://habrahabr.ru/blogs/python/124418/</link>
			<description><![CDATA[<i>Все исходные коды и примеры из этой статьи доступны <a href="https://bitbucket.org/brownan/pypy-tutorial/">здесь</a>.</i><br/>
<br/>
Когда я первый раз смотрел проект PyPy, мне потребовалось некоторое время, чтобы выяснить, что он из себя представляет. Он состоит из двух вещей:<br/>
<br/>
— набор инструментов для написания интерпретаторов языков программирования;<br/>
— реализация Питона с применением этого набора инструментов.<br/>
<br/>
Вероятно, большинство людей думает, что PyPy это только вторая часть, но это руководство не об интерпретаторе Питона. Оно о том, как написать интерпретатор своего языка.<br/>
<br/>
Я взялся за это руководство для того, чтобы лучше понять как работает PyPy и что он из себя представляет. Предполагается, что вы очень мало знаете о PyPy, поэтому я начну с самого начала.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/python/124418/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sun, 24 Jul 2011 10:26:46 GMT</pubDate>
			<author>homm</author>
			<category>python</category><category>pypy</category><category>jit</category><category>brainfuck</category>
		</item>
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Ненормальное программирование / [Из песочницы] Интерпретатор Brainfuck на BAT]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/123034/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/123034/</link>			
			<description><![CDATA[Простота языка Brainfuck порождает множество реализаций его исполнения. На хабре уже были интерпретаторы и компиляторы на различных языках программирования, даже на <i>Bash</i>. Мне показалось, что несправедливо обойти еще один командный процессор. А именно командные файлы семейства WindowsNT, они же батники. При написании данного интерпретатора была поставлена цель реализовать всё только на встроенном «языке» консоли.<br/>
<br/>
<img align="center" src="http://habrastorage.org/storage1/1f1237ec/79ec1295/acefad90/9bc7de18.png"/><div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/123034/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 29 Jun 2011 14:57:23 GMT</pubDate>
			<author>AbnormalHead</author>
			<category>brainfuck</category><category>bat</category><category>интерпретатор</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Программинг микроконтроллеров / [Из песочницы] VHDL для начинающих. Brainfuck]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/controllers/121797/</guid>
			<link>http://habrahabr.ru/blogs/controllers/121797/</link>			
			<description><![CDATA[Как известно, VHDL – высокоуровневый язык описания аппаратуры (если это вызывает сомнения, можно посмотреть <a href="http://habrahabr.ru/blogs/controllers/112479/">здесь </a> и <a href="http://habrahabr.ru/blogs/DIY/80056/">здесь</a>). Из всего разнообразия задач мне приглянулся именно <b>brainfuck</b> благодаря лёгкости в реализации с одной стороны и волшебству создания программируемого (пусть и весьма ограниченно) вычислителя с другой.<br/>
В рамках данной статьи я не буду углубляться в дебри синтаксиса и настройки среды, сконцентрировавшись на реализации конкретной задачи.<br/>
Испытательным стендом будет <a href="http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;No=83">Altera Cyclone II Starter Kit</a> (EP2C20F484C7)<br/>
<br/>
<img src="http://habrastorage.org/storage/b2f72070/1116b2b1/60ca1d57/5184da94.jpg"/><br/>
Любителей мигающих лампочек прошу под кат.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/controllers/121797/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 14 Jun 2011 12:22:44 GMT</pubDate>
			<author>GreatMerlin</author>
			<category>brainfuck</category><category>vhdl</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ненормальное программирование / Пишем интерпретатор для своего эзотерического языка (часть 2)]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/120279/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/120279/</link>			
			<description><![CDATA[Напомню, что в <a href="http://habrahabr.ru/blogs/crazydev/116004/#habracut">предыдущей статье</a> я поставил задачу написать интерпретатор для надстройки над Brainfuck. Естественно, что для начала нужно было реализовать сам Brainfuck, и только затем переходить к надстройке. Благо в предыдущей статье эта часть была реализована. Собственно опишем то, что следует реализовать в этой части:<br/>
<ol>
<li>Понятие функции(процедуры).</li>
<li>Комментарии.</li>
</ol><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/120279/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Mon, 30 May 2011 22:47:35 GMT</pubDate>
			<author>edwardoid</author>
			<category>brainfuck</category><category>c plus plus</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Я пиарюсь / Археология в языках программирования]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/i_am_advertising/119450/</guid>
			<link>http://habrahabr.ru/blogs/i_am_advertising/119450/</link>			
			<description><![CDATA[Сегодня исполняется четыре года энциклопедии языков программирования <a href="http://progopedia.ru/">Прогопедия</a> — проекту, в котором я участвую уже почти два года.<br/>
<br/>
К юбилею Прогопедия достигла приятной округлости не только дат, но и цифр: сейчас в ней описано ровно 100 языков! Сотым языком стал гастрономический <a href="http://progopedia.ru/language/chef/">Chef</a>. Нормальные мейнстрим-языки в энциклопедии тоже есть, их даже больше, чем эзотерических. Но лично мне интереснее писать о последних, чем я и занимаюсь, в частности, на Хабре — ведь стать экспертом по <a href="http://progopedia.ru/language/hanoi-love/">Hanoi Love</a> гораздо быстрее и проще, чем по <a href="http://progopedia.ru/language/haskell/">Haskell</a> ;-)<br/>
<br/>
Вообще задача даже поверхностного изучения языков становится нетривиальной, как только они уходят в сторону от мейнстрима. Умирают сайты, посвященные языкам, и даже их зеркала и архивы, теряются во мраке времен авторские реализации, от когда-то используемого языка остаются только строчки в каком-нибудь словаре. Бывают и совсем курьезные случаи.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/i_am_advertising/119450/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 17 May 2011 13:54:31 GMT</pubDate>
			<author>Nicolette</author>
			<category>progopedia</category><category>эзотерические языки</category><category>brainfuck</category><category>археология</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[JAVA / JBFD: декомпилятор из Brainfuck в Java]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/java/116160/</guid>
			<link>http://habrahabr.ru/blogs/java/116160/</link>			
			<description><![CDATA[Кто-то когда-то сказал: «Возьмите несколько произвольных латинских букв, допишите перед ними J, и вы получите очередную Java-технологию». В этой статье речь пойдет о технологии JBFD, что означает Java BrainFuck Decompiler. Технология еще достаточно молодая (от силы 3 часа), так что не судите строго.<br/>
<br/>
Идея создания декомпилятора возникла не случайно. Всему виной большое количество статей по BrainFuck в Интернете вообще и на Хабре в частности. Интерпретаторов этого замечательного языка существует огромное множество, но вот средств для отладки BF кода мне удалось найти крайне мало.<br/>
<br/>
А что если преобразовать код с BF на свой «родной» язык и воспользоваться всеми преимуществами своей любимой IDE для обнаружения трудноуловимых ошибок, покрытия кода тестами, оптимизации и т.д.? Все это и много другое становится возможным с JBFD.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/java/116160/#habracut">Читаем, скачиваем, пользуемся...</a> </div>]]></description>
			
			<pubDate>Fri, 25 Mar 2011 02:37:15 GMT</pubDate>
			<author>javenue</author>
			<category>java</category><category>decompiler</category><category>validator</category><category>brainfuck</category>
		</item>
		
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Ненормальное программирование / [Из песочницы] Пишем интерпретатор для своего эзотерического языка]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/116004/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/116004/</link>			
			<description><![CDATA[За основу я взял язык Brainfuck он настолько мал, что можно немного расширив получить практически новый и достаточно функциональный язык программирования. И при этом не потерять изюминку исходного языка – мой язык будет все так же терзать мозг программиста, как и его родитель! <br/>
<br/>
Итак, Brainfuck. Вкратце, идея такая, есть N регистров/ячеек. У программиста есть доступ к ним всем но перемещения по ним делаются явным образом. Т.е. из ячейки 2 нельзя перейти к ячейке 7 сразу, нужно последовательно.<br/>
<br/>
“Ключевые слова” языка:<br/>
<br/>
<ul>
<li>&gt; – перейти на ячейку вправо.</li>
<li>&lt; – перейти на ячейку влево.</li>
<li>+ – увеличить значение ячейки на единицу.</li>
<li> — – уменьшить значение ячейки на единицу.</li>
<li>, – прочесть значение в ячейку со стандартного устройства ввода.</li>
<li>. – напечатать значение ячейки стандартным устройством вывода.</li>
<li>[ – начать цикл while если значение текущей ячейки не равно 0 и перейти к следующей ячейке.</li>
<li> ] – конец блока while. Продолжить цикл, если значение “условной” ячейки не равно 0 ( “условная ячейка” — ячейка на которой начался цикл ).</li>
</ul><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/116004/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Tue, 22 Mar 2011 21:19:09 GMT</pubDate>
			<author>edwardoid</author>
			<category>brainfuck</category><category>c plus plus</category>
		</item>
		
		
		
		
		
		
		
	
		
			
		<item>		
			<title><![CDATA[Ненормальное программирование / [Из песочницы] Интерпретатор Brainfuck на Brainfuck]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/113446/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/113446/</link>			
			<description><![CDATA[После нахождения на Хабре ряда постов имеющих отношение к Brainfuck'у в том числе его интерпретации у меня возникло какое-то желание написать и свой интерпретатор Brainfuck'а. Но для удовлетворение тех необходимых ощущений, которые нам приносит сам язык, нужно это было написать именно на Brainfuck. И у меня это частично получилось. Сразу оговорюсь о том чего нету: этот интерпретатор на данный момент <u>не поддерживает циклы и ввод входных данных (в случае входных данных — нет откуда их считывать, так как на вход подается Brainfuck программа)</u> — если кратко — то не работают комманды &quot;<b>[</b>&quot;, &quot;<b>]</b>&quot; и &quot;<b>,</b>&quot;.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/113446/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Wed, 09 Feb 2011 14:23:02 GMT</pubDate>
			<author>uxIg</author>
			<category>brainfuck</category><category>интерпретатор</category>
		</item>
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Разработка / Немного о JIT-компиляции или пишем оптимизированный интерпретатор Brainfuck]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/113339/</guid>
			<link>http://habrahabr.ru/blogs/development/113339/</link>			
			<description><![CDATA[Суть языка Brainfuck в том, что мы всегда бегаем по ячейкам ленты, уменьшая или увеличивая значения в них. В циклах мы можем пробегать из одного конца в другой, что-то подсчитывая, зачастую используя много вложенных циклов. Не трудно догадаться, что интерпретация этого языка относительно медленна. Конечно, на современных компьютерах этого практически не заметно, но… Предлагаю небольшой тест: берите написанный вами интерпретатор, и запускайте вот этот не хитрый код:<br/>
<br/>
<pre><code class="perl">&gt;+&gt;+&gt;+&gt;+&gt;++&lt;[&gt;[&lt;+++&gt;-
 &gt;&gt;&gt;&gt;&gt;
 &gt;+&gt;+&gt;+&gt;+&gt;++&lt;[&gt;[&lt;+++&gt;-
   &gt;&gt;&gt;&gt;&gt;
   &gt;+&gt;+&gt;+&gt;+&gt;++&lt;[&gt;[&lt;+++&gt;-
     &gt;&gt;&gt;&gt;&gt;
     &gt;+&gt;+&gt;+&gt;+&gt;++&lt;[&gt;[&lt;+++&gt;-
       &gt;&gt;&gt;&gt;&gt;
       +++[-&gt;+++++&lt;]&gt;[-]&lt;
       &lt;&lt;&lt;&lt;&lt;
     ]&lt;&lt;]&gt;[-]
     &lt;&lt;&lt;&lt;&lt;
   ]&lt;&lt;]&gt;[-]
   &lt;&lt;&lt;&lt;&lt;
 ]&lt;&lt;]&gt;[-]
 &lt;&lt;&lt;&lt;&lt;
]&lt;&lt;]&gt;.</code></pre><br/>
<br/>
Дождались конца выполнения? Согласитесь, что это было не так быстро, как могло показаться сразу. Что ж, давайте посмотрим, как сделать интерпретатор, который будет выполнять данный код не больше чем за несколько секунд.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/development/113339/#habracut">Опять brainfuck, ассемблер и паскаль</a> </div>]]></description>
			
			<pubDate>Mon, 07 Feb 2011 21:35:34 GMT</pubDate>
			<author>tronix286</author>
			<category>brainfuck</category><category>jit</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ненормальное программирование / Brainfuck — вывод в десятичном формате]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/113252/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/113252/</link>			
			<description><![CDATA[В качестве первой задачки для реализации на brainfuck я решил взять, казалось бы, простое упражнение — вывести в десятичном формате записанное на ленте 4-байтовое число. Задачка оказалась интересной, особенно, если учесть, что дублировать код (и использовать, что число именно 4-байтовое) мне хотелось как можно меньше, а больше пользоваться циклами.<br/>
<br/>
Сразу было видно, что есть два разных подхода — либо пытатьтся делить исходное число с остатком на 10, и составлять цифры из полученных остатков, либо формировать десятичное число, умножая его на 2 и при необходимости прибавляя единицу. Поигравшись со вторым вариантом, и обнаружив, что биты поступают не в том порядке, в каком надо, вернулся к первому варианту.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/113252/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sun, 06 Feb 2011 15:51:44 GMT</pubDate>
			<author>Mrrl</author>
			<category>brainfuck</category><category>первый опыт</category><category>системы счисления</category>
		</item>
		
		
		
		
		
		
		
		
	
			
		<item>		
			<title><![CDATA[Ненормальное программирование / Интерпретатор Brainfuck с помощью нормальных алгоритмов Маркова]]></title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/crazydev/113234/</guid>
			<link>http://habrahabr.ru/blogs/crazydev/113234/</link>			
			<description><![CDATA[Под катом вы найдете самую ненормальную реализацию интерпетатора Brainfuck с помощью нормальных алгоритмов Маркова. В этой реализации все операторы Brainfuckа и сам интерпретатор являются нормальными алгоритмами Маркова. Целью этого поста было рассмотреть Brainfuck с точки зрения классической теории алгоритмов и привести его реализацию с помощью какого-либо классического уточнения понятия алгоритма. Кто не боится причинить своему мозгу вред столь ненормальным программированием добро пожаловать (под катом много текста, иногда сложного для понимания если не знаком с теорией алгоритмов, но в конце поста есть ссылка на реализацию этого интерперетатора, который можно попробовать в действии). Его быстродействие, по понятным причинам не очень высоко, но с точки зрения понимания алгоритмов работы он очень наглядный.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/crazydev/113234/#habracut">Читать дальше &rarr;</a> </div>]]></description>
			
			<pubDate>Sun, 06 Feb 2011 08:43:43 GMT</pubDate>
			<author>Dimon_pl</author>
			<category>Brainfuck</category><category>нормальный алгоритм маркова</category><category>очень ненормальное программирование</category>
		</item>
		
		
		
		
		
		
		
		
	
	
	
	
	
	
	
	

	
</channel>
</rss>

