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

27.08.13

Разработка - Языки и среды

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Brainfuck
.epf 13,45Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

 

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

 

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

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

См. также

Языки и среды Программист ИТ-компания Бесплатно (free)

В статье рассматриваются принципы работы с асинхронным программированием в Python с использованием async/await. На практических примерах показано, как создавать и управлять асинхронными задачами, использовать ключевые методы модуля asyncio, такие как create_task, gather, wait_for, и избегать распространённых ошибок. Материал будет полезен разработчикам, которые хотят улучшить производительность своих приложений за счёт асинхронного выполнения операций.

03.03.2025    892    war41k    2    

3

Языки и среды Программист Платформа 1С v8.3 Бесплатно (free)

Будем писать свои скрипты на питоне и запускать их на 1С.

15.04.2024    6185    YA_418728146    14    

64

Мобильная разработка Языки и среды 1С:Элемент Программист Бесплатно (free)

Flutter может быть использован с 1С:Предприятием для разработки кроссплатформенных мобильных приложений, обеспечивая единый интерфейс и функциональность на устройствах под управлением iOS и Android. Это позволяет создавать приложения с высокой производительностью благодаря использованию собственного движка рендеринга Flutter. Интеграция Flutter с 1С:Предприятием позволяет создавать мобильные приложения любого уровня сложности, интегрировать их в корпоративные информационные системы, а также реализовывать бизнес-логику

19.03.2024    26308    ROk_dev    82    

46

Языки и среды Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Существует множество языков программирования, и каждый имеет свои особенности по работе с типами данных. Слабые, явные, динамические и другие... Но кто же здесь 1С и почему с приходом "строгой" типизации EDT 1С-программистам стоит задуматься над изменением своих привычек.

16.01.2024    9771    SeiOkami    25    

62

Языки и среды Программист Бесплатно (free)

Пример небольшого приложения, с которого можно начать изучать язык программирования Dart.

08.08.2023    4966    acvatoris    6    

15

Языки и среды Программист Платформа 1С v8.3 Россия Бесплатно (free)

Написание статического анализатора для 1С традиционным способом на Си.

30.06.2023    3935    prohorp    15    

12

Языки и среды Программист Абонемент ($m)

Поставили нам задачу - вынести на отдельный сервер функционал получения заказов от клиентов по электронной почте, парсинг полученных XLS в приемлемый вид и трансформация заказов в красивый JSON, понятный нашей учетной системе на 1С. Всю эту красоту желательно запустить в отдельном докер - контейнере, по возможности не тратя лицензии, поэтому отдельно стоящую конфигурацию на БСП отвергаем сразу. Можно было бы собрать всё на Apache Airflow или Apache NiFi, но решили попробовать реализовать всю логику без Open Source, будем делать свой ETL, с Исполнителем, который в версии 3.0 научился взаимодействовать с электронной почтой по IMAP. Начнем с середины - сначала напишем скрипты, а потом соберем их в рабочую конструкцию

1 стартмани

01.06.2023    2642    0    kembrik    2    

9

Языки и среды Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Вставки кода на C# внутри кода на 1С.

7 стартмани

07.04.2023    11401    4    SerVer1C    58    

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

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

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


блин, только захотел спросить, зачем, и прочитал это :(
5. tolyan_ekb 80 28.08.13 08:39 Сейчас в теме
Почему нет комментариев к представленному коду? Это же не есть хорошо.
Созинов; +1 Ответить
6. ssn5810 28.08.13 08:43 Сейчас в теме
все может случится в этом МИРЕ
7. serkus 28.08.13 08:49 Сейчас в теме
11. Ilyabaykov 121 28.08.13 12:27 Сейчас в теме
(7) serkus, Ну не все-же работать, можно иногда и фигней пострадать.
Сам язык придумал не я, но как-то наткнулся на его описание скачал интерпретатор и понял что без отладчика не могу и двух строчек написать и вот интерпретатор с возможностью пошагового выполнения перед вами.
8. Serj1C 484 28.08.13 09:02 Сейчас в теме
Хорошо было бы поставить ОбработкуПрервыванияПользователя() для случая бесконечного цикла
9. CagoBHuK 33 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 121 28.08.13 12:20 Сейчас в теме
(9) CagoBHuK, Отличные ссылки, спасибо :)
12. DmitryKishkin 28.08.13 13:23 Сейчас в теме
Прочитал заголовок статьи - подумал, что это теперь официальное название языка 1С... ;-)
13. dmpas 418 28.08.13 13:51 Сейчас в теме
<зануда>И за это люди рейтинг получают...</зануда>
Видал я мастеров брэйнфака, загадочные парни... Даёшь Снегофак с контекстной подсказкой и анализатором кода!
adhocprog; Evil Beaver; +2 Ответить
14. AzagTot 41 28.08.13 22:19 Сейчас в теме
Где язык Brainfuck используется?
Приведите, пожалуйста, примеры практического применения.
18. Ilyabaykov 121 29.08.13 11:58 Сейчас в теме
(14) AzagTot, ну вообще эзотерические языки не предназначены для практического использования.
Язык brainfuck был вдохновлен языком FALSE, который в свою очередь основан на вполне нормальном языке Forth но спроектирован так, что-бы компилятор занимал не более 1024 байт. Самый маленький компилятор для brainfuck занимает 166 байт. Так-же стоит сказать, что brainfuck при бесконечном количестве ячеек памяти имеет тьюринговскую полноту.
15. Sintson 413 29.08.13 09:42 Сейчас в теме
Мусье знает толк в извращениях! ;)
=Kollega=; +1 Ответить
16. dmpas 418 29.08.13 10:53 Сейчас в теме
(15) Sintson, мусье-то, видимо, только вступил во "взрослую жизнь".
Толк вот тут: http://habrahabr.ru/search/?q=brainfuck

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