Brainfuck Índiz Diseñu del llinguaxe | Exemplos | Enllaces esternos | Menú de navegaciónFrans Faase. BF ye Turing completuDaniel Cristofani. Dalguna información de BrainfuckClifford Wolf. El UCP de Brainfuck y otros proyeutos rellacionaos con BrainfuckUn tutorial de Brainfuck n'inglés y francés.Una páxina bien variada pero que dedica una parte a llinguaxes isotéricos...Llibrería BrainFuckCompilador con lex, yaccVisual brainfuckIntérprete de Brainfuck con un depurador integráu (EDI) para WindowsBrian Raiter, Muppetlabs. Brainfuck: Un llinguaxe de programación Turing completu d'ocho instrucciones.Panu Kalliokoski. L'Archivu de BrainfuckBrainfuckedBrainfuck.ca Intérpretes y convertidores de Brainfuck autorizáu cola GPLUn intérprete y compilador de Brainfuck pa WindowsBrainfuck.netAlso Written In Brainfuck (awib)Jeffry Johnston. Programes de BF, incluyendo un compilador de Basic y un ensambladorAcme::BrainfuckIntérprete de Brainfuck fechu en delphiIntérprete de Brainfuck en PHPOokie, intérprete de Brainfuck y Ook!repositorio en GithubRecompilador dinámicu de Brainfuck en JavaScriptIntérprete de Brainfuck fechu en C
Llinguaxes de programación esotéricosSoftware de 1993
Plantía:Ficha de llinguaxe de programaciónllinguaxe de programación esotéricuUrban Müller1993Turing completucompiladormáquina de TuringFALSEAmigaintérpretereadmevectorbyteshttps://ye.m.wikipedia.org/wiki/Brainfuck#/editor/1piqueruCPerlHola mundu!
(function()var node=document.getElementById("mw-dismissablenotice-anonplace");if(node)node.outerHTML="u003Cdiv class="mw-dismissable-notice"u003Eu003Cdiv class="mw-dismissable-notice-close"u003E[u003Ca tabindex="0" role="button"u003Ezarraru003C/au003E]u003C/divu003Eu003Cdiv class="mw-dismissable-notice-body"u003Eu003Cdiv id="localNotice" lang="ast" dir="ltr"u003Eu003Ctable style="" class="noprint plainlinks ambox ambox-notice"u003Enu003Ctbodyu003Eu003Ctru003Enu003Ctd class="ambox-image"u003Enu003Cdiv style="width:50px;"u003E u003Cimg alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Noun_Project_maintenance_icon_943595_cc.svg/50px-Noun_Project_maintenance_icon_943595_cc.svg.png" decoding="async" width="50" height="50" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Noun_Project_maintenance_icon_943595_cc.svg/75px-Noun_Project_maintenance_icon_943595_cc.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Noun_Project_maintenance_icon_943595_cc.svg/100px-Noun_Project_maintenance_icon_943595_cc.svg.png 2x" data-file-width="110" data-file-height="110" /u003Eu003C/divu003Eu003C/tdu003Enu003Ctd class="ambox-text"u003Eu003Ccenteru003Eu003Cbigu003Eu003Cbu003E¡100.000 artículos!u003C/bu003Eu003C/bigu003Eu003Cbr /u003ETamos a piques de llegar a 100.000 artículos. Encamentámosvos nun crear nuevos artículos sinón u003Ca href="/wiki/Categor%C3%ADa:Wikipedia:Mantenimientu" title="Categoría:Wikipedia:Mantenimientu"u003Erevisaru003C/au003E y u003Ca href="/wiki/Categor%C3%ADa:Wikipedia:Correxir" title="Categoría:Wikipedia:Correxir"u003Ecorrexiru003C/au003E los esistentes.u003C/centeru003Eu003C/tdu003Enu003C/tru003Enu003C/tbodyu003Eu003C/tableu003Eu003C/divu003Eu003C/divu003Eu003C/divu003E";());
Brainfuck
Saltar a navegación
Saltar a la gueta
Plantía:Ficha de llinguaxe de programación
Brainfuck (jodecerebros), ye un llinguaxe de programación esotéricu, diseñáu por Urban Müller en 1993, coles mires de faer un llinguaxe que fuera al empar bien simple, Turing completu y que riquiera un compilador pequeñu. Müller basó Brainfuck na máquina de Turing y sirviólu d'inspiración el compilador de 1024 bytes de tamañu del llinguaxe FALSE.
La distribución clásica ye la versión 2 escrita por el mesmu Müller, conteniendo un compilador pal ordenador Amiga, un intérprete, programes d'exemplu y un documentu "readme".
Índiz
1 Diseñu del llinguaxe
1.1 Les Instrucciones
2 Exemplos
3 Enllaces esternos
3.1 Implementaciones
Diseñu del llinguaxe |
El llinguaxe basar nun modelu d'execución simple que consiste, amás del programa, d'un vector de (siquier) 30.000 bytes inicializados https://ye.m.wikipedia.org/wiki/Brainfuck#/editor/1. cero, un piqueru sobre esi vector (que al empiezu de la execución apunta al primer elementu del vector) y dos "corrientes" de bytes pa la entrada y la salida.
Les Instrucciones |
Hai solu ocho instrucciones, y toes son d'un calter.
Calter | Significáu |
---|---|
> | Amonta'l punteru. |
< | Decrementa el punteru. |
+ | Amonta'l byte apuntáu. |
- | Decrementa el byte apuntáu. |
. | Escribe'l byte apuntáu nel fluxu de salida. |
, | Lee un byte del fluxu d'entrada y almacenar nel byte apuntáu. |
[ | Avanza a la instrucción darréu posterior al ] correspondiente si'l byte anguaño apuntáu ye nulu (si ye 0). |
] | Recula a la instrucción darréu posterior al [ correspondiente si'l byte anguaño apuntáu nun ye nulu (si ye distintu de 0). |
- Traducción a otros llinguaxes
Los programes de Brainfuck pueden traducise a C y Perl con estes substituciones, suponiendo que ptr
seya del tipu unsigned char*
. Sicasí, tienen los sos propios traductores.
brainfuck | C | Perl |
---|---|---|
> | ++ptr; | $pointer++; |
< | --ptr; | $pointer--; |
+ | ++*ptr; | $tape[$pointer]++; |
- | --*ptr; | $tape[$pointer]--; |
. | putchar(*ptr); | print chr$tape[$pointer]; |
, | *ptr=getchar(); | $tape[$pointer]=ord(<>); |
[ | while (*ptr) | while($tape[$pointer]) |
] |
|
|
Exemplos |
- Hola Mundu!
Esti sería'l típicu programa qu'escribe "Hola mundu!"
++++++++++
[ Bucle pa empecipiar les memories (repitir 10 vegaes)
>+++++++>++++++++++>+++++++++++>+++>+<<<<<-
70 100 110 30 10
]
>++. imprime 'H' (72) 1
>>+. imprime 'o' (111) 3
---. 'l' (108) 3
<---. 'a' (97) 2
>>++. espaciu (32) 4
<+. 'm' (109) 3
++++++++. 'o' (117) 3
-------. 'n' (110) 3
<+++. 'd' (100) 2
>+. 'o' (111) 3
>+. '!' (33) 4
>. 'n' (10) 5
El correspondiente códigu "Hello World!" escribiríase, nuna sola llinia:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
yá que nun-y afecten los espacios, les tabulaciones o los saltos de llinia.
- El xuegu de la vida
Linus Akesson presents:
The Game Of Life implemented in Brainfuck
+>>++++[<++++>-]<[<++++++>-]+[<[>>>>+<<<<-]>>>>[<<<<+>>>>>>+<<-]<+
+++[>++++++++<-]>.[-]<+++[>+++<-]>+[>>.+<<-]>>[-]<<<++[<+++++>-]<.<<[>>>>+
<<<<-]>>>>[<<<<+>>>>>>+<<-]<<[>>>>.+<<<++++++++++[<[>>+<<-]>>[<<+>>>>>++++++++
+++<<<-]<[>+<-]>[<+>>>>+<<<-]>>>[>>>>>>>>>>>>+>+<<<<<<<<<<<<<-]>>>>>>>>>>
>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-]<<<[>>+>+<<<-]>[->[<<<
<+>>>>-]<[<<<<+>>>>-]<<<<]<+++++++++[>+++++<-]>>[<<+>>-]<
<[>---<-]>.[-]<<<<<<<<<<<<<<<<<-]++++++++++.[-]<-]>>>
>[-]<[-]++++++++[>++++++++<-]>--.[-]<,----------[<+
>-]>>>>>>+<<<<<<<[>+>>>>>+>[-]<<<<<<<-]>++++++++++>>>>>[[-]
<<,<<<<<<<->>>>>>>[<<<<+>>>>-]<<<<[>>>>+>+<<<<<-]>>>>>----------[<<<<
<<<<+<[>>>>+<<<<-]>>>>[<<<<+>>>>>>+<<-]>[>-<-]>++++++++++[>+++++++++
++<-]<<<<<<[>>>>+<<<<-]>>>>[<<<<+>>>>>>+<<-]>>>>[<<->>-]<<++++++++++
[>+<-]>[>>>>>>>>>>>>+>+<<<<<<<<<<<<<-]>>>>>>>>>>>>[-[>>>
>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-]+<<<[>
>>-<<<-]>[->[<<<<+>>>>-]<[<<<<+>>>>-]<<<
<]<<<<<<<<<<<,[-]]>]>[-+++++++++++[>+++++++
++++>+++++++++++<<-]>[-[>>>+<<<-]>>>[<<<+>>>>>>>+>+<
<<<<-]>>>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-
]<<<[>>+>+<<<-]>[->[<<<<+>>>>-]<[<<<<+>>>>-]<<<<]<<
<<<<<<[>>>+<<<-]>>>[<<<+>>>>>>>+>+<<<<<-]<<[>>+<<
-]>>[<<+>>>>>>+>+<<<<<-]>>>>[-[>>>>+<<<<-]>[>>>>+<
<<<-]>[>>>>+<<<<-]>>]>>>[-]<[>+<-]<[-[<<<<+>>>>-]<<<
<]<<<<<<<<]<<<<<<<<<<++++++++++[>++++++++++[<[>>+<<-]>>[<<+
>>>>>+++++++++++<<<-]<[>+<-]>[<+>>>>+<<<-]>>>[<<<+>>>-]
<<<[>>>+>>>>>+<<<<<<<<-]>>>>>>>>>[>>+<<-]>>[<<+<+>>
>-]<<<------------[>>>+<<<-]>>>[<<<+>>>>>>>+>+<<<<
<-]>>>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-
]<<<[>>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[>>>
+<<<<<+>>-]>>>>>>>[<<<+>>>-]<<<[>
>>+<<<<<<<<<+>>>>>>-]<<<<<<<[->[<<<<+
>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<<<+>>>>>>>-]<<<<<<<<<+++++++++++[>
>>+<<<-]>>>[<<<+>>>>>>>+>+<<<<<-]>>>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<<
+>>>-]<<<[>>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[>>>+<<<<<+>>-]>>>>>>>[<<<+>>>-]<<<
[>>>+<<<<<<<<<+>>>>>>-]<<<<<<<[->[<<<<+>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<<<
+>>>>>>>-]<<<<<<<<<+++++++++++[>>>>>>>+>+<<<<<<<<-]>>>>>>>[-[>>>>+<<<<-
]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-]<<<[>>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[>>>+<<
<<<+>>-]>>>>>>>[<<<+>>>-]<<<[>>>+<<<<<<<<<+>>>>>>-]<<<<<<<[->[<<<<+>>>>-
]<[<<<<+>>>>-]<<<<]>[<<<<<<<+>>>>>>>-]<<<<<<<----[>>>>>>>+<<<<<<<+[>>>>>
>>-<<<<<<<[-]]<<<<<<<[>>>>>>>>>>>>+>+<<<<<<<<<<<<<-][ lft@df.lth.se ]>>>>>
>>>>>>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>[>>>>+<<<<-]>>]>>>[-]<[>+<-]<[-[<<<<+>>
>>-]<<<<]<<<<<<[-]]<<<<<<<[-]<<<<-]<-]>>>>>>>>>>>[-]<<]<<<<<<<<<<]
Type for instance "fg" to toggle the cell at row f and column g
Hit enter to calculate the next generation
Type q to quit
- Triángulu de Sierpinski
[ This program prints Sierpinski triangle on 80-column display.]
>
++
++
[<++
++
++++
>-]>
++++++++
[>
++++
<-]>
>++>>>+>
>>+<
<<<<<<<<
<[-[->+<
]>[-<+>>>.<<]>>>
[[
->++
++++
++[>++++
<-]>
.<<[->+<
]+>[->++
++++++++<<+>]>.[
-]>]
]+<<<[-[
->+<]+>[
-<+>>>-[->+<]++>
[-<->]<<
<]<<<<]+++++++++
+.+++.[-]<]+++++
* * * * * M a d y * B y : * N Y Y R I K K I * 2 0 0 2
* * *
Enllaces esternos |
- Frans Faase. BF ye Turing completu
- Daniel Cristofani. Dalguna información de Brainfuck
- Clifford Wolf. El UCP de Brainfuck y otros proyeutos rellacionaos con Brainfuck
- Un tutorial de Brainfuck n'inglés y francés.
- Una páxina bien variada pero que dedica una parte a llinguaxes isotéricos...
Implementaciones |
Llibrería BrainFuck, nel llinguaxe de programación Pauscal en español.
Compilador con lex, yacc, Nos llinguaxes de programación C y Python.
Visual brainfuck, un IDE de brainfuck compatible con Windows 7- Intérprete de Brainfuck con un depurador integráu (EDI) para Windows
Brian Raiter, Muppetlabs. Brainfuck: Un llinguaxe de programación Turing completu d'ocho instrucciones. Esti sitiu inclúi un Quine de Brainfuck.
Panu Kalliokoski. L'Archivu de Brainfuck tien munchos programes de Brainfuck, quines, y implementaciones.
Brainfucked compilador de Brainfuck pa Windows/DOS.- Brainfuck.ca Intérpretes y convertidores de Brainfuck autorizáu cola GPL
- Un intérprete y compilador de Brainfuck pa Windows
- Brainfuck.net
Also Written In Brainfuck (awib) ye un compilador de Brainfuck escritu en Brainfuck para Linux de i386.- Jeffry Johnston. Programes de BF, incluyendo un compilador de Basic y un ensamblador
Acme::Brainfuck Módulu Perl en CPAN (n'inglés)- Intérprete de Brainfuck fechu en delphi
- Intérprete de Brainfuck en PHP
Ookie, intérprete de Brainfuck y Ook! escritu en Ruby y con repositorio en Github- Recompilador dinámicu de Brainfuck en JavaScript
- Intérprete de Brainfuck fechu en C
Categoríes:
- Llinguaxes de programación esotéricos
- Software de 1993
(RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.100","walltime":"0.655","ppvisitednodes":"value":153,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":1521,"limit":2097152,"templateargumentsize":"value":178,"limit":2097152,"expansiondepth":"value":3,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":57565,"limit":5000000,"entityaccesscount":"value":0,"limit":400,"timingprofile":["100.00% 562.223 1 -total"," 0.81% 4.580 1 Plantía:Correxir"," 0.55% 3.096 1 Plantía:Tradubot"," 0.52% 2.946 3 Plantía:AP"," 0.39% 2.167 1 Plantía:Clic"," 0.15% 0.871 1 Plantía:Ficha_de_llinguaxe_de_programación"],"cachereport":"origin":"mw1317","timestamp":"20190811100832","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"Brainfuck","url":"https://ast.wikipedia.org/wiki/Brainfuck","sameAs":"http://www.wikidata.org/entity/Q244627","mainEntity":"http://www.wikidata.org/entity/Q244627","author":"@type":"Organization","name":"Colaboradores de los proyectos Wikimedia","publisher":"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png","datePublished":"2017-12-17T05:28:01Z","dateModified":"2019-08-11T10:08:31Z"(RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":123,"wgHostname":"mw1327"););