W4Tweaks
Меню сайта

Вход


Последние файлы

Последние темы

Поиск

Мини-чат
 
500

Статистика
Онлайн:
Сегодня заходили: 4erveR

Друзья сайта

Если вы хотите увидеть в этом спиcке свой сайт загляните сюда

Наш баннер


·  Регистрация Вход
[ Новые сообщения · Участники · Подписки · Поиск · RSS ]
Страница 1 из 212»
Форум » Свободная зона » Обычные темы » Знакомьтесь: язык программирования BrainFuck (да простят меня админы за название темы)
Знакомьтесь: язык программирования BrainFuck
Lex-Serest
Дата: ЧТ, 06.01.2011, 22:57:25 | Сообщение # 1
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
Для начала или вводный курс в эзотерический язык

Brainfuck придуман Урбаном Мюллером в 1993 году, в основном для забавы. Уникальный, вполне себе интересный Тьюринг-полный язык программирования с размером компилятора в 240 байт! В нём используется всего лишь 8 команд, каждая из них записывается одним символом. Программа на языке Brainfuck представляет собой последовательность этих самых команд.

То что может выполнять этот язык:
BrainFuck Developer - с продвинутыми функциями, там внизу ссылка есть на файл
http://brainfuck.progopedia.ru/ - выполнение программ в вашем браузере

Машина, которой управляют команды Brainfuck, состоит из упорядоченного набора ячеек и указателя текущей ячейки, получается что-то вроде стека и смещения в нём. Так же реализована возможность механизма ввода-вывода, далее будет понятно на примере.

Список всех команд языка

> перейти к следующей ячейке
< перейти к предыдущей ячейке
+ инкремент значения в текущей ячейке на 1
- декремент значение в текущей ячейке на 1
. напечатать значение из текущей ячейки
, ввести извне значение и сохранить в текущей ячейке
[ если значение текущей ячейки равно 0, перейти вперёд по тексту программы на ячейку, следующую за соответствующей закрывающей ] (с учётом вложенности)
] если значение текущей ячейки не равно 0, перейти назад по тексту программы на ячейку, следующую за соответствующей открывающей [ (с учётом вложенности)

Изначально задумывалось число ячеек в 30 тыс., каждая размером в байт. По умолчанию указатель находится в левой ячейке (ячейка 0); значения всех ячеек равны 0. Ввод/вывод значений происходит по таблице ASCII, точнее по числовому смещению в этой таблице. Например 32 знака "+" и точка — выведут на экран пробел в нулевой позиции, последующий знак ">" переведёт нас к следующей ячейке. Если теперь ввести 72 знака "+" и точку — выведется буква «H». Конструкция +++[.-] по сути цикл, вносим в ячейку значение 3, выводим на экран значение из ячейки и уменьшаем его, соответственно получится вывод символов с кодами 3, 2 и 1.

Параметры языка могут отличаться от разновидностей!

«Hello World!»

+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++.+++++++++++++++++
++++++++++++.+++++++..+++.---------------- ---
---------------------------------------------
---------------.+++++++++++++++++++++++++++++
++++++++++++++++++++++++++.++++++++++++++ ++++
++++++.+++.------.--------.------------------
---------------------------------------------
----.-----------------------.

Собст венно 72 вывод «H», в этой же ячейке прибавляем ещё 29 вывод «e» и т.д., манипулируя прибавлением/убавлением значения в одной единственной ячейке. Значения не пишутся в ячейку, а выводятся на лету.

Прокачанный «Hello World!»

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
------.--------.>+.>.

Так сказать хрестоматийный пример. Основан на предварительной подготовке 4 ячеек со значениями 70, 100, 30 и 10, чтобы проще было прибавлять или убавлять. Блок ++++++++++[>+++++++>++++++++++>+++>+<<<<-] 10 раз выполнит операции в цикле — прибавить 7 в первой ячейке, 10 во второй, 3 в третьей и 1 в четвёртой, после чего вернуться к ячейке 0 и уменьшить её. В последующих действиях можно уже разобраться и так.

Стырено с Хабра


:3
 
Lex-Serest
Дата: ЧТ, 06.01.2011, 23:06:16 | Сообщение # 2
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
Вот написал на нем простой калькулятор:

,>++++++[<-------->-]
,>++++++[<-------->-]
,>++++++[<-------->-]
<<[>>+>>+<<<<-]
>[>+>>-<<<-]
<<[>>+<<-]>>
[>]>
>>>++++++[<<<++++++++>>>-]<<<.

Программа сделана таким образом, что если первый символ будет «0» то программа выведет результат сложения, если ввести какое либо другое число, то выведет разность чисел. Например введем 163, «1» – значит будет разность, то есть 6-3, и выведет 3
если введем 063 то выведет 9

Не вводим числа сумма которых больше 9, так как произойдет переход на следующий символ находящейся после 9, либо в этом случае используем BrainFuck Developer и в нем смотрим на память

Кого заинтересовало могу выложить статью про разбор моего калькулятора (статья моя и с картинками :) )


