Skip to main content

Brainfuck Índice Diseño del lenguaje Ejemplos Enlaces externos Menú de navegaciónFrans Faase. BF es Turing completoDaniel Cristofani. Alguna información de BrainfuckClifford Wolf. El UCP de Brainfuck y otros proyectos relacionados con BrainfuckUn tutorial de Brainfuck en inglés y francés.Una página muy variada pero que dedica una parte a lenguajes isotéricos...Librería BrainFuckCompilador con lex, yaccVisual brainfuckIntérprete de Brainfuck con un depurador integrado (EDI) para WindowsBrian Raiter, Muppetlabs. Brainfuck: Un lenguaje de programación Turing completo de ocho instrucciones.Panu Kalliokoski. El Archivo de BrainfuckBrainfuckedBrainfuck.ca Intérpretes y convertidores de Brainfuck autorizado con la GPLUn intérprete y compilador de Brainfuck para WindowsBrainfuck.netAlso Written In Brainfuck (awib)Jeffry Johnston. Programas de BF, incluyendo un compilador de Basic y un ensambladorAcme::BrainfuckIntérprete de Brainfuck hecho en delphiIntérprete de Brainfuck en PHPOokie, intérprete de Brainfuck y Ook!repositorio en GithubRecompilador dinámico de Brainfuck en JavaScriptIntérprete de Brainfuck hecho en C

Lenguajes de programación esotéricosSoftware de 1993


lenguaje de programación esotéricoUrban Müller1993Turing completocompiladormáquina de TuringFALSEAmigaintérpretevectorbytespunteroCPerlHola mundo!












Brainfuck




De Wikipedia, la enciclopedia libre






Ir a la navegación
Ir a la búsqueda
















Brainfuck

Hello World Brainfuck.png

Urban Müller
Información general
Extensiones comunes
b y bf
Paradigma
Esotérico
Apareció en
1993
Diseñado por
Urban Müller
Implementaciones
Múltiples
Influido por
Máquina de Turing, P′′
Ha influido a
Ook!, Tink

Brainfuck (en español «jodecerebros») es un lenguaje de programación esotérico, diseñado por Urban Müller en 1993, con el objetivo de hacer un lenguaje que fuera a la vez muy simple, Turing completo y que requiriese un compilador pequeño. Müller basó Brainfuck en la máquina de Turing y le sirvió de inspiración el compilador de 1024 bytes de tamaño del lenguaje FALSE.


La distribución clásica es la versión 2 escrita por el propio Müller, conteniendo un compilador para el ordenador Amiga, un intérprete, programas de ejemplo y un documento readme.




Índice





  • 1 Diseño del lenguaje

    • 1.1 Instrucciones


    • 1.2 Traducción a otros lenguajes



  • 2 Ejemplos

    • 2.1 Hola Mundo!


    • 2.2 El juego de la vida


    • 2.3 Triángulo de Sierpinski



  • 3 Enlaces externos

    • 3.1 Implementaciones





Diseño del lenguaje


El lenguaje se basa en un modelo de ejecución simple que consiste, además del programa, de un vector de (al menos) 30 000 bytes inicializados a cero, un puntero sobre ese vector (que al comienzo de la ejecución apunta al primer elemento del vector) y dos «corrientes» de bytes para la entrada y la salida.



Instrucciones


Hay solo ocho instrucciones, y todas son de un carácter.




















Carácter
Significado

>
Incrementa el puntero.

<
Decrementa el puntero.

+
Incrementa el byte apuntado.

-
Decrementa el byte apuntado.

.
Escribe el byte apuntado en el flujo de salida.

,
Lee un byte del flujo de entrada y lo almacena en el byte apuntado.

[
Avanza a la instrucción inmediatamente posterior al ] correspondiente si el byte actualmente apuntado es nulo (si es 0).

]
Retrocede a la instrucción inmediatamente posterior al [ correspondiente si el byte actualmente apuntado no es nulo (si es distinto de 0).


Traducción a otros lenguajes


Los programas de Brainfuck se pueden traducir a C y Perl con estas substituciones, suponiendo que ptr sea del tipo unsigned char*. Sin embargo, poseen sus 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])
]


Ejemplos



Hola Mundo!



Este sería el típico programa que escribe «Hola mundo!»



++++++++++
[ Bucle para iniciar las memorias (se repite diez veces)
>+++++++>++++++++++>+++++++++++>+++>+<<<<<-
70 100 110 30 10
]
>++. imprime 'H' (72) 1
>>+. imprime 'o' (111) 3
---. 'l' (108) 3
<---. 'a' (97) 2
>>++. espacio (32) 4
<+. 'm' (109) 3
++++++++. 'u' (117) 3
-------. 'n' (110) 3
<+++. 'd' (100) 2
>+. 'o' (111) 3
>+. '!' (33) 4
>. 'n' (10) 5

El correspondiente código «Hello World!» se escribiría, en una sola línea:


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

ya que no le afectan los espacios, las tabulaciones o los saltos de línea.



El juego 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ángulo de Sierpinski




