sectorforth: un Forth de 16 bits para x86 que cabe en 512 bytes

sectorforth es una implementación minimalista de Forth para arquitecturas x86 de 16 bits que cabe íntegra en un sector de arranque de 512 bytes. El proyecto se inspira en un hilo de Usenet de 1996, en particular en la propuesta de Bernd Paysan, y se compone únicamente de ocho primitivas básicas —fet

El arte de CHIP-8: guía práctica del conjunto de instrucciones

## CHIP-8: medio siglo después, el lenguaje que enseña a programar máquinas virtuales CHIP-8, un lenguaje de programación creado en 1977 para el kit de computadora COSMAC VIP, sigue siendo una de las herramientas pedagógicas más utilizadas por quienes se inician en la escritura de emuladores. Su pr

Intérpretes con tail-calls en Rust: cuatro estilos de despacho de VM comparados

Este artículo explica y compara cuatro estrategias para implementar el despacho de instrucciones en una máquina virtual (VM) escrita en Rust, todas basadas en la técnica de interpretación con tail-calls. La técnica consiste en transformar la recursión en un salto en tiempo de compilación, lo que evi

Mapeo de bytecode a código fuente: técnicas y rendimiento

Cuando una máquina virtual basada en bytecode genera un error en tiempo de ejecución, necesita traducir el desplazamiento del bytecode a la línea del código fuente que lo produjo. Este artículo, surgido de los retos del capítulo 14 del libro 'Crafting Interpreters' de Robert Nystrom, analiza de form

Byterun: Intérprete de Python en 500 líneas

Este artículo de Allison Kaptur, ingeniera de Dropbox, explora Byterun, un intérprete de Python escrito en Python. El objetivo principal es desmitificar el funcionamiento interno de un intérprete, demostrando que su estructura fundamental puede caber en un código relativamente corto (menos de 500 lí

C se acelera: Nuevo sistema añade JIT a intérpretes

Investigadores han desarrollado un sistema llamado 'yk' que permite transformar intérpretes de código C en máquinas virtuales (VM) con compiladores JIT (Just-In-Time) con una mínima modificación del código existente. Esto abre la posibilidad de mejorar el rendimiento de lenguajes como Lua, Ruby y Py

Pratt Parsing: Analizando código de forma intuitiva

Este artículo explica el 'Pratt Parsing', una técnica ingeniosa para analizar expresiones matemáticas o código, especialmente útil en compiladores. La idea central es que, tradicionalmente, las expresiones (como `a + b * c + d`) se representan en un árbol de sintaxis abstracta (AST) donde los operad

Forth en 1KB: Un intérprete minimalista y experimental

PlanckForth es un proyecto experimental y divertido que consiste en implementar un intérprete de Forth a partir de un binario ELF (Executable and Linkable Format) extremadamente pequeño, de tan solo 1KB, escrito a mano. El objetivo principal no es la utilidad práctica, sino la exploración de cómo se