:3
 
killeroi
Дата: ЧТ, 06.01.2011, 23:39:14 | Сообщение # 3
killeroi
Pinkie Pie
Группа: Хранители порядка
Сообщений: 1849
Репутация: 88
Инвентарь: 9
Статус: Offline
Знакомтесь:sonic пользователь который имеет желания расширять свои познания в языках программирования

Как в старые добрые
 
Lex-Serest
Дата: ЧТ, 06.01.2011, 23:41:24 | Сообщение # 4
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
этот язык программирования фактически для мазохистов либо для тех у кого много свободного времени)

:3
 
killeroi
Дата: ЧТ, 06.01.2011, 23:43:52 | Сообщение # 5
killeroi
Pinkie Pie
Группа: Хранители порядка
Сообщений: 1849
Репутация: 88
Инвентарь: 9
Статус: Offline
а не для мазохистов какой?

Как в старые добрые
 
Lex-Serest
Дата: ЧТ, 06.01.2011, 23:47:55 | Сообщение # 6
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
[WEC]SonicX, их много, начинают программировать обычно с basic и pascal

:3
 
firsacho
Дата: ПТ, 07.01.2011, 00:04:06 | Сообщение # 7
firsacho
ICQ = 453-163-541
Группа: Админы
Сообщений: 3722
Репутация: 76
Инвентарь: 15
Статус: Offline
Quote (Lex-Serest)
«Hello World!»

+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++.+++++++++++++++++
++++++++++++.+++++++..+++.--------- ------- ---
---------------------------------------------
---------------.+++++++++++++++++++++++++++++
++++++++++++++++++++++++++.++++++++++++++ ++++
++++++.+++.------.--------.------------------
---------------------------------------------
----.-----------------------.

На хрен оно надо ИМХО... лучше вместо того чтобы сутками писать всякое УГ на этом языке, лучше заняться написанием какой-то действительно нужной проги на нормальном языке программирования.





Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Lex-Serest
Дата: ПТ, 07.01.2011, 00:07:43 | Сообщение # 8
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
firsacho, я на нем программирую когда куда нибудь еду или на скучной паре, на смартфоне

Quote (firsacho)
всякое УГ на этом языке

этот язык развивает: логику и гибкость ума, один человек на нем написал мини морской бой (видимо ему вообще делать нечего)

Quote (firsacho)
нужной проги на нормальном языке программирования

мне лень :D


:3
 
killeroi
Дата: СБ, 08.01.2011, 00:38:38 | Сообщение # 9
killeroi
Pinkie Pie
Группа: Хранители порядка
Сообщений: 1849
Репутация: 88
Инвентарь: 9
Статус: Offline
Quote (Lex-Serest)
pascal

Увидев учебник начальных курсов pascal неподготовленный юзер может упасть в обморок :D