[ This program prints Sierpinski triangle on 80-column display.]
>
++
++
[<++
++
++++
>-]>
++++++++
[>
++++
<-]>
>++>>>+>
>>+<
<<<<<<<<
<[-[->+<
]>[-<+>>>.<<]>>>
[[
->++
++++
++[>++++
<-]>
.<<[->+<
]+>[->++
++++++++<<+>]>.[
-]>]
]+<<<[-[
->+<]+>[
-<+>>>-[->+<]++>
[-<->]<<
<]<<<<]+++++++++
+.+++.[-]<]+++++
* * * * * M a d e * B y : * N Y Y R I K K I * 2 0 0 2 * * * * *


Enlaces externos


  • Frans Faase. BF es Turing completo

  • Daniel Cristofani. Alguna información de Brainfuck

  • Clifford Wolf. El UCP de Brainfuck y otros proyectos relacionados con Brainfuck

  • Un tutorial de Brainfuck en inglés y francés.

  • Una página muy variada pero que dedica una parte a lenguajes isotéricos...


Implementaciones



  • Librería BrainFuck, en el lenguaje de programación Pauscal en español.


  • Compilador con lex, yacc, En los lenguajes de programación C y Python.


  • Visual brainfuck, un IDE de brainfuck compatible con Windows 7

  • Intérprete de Brainfuck con un depurador integrado (EDI) para Windows


  • Brian Raiter, Muppetlabs. Brainfuck: Un lenguaje de programación Turing completo de ocho instrucciones. Este sitio incluye un Quine de Brainfuck.


  • Panu Kalliokoski. El Archivo de Brainfuck tiene muchos programas de Brainfuck, quines, y implementaciones.


  • Brainfucked compilador de Brainfuck para Windows/DOS.

  • Brainfuck.ca Intérpretes y convertidores de Brainfuck autorizado con la GPL

  • Un intérprete y compilador de Brainfuck para Windows

  • Brainfuck.net


  • Also Written In Brainfuck (awib) es un compilador de Brainfuck escrito en Brainfuck para Linux de i386.


  • Jeffry Johnston. Programas de BF, incluyendo un compilador de Basic y un ensamblador


  • Acme::Brainfuck Módulo Perl en CPAN (en inglés)

  • Intérprete de Brainfuck hecho en delphi

  • Intérprete de Brainfuck en PHP


  • Ookie, intérprete de Brainfuck y Ook! escrito en Ruby y con repositorio en Github

  • Recompilador dinámico de Brainfuck en JavaScript

  • Intérprete de Brainfuck hecho en C




Obtenido de «https://es.wikipedia.org/w/index.php?title=Brainfuck&oldid=118559371»













Menú de navegación

























(RLQ=window.RLQ||[]).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.288","walltime":"0.877","ppvisitednodes":"value":2105,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":7951,"limit":2097152,"templateargumentsize":"value":620,"limit":2097152,"expansiondepth":"value":22,"limit":40,"expensivefunctioncount":"value":0,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":59629,"limit":5000000,"entityaccesscount":"value":1,"limit":400,"timingprofile":["100.00% 734.963 1 -total"," 24.26% 178.334 1 Plantilla:Ficha_de_lenguaje_de_programación"," 23.67% 173.966 1 Plantilla:Ficha"," 18.89% 138.822 14 Plantilla:Propiedad"," 2.43% 17.856 1 Plantilla:Y-e"," 1.64% 12.076 3 Plantilla:Reemplazar"," 1.49% 10.985 1 Plantilla:Desvincular"," 1.06% 7.800 3 Plantilla:AP"],"scribunto":"limitreport-timeusage":"value":"0.106","limit":"10.000","limitreport-memusage":"value":2380762,"limit":52428800,"cachereport":"origin":"mw1286","timestamp":"20190826211146","ttl":2592000,"transientcontent":false););"@context":"https://schema.org","@type":"Article","name":"Brainfuck","url":"https://es.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":"2004-10-31T23:09:20Z","dateModified":"2019-08-26T21:11:45Z","image":"https://upload.wikimedia.org/wikipedia/commons/b/b4/Hello_World_Brainfuck.png","headline":"lenguaje de programaciu00f3n"(RLQ=window.RLQ||[]).push(function()mw.config.set("wgBackendResponseTime":101,"wgHostname":"mw1249"););

Popular posts from this blog

Sahara Skak | Bilen | Luke uk diar | NawigatsjuunCommonskategorii: SaharaWikivoyage raisfeerer: Sahara26° N, 13° O

The fall designs the understood secretary. Looking glass Science Shock Discovery Hot Everybody Loves Raymond Smile 곳 서비스 성실하다 Defas Kaloolon Definition: To combine or impregnate with sulphur or any of its compounds as to sulphurize caoutchouc in vulcanizing Flame colored Reason Useful Thin Help 갖다 유명하다 낙엽 장례식 Country Iron Definition: A fencer a gladiator one who exhibits his skill in the use of the sword Definition: The American black throated bunting Spiza Americana Nostalgic Needy Method to my madness 시키다 평가되다 전부 소설가 우아하다 Argument Tin Feeling Representative Gym Music Gaur Chicken 일쑤 코치 편 학생증 The harbor values the sugar. Vasagle Yammoe Enstatite Definition: Capable of being limited Road Neighborly Five Refer Built Kangaroo 비비다 Degree Release Bargain Horse 하루 형님 유교 석 동부 괴롭히다 경제력

19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу