Hace 5 años | Por mr_b a microsiervos.com
Publicado hace 5 años por mr_b a microsiervos.com

El esotérico lenguaje de programación Befunge es una pequeña «monstruosidad» de la computación, que al igual que otros lenguajes como Brainfuck puede hacer muchas cosas pero haciéndolas complicadas. Como bien lo define en su título es «una especie de lenguaje de programación a lo Rube Goldberg», en honor a las famosas máquinas más complicadas de lo necesario. En Befunge el espacio de trabajo donde se programa es un tablero bidimensional, a diferencia de lo que sería la programación lineal tradicional.

Comentarios

borteixo

#3 LOL

D

#1 Por eso Ruby es mejor.

Acuantavese

#1 Y la pasta que ganamos con el efecto 2000,

D

#5 ¡Y que lo digas!

pip

#1 yo no llamaría a un script de Make lenguaje de programación

D

#13 Se estaba refiriendo a Python

mr_b

#10 Si tienes conocimientos básicos de cómo funciona un compilador no eres capaz de hacer un compilador. Si lo que dices fuese cierto, cualquiera sería capaz, pero la realidad nos dice que no es cierto.

Y que no te guste PHP no quiere decir que no haya requerido años de duro trabajo.

Vamos, que con estas dos frases te has marcado un cuñadismo de campeonato

r

#21 Si lo que dices fuese cierto, cualquiera sería capaz

Cualquiera que sepa cómo funciona, sí. Si lo intentase en vez de llorar quizás descubriría que es fácil, sencillo y para toda la familia.

Y que no te guste PHP no quiere decir que no haya requerido años de duro trabajo.

Independientemente de que me guste o no PHP (en mi comentario no dije nada al respecto), el que lo creó no tenía ni puta idea de lo que hacía. No lo digo yo, lo dice él mismo:

"there was never any intent to write a programming language [...] I have absolutely no idea how to write a programming language"
https://en.wikiquote.org/wiki/Rasmus_Lerdorf

mr_b

#23 Yo sé cómo funciona un lenguaje de programación y no sería capaz. Así que, por favor, déjate de cuñadeces y de infravalorar y menoespreciar el trabajo de los demás. Gracias.

r

#24 No, no lo has entendido. Tienes que saber cómo funciona un compilador, no un lenguaje. Son cosas muy distintas.

mr_b

#25 Perdón, me equivoqué: yo sé cómo funciona un compilador y no soy capaz. Ahora, me remito a lo que puse en el comentario anterior. Gracias.

r

#28 Te invito a intentarlo. Además de fácil, verás que es un proyecto muy divertido. Yo sé que eres capaz.

mr_b

#29 No lo has entendido: no quiero intentarlo, quiero que te des cuenta de que estás infravalorando y menospreciando el trabajo de los demás.

SemosOsos

#28 Sin acritud, sobrevaloras tus conocimientos entonces, sabrás "que" hace un compilador, pero no sabes como funciona si no eres capaz de hacer una simple gramática.

mr_b

#33 Una simple gramática no es hacer un compilador, que es de lo que estaríamos hablando si no fuera porque de lo que estamos hablando es de no infravalorar y menospreciar el trabajo de los demás.

Guillemdc

#40 Ingeniería Informática, al menos cuando la cursé yo en la Complu, tiene una asignatura troncal que va justo de implementar un compilador: Procesadores del Lenguaje.

En mi año, cada grupo de 4 tuvimos que crear un compilador que cogía un lenguaje inventado muy parecido a Pascal y lo convertía en una suerte de instrucciones parecidas a ensamblador. Durante el año entero fuimos desarrollando el procesador léxico, el sintáctico y una máquina virtual que corría el código "compilado". La vuelta final es que nuestra máquina virtual estaba realizada en Java, que corre sobre otra máquina virtual .

La asignatura es jodida pero, si te gusta la carrera de verdad, es una pasada. Además, creo que es ESENCIAL que cualquier tiracódigos que se precie haya hecho algo de este estilo para comprender las consecuencias más allá del "funciona o no funciona" del código que escribe: El orden en tiempo de CPU, el orden de espacio en memoria y, en definitiva, qué coño hace un sistema con el código que has escrito.

En teoría todo informático superior debería haberla cursado y aprobado. Que además la haya comprendido es otra historia.

#37 Esa va de otra cosa. Básicamente de entender qué problemas resuelve un ordenador y cuáles no. Para ello, se te explica qué es una máquina de Turing, su funcionamiento teórico... Pero no cómo se programa un compilador.

E

#42 Mítica asignatura con Jflex y cup.