Добавлено (08.01.2011, 00:38)
---------------------------------------------
У меня пару вопросов по программе PHP Devel Studio 2.0 к firsacho. Как открыть файл по имени а не по пути размещения (они всех людей путь к папке worms 4 разный а надо чтобы открыл именно Worms 4.EXE) и как то же самое сделать с программой которой в событии при нажатии кнопки мыши на кнопку в окне открывался файл tweaks.xml то есть открыть файл tweaks.xml прогой notepad.exe при том что пути к ним неизвестны


Как в старые добрые
 
firsacho
Дата: СБ, 08.01.2011, 01:19:48 | Сообщение # 10
firsacho
ICQ = 453-163-541
Группа: Админы
Сообщений: 3722
Репутация: 76
Инвентарь: 15
Статус: Offline
Quote (|WEC|SonicX)
У меня пару вопросов по программе PHP Devel Studio 2.0 к firsacho

я через нее написал лаунчер и больше не юзал пока, так что я в ней нуб.

Quote (|WEC|SonicX)
Как открыть файл по имени а не по пути размещения (они всех людей путь к папке worms 4 разный а надо чтобы открыл именно Worms 4.EXE)

Ну надо сделать чтобы пользователь указал адрес к проге наверное или кинул твою прогу в папку с червями. Еще при установке червей адрес установки забивается куда-то в реестр, его использует стандартный лаунчер червей для запускается.

Quote (|WEC|SonicX)
открыть файл tweaks.xml прогой notepad.exe при том что пути к ним неизвестны

ну если ты узнаешь где путь к червям то и твикс найдешь, а чтоб блокнотом открывал - хз как

Вобщем спрашивай на форуме PHP Devel Studio





Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Lex-Serest
Дата: СБ, 08.01.2011, 02:27:45 | Сообщение # 11
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
php не для создания программ, пхп обычно используется для вэб программирования следовательно ты на нем не напишешь полноценных программ для винды
используй visual basic очень простая среда разработки и язык программирования очень прост

3.Ы. может тему о программировании создать?

З.Ы. третий час ночи поэтому могу нести щас всякий бред, надеюсь завтра над этим сообщением я ржать не буду


:3
 
killeroi
Дата: СБ, 08.01.2011, 02:29:55 | Сообщение # 12
killeroi
Pinkie Pie
Группа: Хранители порядка
Сообщений: 1849
Репутация: 88
Инвентарь: 9
Статус: Offline
ну а как выглядит твой код
Я пробовал
Run("ps_open_file(WORMS 4 MAYHEM.EXE)", true);


Как в старые добрые
 
Lex-Serest
Дата: СБ, 08.01.2011, 02:37:44 | Сообщение # 13
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
я на бэйсике программировал всего 2 раза
потом понял его ущербность, откуда мне знать

минута гугления: http://forum.codenet.ru/showthread.php?t=7695


:3
 
killeroi
Дата: СБ, 08.01.2011, 02:59:27 | Сообщение # 14
killeroi
Pinkie Pie
Группа: Хранители порядка
Сообщений: 1849
Репутация: 88
Инвентарь: 9
Статус: Offline
Firsacho короче дашь мне свой код я посмотрю его и сделаю для себя выводы чем щас в 3 часа ночи ломать мозг себе и другим

Добавлено (08.01.2011, 02:59)
---------------------------------------------
Функция ps_open_file(переменная)
При том переменная может содержать psdoc или имя файла открываемого для проги
Но сколько я не мучил мозг возвращаемое значение всегда false


Как в старые добрые

Сообщение отредактировал [WEC]SonicX - СБ, 08.01.2011, 02:59:58
 
