Brainfuck - язык программирования всего из 8-ми команд

Все здесь

Brainfuck - язык программирования всего из 8-ми команд

Сообщение avr123.nm.ru » 27 июн 2007, 16:54

Brainfuck - язык программирования всего из 8-ми команд

http://ru.wikipedia.org/wiki/Brainfuck
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Vooon » 27 июн 2007, 17:26

мне больше нравится это определение
http://absurdopedia.wikia.com/wiki/Brainfuck

пс: перенес в Йумор, к МК ну никакого отношения
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Vooon » 27 июн 2007, 19:29

а вобще мне больше понравился SmileScript
http://subway.net.ru/projects/php/smilescript/index.php

Код: Выделить всё
Интерпретатор SmileScript v.0.2
---------------------------------------------------------------------

1. Одна строка - одна команда.
2. Комментарий - ;) и следующий текст до конца строки.
3. Перед использованием переменной, её нужно объявить.
4. OUT - это предопределенная переменная буфера вывода, которой можно
   пользоваться, как обычной переменной.
5. ERROR [12] означает, что на 12-ой строке произошла ошибка.
6. Числа либо целые, либо с десятичной точкой - float.
7. Если встречается неизвестная команда, то текущая строка выводится
  с переводом строки

8. Если что-то не работает, улыбайтесь :)
9. Приоритет операторов убывает справа налево, т.е. конструкция:

  :-) A B :p "qwe" :p C :/ D :[] 12 :* 12

       означает:

  объявить A = B.("qwe".(C/(D=(12*12))));

10. Из управляющих конструкций - гибрид if и while:

  :) условие
       команды
       8)        ;) переводит к началу условия (continue)
       8(        ;) выходит из условия (break)
  (:

  Если требуется перепрыгнуть к началу условия уровнем выше - 8)8),
  аналог continue 2.

11. Что отсутствует:

   1. Обработка "скобочных" приоритетов.
   2. Булевы операции.
   3. Функции.
   4. Встроенные функции
   
   КОМАНДА                   ЧТО ОЗНАЧАЕТ
---------------------------------------------------------------------
:-) Var_name          Объявление переменной.
                     Переменная может содержать только буквы, цифры
                     и символ подчеркивания. С цифры начинаться низя

:-) Var statement     Объявление со значением-результатом выражения

:-( Var_name          Удаление переменной.

:YO! или ;YO!         Безусловный выход из программы.

8D                    Вывод списка всех переменных, кроме OUT

:O A                  Вывод переменной A с переводом строки
                            (двоеточие и большая буква "О" или ноль)

:o A                  Вывод переменной A без перевода строки
                                         (двоеточие и маленькая "o")

bla-bla               Вывод произвольного текста (under constr)
...
shut up!

:o "text"             Вывод строки text

:o 1234               Вывод 1234

A :[] B               A = B

A :p B                A .= B (приклеивание B к концу A)

A :) B                A += B

A :( B                A -= B

A :* B                A *= B

A :/ B                A /= B

A :\ B                A %= B

A (: B                A <<= B

A ): B                A >>= B

A :p B :) C           A .= B + C

A :p B :p C           A .= B . C

A :p B :( C           A .= B - C

A :p B :* C           A .= B * C

A :p B :/ C           A .= B / C

A :p B :\ C           A .= B % C

A :p B (: C           A .= B << C

A :p B ): C           A .= B >> C

A :[] B :[ C          A = B <= C

A :[] B :] C          A = B >= C

A :[] B :[[ C         A = B < C

A :[] B :]] C         A = B > C

A :[] B :| C          A = B == C

A :[] B |: C          A = B != C

A :[] !B              A = !B


:) условие            Условие.
команды               Команды выполняются, если условие
команды               не ноль и не пустая строка.

8)                    Переход к началу условия.
8)8)                  Переход к началу условия этажом выше.
8)8)8)                Аналог continue 3;

8(                    Выход из условия.
8(8(8(                Аналог break 3;

(:                    Конец условия.


%) func a, b, c       Имя функции, аргументы функции (under constr)

:-) glob_val          Глобальная переменная
%-) local_val         Локальная переменная  (under constr)

commands...           Любые команды
<- A                  return A
(%                    Конец объявления

%o func A, 2, "c" o%  Вызов. Вместо "о" можно использовать ноль
   (under constr)
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Vooon » 28 июн 2007, 17:09

интерпретатор: http://justice.loyola.edu/~mcoffey/pr/5k/i.html

BF выводим букву "Ы"
Код: Выделить всё
++++++++++[
>++++++++++[
 >++++++++++
<-]
<-]
>++++++++++[
>+++++++
<-]
>---.

BF выполните - узнаете :)
Код: Выделить всё
++++++++++[
>++++++
>+++++++++
>++++++++
>+++++
>+++++
>+++++
>+++++
>++++++++
>++++++++
>++++++++
<<<<<<<<<<-]
>+++++.
>----.
>++.
>-.
>.
>+.
>----.
>--.
>---.
<<.
<<<<.>>>>>>
>+++++.


почти тоже самое, только компактно
Код: Выделить всё
++++++++++[>++++++>+++++++++>++++++++>+++++
>+++++>+++++>+++++>++++++++>++++++++>++++++++
>+++<<<<<<<<<<<-]>+++++.>----.>++.>-.>.>+.
>----.>--.>---.<<.<<<<.>>>>>>>+++++.>++.
+++++++++++++.-------------[.,]>+++++++++++++.
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Master » 30 июн 2007, 11:43

Сидел как-то Морзе в мужской бане и смотрел длинный, короткий, два длинных, один короткий и придумал азбуку морзе. Интересно как это язык придумали :)
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С


Вернуться в Свободное общение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22