Los if anidados fue de lo más complicado para mí.

SemosOsos

#21 Un compilador (al menos hasta código intermedio) es una de las cosas más absurdas y sencillas de hacer (pero que dan mucho respeto).
Tan sencillas que debería ser obligatorio salir de la carrera de informática sabiendo hacerlos, pero claro lo que sale ahora es puro consultor y por debajo de Java en el 70% de los casos no saben absolutamente nada.

D

#31 En teoría en las carreras se enseña... si tienes un buen profesor, porque en mi caso el profesor que nos lo tenía que enseñar estaba to loco, y sus clases no seguían ningún patrón ni estructura lógica reconocible.

Creo que fui el único de mi promoción que llegó a escribir un compilador, y porque nos dejaba elegir un trabajo en grupo y elegimos ese, el resto hicieron mierdas de servicios web wall

SemosOsos

#34 Todo se ha ido a la mierda con el plan de la Bolognesa.

D

#35 No no no, esto fue antes de Bolonia. Que por cierto, a la gente le encanta criticar Bolonia, pero yo aparte de que hayan subido las tasas (que es una putada enorme, eso es indiscutible), no veo que la cosa haya ido a peor. Quiero decir, la universidad española ya estaba mal de antes

aironman

#31 Ya no se enseña teoría de autómatas y lenguajes formales?

SemosOsos

#37 enseñarse seguramente sí, pero hacerlos no creo.

GroumenHour

#41 Yo, en plan tuno eterno, vi como se pasaba de demostrar un teorema a solo tener que citarlo... ni siquiera a comprobar si una expresión regular lo cumplia o no... solo citarlo.

PacoJones

#10 Tu eres de los que programa sus propios drivers en binario ¿no? si total, son unos y ceros....

r

#17 Algún driver he programado, pero eso no se programa con "unos y ceros", si no con lenguajes de "alto nivel" como C, y algunas partes en ensamblador. Con unos y ceros he programado algún microcódigo de CPU, aunque lo normal es usar mnemónicos también.

Pero eso no viene al caso. Programar un compilador o intérprete es algo asequible para cualquiera que sepa programar y tenga una base sólida (de hecho es parte de la respectiva asignatura troncal en ingenierías).

Evidentemente el auto-denominado "desarrollador" que ha aprendido a programar con ReactJS y StackOverflow no va a poder. Pero eso no significa que haya que ser un genio para poder hacerlo. Yo estoy lejos de serlo.

HaCHa

El único que mola de estos es el de los macacos.
https://es.wikipedia.org/wiki/Ook!

celyo

#8 Que gran aporte

o

En la línea de brainfuck y ook! (Lenguaje diseñado para orangutanes) hay que estar muy aburrido.

r

#6 En realidad hay que ser muy buen programador

No. Con tener conocimientos básicos sobre cómo funciona un compilador/intérprete, puedes implementar un lenguaje así en un fin de semana. De hecho puedes ver que la implementación de referencia son menos de 3000 LOC.

hay que tener la el intelecto suficiente para diseñarlo y la habilidad necesaria para implementarlo. Y más para que sea Turing completo

Sí, por ejemplo el creador de PHP.

demostenes

Más raro que Python, un lenguaje que da error si se indenta diferente a lo previsto.... Difícil lo ponen.

ailian

#19 Eso ya pasaba en COBOL.

D

Al menos es mas claro y legible que mucho código que yo he visto por ahí.

pip

Me gusta más que javascript

kampanita

Yo desde que vi LISP ya cualquier cosa me parece fácil.

asturvulpes

Yo despues aprender el ensamblador del 6502 y el 8086, empezé a meterme en la estructuración de compiladores y veía muchas cosas mejorables.

F

Por estas cosas los programadores no follamos.

GroumenHour

#22 Habla por ti, yo si follo... verdad mano derecha?
-“Si”

A veces me hago trios con la izquierda.

F

Ofertas de empresas líderes en su sector buscando ninja developers con 10 años de experiencia en Befunge en 3, 2, 1...

GroumenHour

#27 Pues podría ser. No conozco el lenguaje, pero saber adaptarte a nuevos paradigmas es una habilidad. Muy necesaria.

J

Muy interesante, voy a intentarlo en alguna kata de solveet.com. Pasé un buen rato con las de brainfuck http://www.solveet.com/exercises/Kata-FizzBuzz/11/solution-2859 y http://www.solveet.com/exercises/La-mina-de-diamantes/21/solution-521

D

Hola, es aquí la convención de Pajeros Pedantes no? Gracias.