DrHitman27
Дата: СБ, 08.01.2011, 06:58:27 | Сообщение # 15
DrHitman27
•Polarized•
Группа: Админы
Сообщений: 2109
Репутация: 52
Статус: Offline
а разве в команде Run("ps_open_file(WORMS 4 MAYHEM.EXE)", true); WORMS 4 MAYHEM.EXE это не string должен быть? тоесть в ковычках его записать надо, а то его как переменную воспринимает возможно. Ну и вобще запись Run("ps_open_file(WORMS 4 MAYHEM.EXE)", true); странная, хоть я и не знаю языка её смысл выполнить исполняемый файл "ps_open_file(WORMS 4 MAYHEM.EXE)", мне кажется надо так писать Run("WORMS 4 MAYHEM.EXE", true);

но как я и сказал, языка я не знаю. такчто могу ошибаться.


 
firsacho
Дата: СБ, 08.01.2011, 11:56:29 | Сообщение # 16
firsacho
ICQ = 453-163-541
Группа: Админы
Сообщений: 3722
Репутация: 76
Инвентарь: 15
Статус: Offline
Quote (Lex-Serest)
php не для создания программ, пхп обычно используется для вэб программирования следовательно ты на нем не напишешь полноценных программ для винды
используй visual basic очень простая среда разработки и язык программирования очень прост

PHP Devel Studio - это проект интерплитатора языка PHP для написания приложений. Разумеется функции PHP дополнены http://develstudio.ru/ . Мне это показалось интересным, т.к. PHP мне известен лучше всего и влом изучать язык, ради пары небольших приложений)

Но сразу при написании первой же проги заметился большой недостаток DevelStudio - остсутствие нормального справочника-учебника, содержащего все новые функции добавленные в язык и примеры их использования.
Поэтому приходилось долго ковырять форум или писать методом тыка (прога подсказывает названия функций, но не объясняет их значение). Хотя может ща они уже и исправили этот недостаток.

Quote (|WEC|SonicX)
Firsacho короче дашь мне свой код я посмотрю его и сделаю для себя выводы чем щас в 3 часа ночи ломать мозг себе и другим

Я тебе в другой раз как-нибудь могу исходный код кинуть, сейчас я не на своем компе, а мой на другом конце города.





Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Lex-Serest
Дата: СБ, 08.01.2011, 17:07:30 | Сообщение # 17
Lex-Serest
Onecake-man
Группа: Админы
Сообщений: 825
Репутация: 83
Инвентарь: 14
Статус: Offline
соник, кстати говоря, если хочешь получить исходный код Creating super weapon v2 запусти ее с параметром /i
про это написано внутри инструкции в проге


:3
 
Герыч
Дата: ВС, 09.01.2011, 00:31:32 | Сообщение # 18
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
По поводу Brainfuck - одна из моих первых программ на C# была интерепретатором брейнфака)
Даже попробовал сделать бой в памяти 2-х бегущих навстречу программ =)
P.S. C# - один из последних изученных мною языков..

Присоединяюсь к Lex-у в их споре с firsacho по поводу необходимости таких явлений как брейнфак.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Drun
Дата: ВС, 09.01.2011, 10:28:41 | Сообщение # 19
Drun
Олег
Группа: Хранители порядка
Сообщений: 1099
Репутация: 1340
Инвентарь: 14
Статус: Offline
Взрослые дядьки спорят по поводу "нужен или нет нецензурный программный язык" :D

Сообщение отредактировал Drun - ВС, 09.01.2011, 10:29:34
 
firsacho
Дата: ВС, 09.01.2011, 14:11:52 | Сообщение # 20
firsacho
ICQ = 453-163-541
Группа: Админы
Сообщений: 3722
Репутация: 76
Инвентарь: 15
Статус: Offline
А кто спорит, никто не спорит. Просто я считаю что это непрактичный язык и на него только время и силы уходят...
Если хочется погрузить мозг лучше как Герыч писать искусственный интеллект или программировать физику воды) запар не меньше чем с калькулятором на Брейнфаке, но результат намного интереснее и более востребован.





Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Форум » Свободная зона » Обычные темы » Знакомьтесь: язык программирования BrainFuck (да простят меня админы за название темы)
Страница 1 из 212»
Поиск:

Copyright W4Tweaks™ 2008-2017 Хостинг от uCoz