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

27.08.13

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

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

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

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

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

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

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

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

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

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

 

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

 

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

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

См. также

Зачем нам 1С:Элемент

Мобильная разработка Языки и среды Бесплатно (free)

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

19.03.2024    6832    ROk_dev    56    

37

(Не) Строгая типизация 1С

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

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

16.01.2024    4216    SeiOkami    21    

55

Простое приложение на Dart

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

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

08.08.2023    3191    acvatoris    6    

13

Статический анализатор кода 1С на Си

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

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

30.06.2023    2982    prohorp    15    

12

Сквозная задача на Исполнителе - часть первая (IMAP)

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

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

1 стартмани

01.06.2023    1894    0    kembrik    2    

7

1С# - Расширяем код 1С кодом на C#

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

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

7 стартмани

07.04.2023    9284    4    SerVer1C    56    

43

Независимая разработка совместимых компонент на ORM 1С – миф или истина где-то в аннотациях Java?

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

При работе с 1С ORM (object relation mapping) все время преследует ощущение постоянного создания монолитного приложения — один раз привязался к какой либо сущности (например, справочник Контрагенты), и весь код заполнен ссылками на эту конкретную реализацию. Можно ли независимо разрабатывать в ORM совместимые между собой справочник «Контрагентов» и использующий его документ «Платежное поручение», но при этом избежать жестких зависимостей? Спасут ли нас микросервисы? Пример на аннотациях Java демонстрирует, как это возможно делать.

13.03.2023    1024    1CUnlimited    0    

2

xPath в 1С

Файловый обмен (TXT, XML, DBF), FTP Языки и среды Платформа 1С v8.3 Бесплатно (free)

Опыт работы методами языка xPath в 1С.

04.03.2023    4934    DemetrKlim    40    

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

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

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


блин, только захотел спросить, зачем, и прочитал это :(
5. tolyan_ekb 104 28.08.13 08:39 Сейчас в теме
Почему нет комментариев к представленному коду? Это же не есть хорошо.
Созинов; +1 Ответить
6. ssn5810 79 28.08.13 08:43 Сейчас в теме
все может случится в этом МИРЕ
7. serkus 28.08.13 08:49 Сейчас в теме
11. Ilyabaykov 121 28.08.13 12:27 Сейчас в теме
(7) serkus, Ну не все-же работать, можно иногда и фигней пострадать.
Сам язык придумал не я, но как-то наткнулся на его описание скачал интерпретатор и понял что без отладчика не могу и двух строчек написать и вот интерпретатор с возможностью пошагового выполнения перед вами.
8. Serj1C 483 28.08.13 09:02 Сейчас в теме
Хорошо было бы поставить ОбработкуПрервыванияПользователя() для случая бесконечного цикла
9. CagoBHuK 32 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 417 28.08.13 13:51 Сейчас в теме
<зануда>И за это люди рейтинг получают...</зануда>
Видал я мастеров брэйнфака, загадочные парни... Даёшь Снегофак с контекстной подсказкой и анализатором кода!
adhocprog; Evil Beaver; +2 Ответить
14. AzagTot 40 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 411 29.08.13 09:42 Сейчас в теме
Мусье знает толк в извращениях! ;)
=Kollega=; +1 Ответить
16. dmpas 417 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 8107 31.08.13 19:22 Сейчас в теме
Чем бы дитя ни тешилось, лишь бы доработки типовых не делало на brainfuck
21. adhocprog 1139 04.09.13 15:32 Сейчас в теме
Улыбнуло )
По-моему, "ничего не делать" полезнее, чем программировать на Brainfuck'е :)
22. Ilyabaykov 121 04.09.13 16:35 Сейчас в теме
(21) adhocprog, лучший отдых - это смена деятельности :)
adhocprog; +1 Ответить
23. adhocprog 1139 04.09.13 16:46 Сейчас в теме
24. so-quest 140 03.10.13 23:46 Сейчас в теме
:) осталось только автоматический перевод кода из 1с в брейнфак сделать (а лучше в вайтспейс) - и никаких защит будет не надо :)
открываеь код модуля а там только плюсики :)
Оставьте свое сообщение