Интерпретатор языка Brainfuck

Программирование - Практика программирования

26
Интерпретатор языка Brainfuck реализованный в виде обработки 1С.

В мире существует огромное количество языков програмирования.

Часто их делят по области применения - общего назначенения, например С, F# или Фортран, или специализорованные, созданные для решения контретных задач или сужествующие только в определенной среде, например X++ или язык 1С. 

Так-же языки делят по виду програмирования:

  • Объектно-ориентированные (С++,  Simula)
  • Структурные (Бейсик, Фортран)
  • Декларативные (SQL)
  • Логические (Пролог)
  • Функциональные (Haskell, OCaml, F#, Lisp)
  • Императивные (Си, Модула)

Но есть языки, не имеющме практического применения, но тем не менее имеющие право на существования, один из самых известных таких языков и предлагается вашему вниманию:) 

Эзотерический язык програмирования Brainfuck. К несомненным достоинствам языка необходимо отнести его синтаксис, состоящий всего из 8 команд, при этом каждая команда кодируется всего одним символом.

 

Команда Brainfuck Описание команды
>   перейти к следующей ячейке памяти
<   перейти к предыдущей ячейке памяти
+   увеличить значение в текущей ячейке на 1
-   уменьшить значение в текущей ячейке на 1
.   ввести значение из текущей ячейки
,   ввести извне значение и сохранить в текущей ячейке
[   начало цикла, если значение текущей ячейки нуль, перейти вперёд по тексту программы на ячейку, следующую за соответствующей ]
]   окончание цикла, если значение текущей ячейки не нуль, перейти назад по тексту программы на символ [

 

Программа на языке Brainfuck, печатающая «Hello World!»:
 ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
 .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
 ------.--------.>+.

 Не спрашивайте зачем это надо, захотелось :)

26

Скачать файлы

Наименование Файл Версия Размер
Brainfuck
.epf 13,45Kb
27.08.13
2
.epf 13,45Kb 2 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. ksvd 27.08.13 17:03 Сейчас в теме
Не понял, публикация в разделе =В центре внимания=, а ни одного комментария.
нормальный такой; +1 Ответить
4. нормальный такой 89 27.08.13 23:17 Сейчас в теме
(1) ksvd, просто кто бы понимал зачем это и что это ))

ну раз автор говорит - "захотелось"
против лома не приема))

можно загадки на собеседовании задавать, мол напишите "preved medved" на брэйфаке
+ будет считаться хоть какая то попытка))
2. iov 364 27.08.13 17:21 Сейчас в теме
1000 символов кода и возглас программиста
лять я в условии ошибся
sdwggg; Kuzja_R; +2 Ответить
3. andrewks 1255 27.08.13 17:36 Сейчас в теме
Не спрашивайте зачем это надо, захотелось :)


блин, только захотел спросить, зачем, и прочитал это :(
5. tolyan_ekb 153 28.08.13 08:39 Сейчас в теме
Почему нет комментариев к представленному коду? Это же не есть хорошо.
Созинов; +1 Ответить
6. ssn5810 74 28.08.13 08:43 Сейчас в теме
все может случится в этом МИРЕ
7. serkus 28.08.13 08:49 Сейчас в теме
11. Ilyabaykov 115 28.08.13 12:27 Сейчас в теме
(7) serkus, Ну не все-же работать, можно иногда и фигней пострадать.
Сам язык придумал не я, но как-то наткнулся на его описание скачал интерпретатор и понял что без отладчика не могу и двух строчек написать и вот интерпретатор с возможностью пошагового выполнения перед вами.
8. Serj1C 473 28.08.13 09:02 Сейчас в теме
Хорошо было бы поставить ОбработкуПрервыванияПользователя() для случая бесконечного цикла
9. CagoBHuK 31 28.08.13 11:26 Сейчас в теме
Плюсик просто за то, что мыслишь нестандартно. http://www.rsdn.ru/article/philosophy/languages.xml - для дальнейшего познания. Еще вот: http://www.xappsoftware.com/wordpress/2011/10/02/brainfuck-for-arduino/
10. Ilyabaykov 115 28.08.13 12:20 Сейчас в теме
(9) CagoBHuK, Отличные ссылки, спасибо :)
12. DmitryKishkin 28.08.13 13:23 Сейчас в теме
Прочитал заголовок статьи - подумал, что это теперь официальное название языка 1С... ;-)
13. baton_pk 376 28.08.13 13:51 Сейчас в теме
<зануда>И за это люди рейтинг получают...</зануда>
Видал я мастеров брэйнфака, загадочные парни... Даёшь Снегофак с контекстной подсказкой и анализатором кода!
adhocprog; Evil Beaver; +2 Ответить
14. AzagTot 36 28.08.13 22:19 Сейчас в теме
Где язык Brainfuck используется?
Приведите, пожалуйста, примеры практического применения.
18. Ilyabaykov 115 29.08.13 11:58 Сейчас в теме
(14) AzagTot, ну вообще эзотерические языки не предназначены для практического использования.
Язык brainfuck был вдохновлен языком FALSE, который в свою очередь основан на вполне нормальном языке Forth но спроектирован так, что-бы компилятор занимал не более 1024 байт. Самый маленький компилятор для brainfuck занимает 166 байт. Так-же стоит сказать, что brainfuck при бесконечном количестве ячеек памяти имеет тьюринговскую полноту.
15. Sintson 343 29.08.13 09:42 Сейчас в теме
Мусье знает толк в извращениях! ;)
16. baton_pk 376 29.08.13 10:53 Сейчас в теме
(15) Sintson, мусье-то, видимо, только вступил во "взрослую жизнь".
Толк вот тут: http://habrahabr.ru/search/?q=brainfuck

(Да простят меня модераторы за ссылку)
Evil Beaver; +1 Ответить
17. Ilyabaykov 115 29.08.13 11:35 Сейчас в теме
(15) Sintson, Brainfuck это цветочки, а вы попробуйте на Malbolge что-нибудь написать :)
19. Sasha255n 29.08.13 12:15 Сейчас в теме
Да очень любопытная вещь
20. Evil Beaver 5381 31.08.13 19:22 Сейчас в теме
Чем бы дитя ни тешилось, лишь бы доработки типовых не делало на brainfuck
21. adhocprog 1150 04.09.13 15:32 Сейчас в теме
Улыбнуло )
По-моему, "ничего не делать" полезнее, чем программировать на Brainfuck'е :)
22. Ilyabaykov 115 04.09.13 16:35 Сейчас в теме
(21) adhocprog, лучший отдых - это смена деятельности :)
adhocprog; +1 Ответить
23. adhocprog 1150 04.09.13 16:46 Сейчас в теме
24. so-quest 129 03.10.13 23:46 Сейчас в теме
:) осталось только автоматический перевод кода из 1с в брейнфак сделать (а лучше в вайтспейс) - и никаких защит будет не надо :)
открываеь код модуля а там только плюсики :)
Оставьте свое сообщение