Doom en Brainfuck con IDE profesional

Descubre Braintease, un IDE web para Brainfuck con una VM basada en cinta, ensamblador, macrolenguaje y compilador C. Visualiza la cinta, depura y ejecuta demos, incluido Doom.

29 ago 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Resumen rápido TLDR: He creado un entorno de desarrollo profesional para Brainfuck, un lenguaje macro, una máquina virtual estilo RISC implementada en Brainfuck, un ensamblador para la VM, un compilador C con fallos por pulir, un macroensamblador, y todo ello lo usé para mostrar el título de Doom en mi VM ejecutándose técnicamente todavía en Brainfuck. El IDE está disponible en https://braintease.dev y el código en https://github.com/ahineya/braintease

La chispa nació al ver un video donde alguien hizo una serpiente en Brainfuck. Divertido pero lleno de errores, y eso me llevó a preguntarme si podía hacerlo mejor. Como profesional en desarrollo y diseño, echo de menos IDEs bien pensados cuando exploro lenguajes excéntricos, así que empecé por crear el componente editor de código para la web y sobre él construir un IDE completo.

Diseñé un editor con resaltado léxico para Brainfuck, visualización de la cinta y un intérprete inicial para volver a recordar cómo funcionan los comandos básicos. Rápidamente prototipé una canalización de fetch decode execute en unas pocas decenas de líneas y entonces comprendí que necesitaba abstracciones para entender y mantener ese código.

Para ello implementé un segundo lenguaje tipo macro con expansión y análisis sintáctico real, lo que me permitió definir constructos como definir movimientos repetitivos y nombrar secuencias de comandos Brainfuck para legibilidad. Con esos macros empecé a modelar una arquitectura de máquina virtual sobre la cinta.

La idea de los carriles resultó clave. En vez de pensar la cinta como una secuencia lineal, la agrupé en bloques conceptuales que forman carriles paralelos. Cada carril puede dedicarse a registros, códigos de operación, operaciones aritméticas temporales, o trails de unos para moverme rápidamente a posiciones necesarias. Esto resolvió el problema de los punteros y permitió una visualización clara de la cinta en modos de carriles.

Con la VM ya tomando forma tuve que añadir depuración: puntos de ruptura, ejecución paso a paso y visualización de la instrucción actual. Implementé breakpoints accesibles desde la interfaz y la posibilidad de detener la ejecución en una posición concreta para inspeccionar algoritmos complejos, por ejemplo divisiones en Brainfuck.

Después vino la parte de bajo nivel: una implementación completa de la máquina virtual que puede ejecutar código máquina dispuesto en la cinta. Para no trabajar a mano con números crudos escribí un ensamblador y un linker que generan Brainfuck que inicializa la VM y coloca el código en la cinta automáticamente. Eso redujo drásticamente errores humanos al programar en código máquina.

No satisfecho con eso, di el siguiente paso y creé un compilador C que emite código para mi ISA y a la vez para Brainfuck. El proyecto generó más utilidades, como una interfaz TUI de tests. Como ejecutar cientos de tests en la VM Brainfuck era lento, reimplementé la misma VM en Rust para depurar el compilador de forma mucho más ágil sin perder la compatibilidad final con Brainfuck.

La VM incluye también mapeo de memoria para E O, lo que permitió emular controladores de juego, teclado, una terminal 40x25, pantalla RGB565 con doble buffer y un pequeño almacenamiento persistente. Con esto construí demos que van desde FizzBuzz y un intérprete Brainfuck hasta Tetris y una máquina Forth corriendo sobre la VM.

Encontré un bug en el compilador C que corruptaba memoria en función del tamaño del programa; al no poder resolverlo rápidamente adapté mi lenguaje macro para generar ensamblador y escribí un parser de archivos WAD de Doom en macroensamblador. Ver la imagen del título de Doom aparecer en pantalla dentro de la VM fue una de las mayores satisfacciones del proyecto.

Importante para quien quiera reproducir: los programas que no requieren E O mapeada aún funcionan en intérpretes Brainfuck convencionales como https://copy.sh/brainfuck/ siempre que se configure el tamaño de celda a 16 bits, memoria suficiente y comportamiento de desbordamiento en wrap.

Para devolver algo a la comunidad publiqué el IDE en https://braintease.dev y subí todo el código a https://github.com/ahineya/braintease Advertencia: gran parte del trabajo del editor y del ecosistema de herramientas fue acelerado con ayuda de asistentes de código, lo que me permitió dedicarme a diseñar la ISA, el macro lenguaje y escribir demos en Brainfuck, ensamblador, C y Rust en un mes en lugar de varios.

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en software a medida, inteligencia artificial y ciberseguridad. Ofrecemos servicios cloud aws y azure, servicios de inteligencia de negocio, soluciones de ia para empresas, agentes IA y dashboards con power bi. Si te interesa trasladar ideas experimentales como esta a soluciones reales de negocio, integrar agentes IA o mejorar tus flujos con aplicaciones a medida, en Q2BSTUDIO podemos ayudar desde la consultoría hasta la entrega de producto.

Palabras clave de posicionamiento buscadas en este artículo: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Contacta con Q2BSTUDIO para transformar prototipos en productos y escalar soluciones con la seguridad y la gobernanza que exige la empresa moderna.

Gracias por leer y ojalá este viaje por hacer el tarpit de Brainfuck un poco menos tarpit y mucho más usable te inspire a crear tus propias abstracciones y herramientas. Cheers desde el equipo de Q2BSTUDIO.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat