roboforum.ru

Технический форум по робототехнике.
Текущее время: 09 апр 2025, 05:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Brainfuck - язык программирования всего из 8-ми команд
СообщениеДобавлено: 27 июн 2007, 16:54 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Brainfuck - язык программирования всего из 8-ми команд

http://ru.wikipedia.org/wiki/Brainfuck


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2007, 17:26 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
мне больше нравится это определение
http://absurdopedia.wikia.com/wiki/Brainfuck

пс: перенес в Йумор, к МК ну никакого отношения


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2007, 19:29 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
а вобще мне больше понравился 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)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 июн 2007, 17:09 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
интерпретатор: http://justice.loyola.edu/~mcoffey/pr/5k/i.html

BF выводим букву "Ы"
Код:
++++++++++[
>++++++++++[
 >++++++++++
<-]
<-]
>++++++++++[
>+++++++
<-]
>---.

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


почти тоже самое, только компактно
Код:
++++++++++[>++++++>+++++++++>++++++++>+++++
>+++++>+++++>+++++>++++++++>++++++++>++++++++
>+++<<<<<<<<<<<-]>+++++.>----.>++.>-.>.>+.
>----.>--.>---.<<.<<<<.>>>>>>>+++++.>++.
+++++++++++++.-------------[.,]>+++++++++++++.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 июн 2007, 11:43 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO