T3X/0: un lenguaje de programación mínimo, portable y autodidacta

T3X/0 es un lenguaje de programación procedural, pequeño, portable, estructurado en bloques y recursivo, prácticamente sin tipos. Es el miembro más reciente de la familia T3X. Su sintaxis se parece a Pascal y su semántica a BCPL. El compilador se distribuye de forma libre bajo licencia 0BSD o como d

Turbo Pascal en CP/M, MSX-DOS y MS-DOS: una historia del compilador

Esta página documenta la historia y las versiones de Turbo Pascal, el compilador de Borland, para los sistemas CP/M, MSX-DOS y MS-DOS. El lenguaje Pascal, creado por Niklaus Wirth en 1970, fue diseñado para la enseñanza de la programación estructurada y sirvió como base para lenguajes posteriores co

Futhark incorpora flatmap para expresar algoritmos con arrays irregulares

Futhark, un lenguaje de programación funcional orientado a la computación paralela en GPU, tradicionalmente prohíbe los arrays irregulares (aquellos cuyos subarrays difieren en tamaño) por motivos de eficiencia de compilación. El blog oficial del proyecto explica cómo los autores proponen sortear es

El mapa completo de PyTorch en una sola página

Esta serie, titulada 'Pérdida, muerte, robots', se propone recorrer todo el código de PyTorch capa por capa hasta que cada línea del día a día deje de ser opaca. La entrada actual, 'El mapa', actúa como índice general: presenta las doce partes que conformarán el recorrido —tensor, autograd, uso diar

Un estudio cuestiona la eficacia del flag -fret-clean de OpenBSD

Un equipo de investigación independiente ha publicado un artículo en IEEE Xplore que evalúa el flag -fret-clean de OpenBSD, introducido en la versión 7.6 para arquitecturas amd64. La mitigación ordena al compilador LLVM insertar, tras cada instrucción call, un movq que pone a cero la dirección de re

Choral: un lenguaje para programar coreografías distribuidas

Choral es un lenguaje de programación orientado a objetos diseñado para especificar coreografías, es decir, protocolos multiparte que definen cómo varios roles (los clásicos Alice, Bob, Carol…) deben coordinarse para llevar a cabo una tarea conjunta. Su objetivo es simplificar la construcción de sis

CHICKEN Scheme 6.0.0: alineación con R7RS-small, UTF-8 interno y FFI reforzado

CHICKEN Scheme publica su versión 6.0.0, un salto mayor en el que el núcleo adopta los módulos definidos por el estándar R7RS-small. La representación interna de cadenas pasa a UTF-8, lo que aporta soporte pleno para Unicode, y los blobs se reemplazan por el módulo (chicken bytevector), compatible c

Macros en Lisp: cómo escribir tus propias abstracciones

Este capítulo introduce la escritura de macros en Lisp, una herramienta que permite a los programadores crear sus propias abstracciones por encima del lenguaje y la biblioteca estándar. A diferencia de las funciones, las macros operan en tiempo de expansión del código: generan código que después ser

Una formulación alternativa del borrow checker de Rust basada en alias

Niko Matsakis presenta una propuesta experimental para reformular el borrow checker de Rust. El objetivo es superar algunas limitaciones del diseño actual (NLL) y, a la vez, mejorar su velocidad de cómputo. Matsakis ya cuenta con un prototipo implementado que supera la suite completa de pruebas de N

Una ambigüedad del estándar C89 que nunca se resolverá

El autor documenta una ambigüedad nunca resuelta del estándar C89/C90 sobre las declaraciones implícitas de funciones, una característica del lenguaje eliminada en C99. Explica que, cuando se invoca una función no declarada, el compilador la inserta en el ámbito como extern int () en lugar de produc

Diseñando el sistema de consultas de Krabby: objetivos y arquitectura

El autor describe el proceso de cinco meses para diseñar el sistema de consultas del compilador Krabby, inicialmente planteado con una arquitectura push que acabó descartada. Las principales limitaciones del modelo push eran que, al gestionar referencias pendientes, terminaba siendo un sistema de co

Rust activa Polonius Alpha en nightly, su nuevo verificador de préstamos

El equipo de desarrollo del lenguaje de programación Rust ha anunciado la activación de Polonius Alpha, una nueva versión del verificador de préstamos (borrow checker), en su canal nightly. El objetivo es estabilizar esta funcionalidad en los próximos meses y, según sus propias previsiones, antes de

Soppo: un lenguaje con sintaxis de Go que añade seguridad de tipos

Soppo es un lenguaje de programación que adopta la sintaxis de Go y mantiene interoperabilidad total con sus bibliotecas, pero incorpora características de seguridad de tipos y ergonomía que Go no ofrece de forma nativa. Su objetivo es permitir a los desarrolladores introducir el lenguaje de forma g

El compilador Kraid para Panfrost supera las 800.000 pruebas Vulkan CTS

El compilador Kraid, desarrollado para la pila del driver Panfrost, pasa ya las 800.000 pruebas del Vulkan CTS, incluidos algunos casos en los que el compilador anterior fallaba. La autora, Faith Ekstrand, advierte de que el logro se limita por ahora a los compute shaders: las etapas de vertex y fra

Futhark logra aplanar por completo el paralelismo de datos anidado

El compilador Futhark, un lenguaje funcional orientado a la generación de código paralelo para GPUs, alcanza por fin la capacidad de aplanar cualquier forma de paralelismo de datos anidado, incluidas las variantes irregulares que hasta ahora quedaban fuera de su alcance. El aplanamiento (flattening)

Avances en gccrs para compilar el núcleo Linux con GCC

El proyecto gccrs, que desarrolla un frontend de Rust para el compilador GCC, dedicó la primera mitad de 2026 a intentar compilar el núcleo Linux, un esfuerzo que ha permitido detectar y corregir múltiples fallos en el compilador. Aunque de momento gccrs solo puede manejar programas sencillos y autó

La ingeniería de grafos necesita un compilador

La ingeniería de grafos hace visible el modelo de aplicación al sustituir el flujo de control implícito por relaciones explícitas entre nodos como operaciones, posiciones, riesgo, políticas y enrutamiento. Frameworks como Microsoft Agent Framework y LangGraph describen los flujos de trabajo como gra

C++26 reduce el comportamiento indefinido en el núcleo del lenguaje

C++26 marca un avance significativo en seguridad del lenguaje. El comité ha abordado la reducción del comportamiento indefinido (UB) tanto en el núcleo del lenguaje como en la biblioteca estándar. La propuesta P3144R2 convierte en error de compilación la eliminación de un puntero a un tipo incomplet

Más allá del IPO: un compilador para Rails sin reescritura

El artículo reflexiona sobre por qué Ruby on Rails encaja tan bien como entrada para un compilador: sus convenciones, pensadas para humanos, aportan a los modelos de IA y a los analizadores estáticos la misma información estructurada que un compilador necesita de forma gratuita. Esa misma propiedad

Un programador construye su propio compilador de Markdown a HTML en Rust

Andrea, programador novel en Rust, presenta un compilador propio de Markdown a HTML desarrollado tras 12-13 horas de trabajo en su tiempo libre, sin recurrir a herramientas de inteligencia artificial generativa. El proyecto nació como una alternativa minimalista al generador de sitios estáticos Hugo

Cómo funciona la compilación incremental de Zig

Un miembro del equipo central de Zig explica en detalle el funcionamiento de la compilación incremental incorporada al compilador del lenguaje, una característica que detecta qué funciones o declaraciones han cambiado desde la última build y recompila únicamente esa parte, insertando los bytes direc

PyTorch como lenguaje de referencia y de implementación

PyTorch, el framework de código abierto desarrollado originalmente por Meta y hoy mantenido por la Linux Foundation, atraviesa una transformación conceptual que redefine su lugar en el ecosistema del aprendizaje profundo: ha dejado de ser únicamente una herramienta de implementación para consolidars

Cómo compilar GCC 1.27 en Ubuntu de 64 bits

Este artículo explica paso a paso cómo compilar la versión 1.27 del compilador GCC, publicada en 1988 y primera en ofrecer soporte para la arquitectura x86, sobre un sistema Ubuntu de 64 bits moderno. El autor parte del trabajo previo de Mikhail Maltsev, que documentó la compilación de un compilador

scriptc: compilador de TypeScript a ejecutables nativos sin motor JavaScript

scriptc es un compilador experimental, desarrollado por vercel-labs, que traduce código TypeScript ordinario a ejecutables nativos pequeños y rápidos, sin necesidad de Node ni de un motor de JavaScript incluido en el binario. La promesa central es que el mismo TypeScript que se ejecuta sobre Node —t

Fil-C: un compilador que lleva la seguridad de memoria a C y C++

Fil-C es una implementación de C y C++ que garantiza la seguridad de memoria sin sacrificar la compatibilidad con el código existente, según explicó su creador, Filip Pizlo, en la conferencia Software Should Work 2026. El proyecto nace de la premisa de que los lenguajes seguros —como Rust o los ento

Ni GCC ni Clang cumplen el estándar de C++ en el enlace de lenguajes

En C++, los tipos de función llevan asociado un «enlace de lenguaje» (language linkage) que puede ser «C++», «C» u otro definido por la implementación. El estándar establece con claridad que dos tipos de función con enlaces de lenguaje distintos son tipos diferentes aunque su firma sea idéntica, pre

Avances en GCC para eliminar los trampolines de las funciones anidadas en C

Las funciones anidadas de C —un caso particular del lenguaje soportado por GCC— han dependido históricamente de un fragmento de código auxiliar llamado trampolín que se genera en tiempo de ejecución sobre la pila. Para poder alojarlo, la pila debía ser ejecutable, algo que choca con una de las medid

clx: un compilador ahead-of-time de Lua con ejecutables nativos en C++20

clx es un compilador y runtime de Lua multiplataforma que genera ejecutables nativos independientes a partir de código Lua mediante cadenas de herramientas modernas de C++. Su objetivo no es competir por ser la implementación más rápida de Lua en todos los escenarios, sino ofrecer compilación ahead-

Amber, un lenguaje de programación moderno que compila a Bash

Amber es un lenguaje de programación de tipado fuerte y sintaxis inspirada en ECMAScript que se compila a scripts de Bash. Su objetivo es ofrecer una capa moderna, segura y ergonómica para escribir lógica de shell sin renunciar a la interoperabilidad directa con Bash, lo que lo hace atractivo para t

Compilación nativa en Go para Nintendo Switch con Ebitengine

El desarrollador Hajime Hoshi, autor del motor 2D Ebitengine, logró compilar un programa escrito en Go directamente en un binario nativo para Nintendo Switch, sin pasar por WebAssembly como intermediar io. Hasta ahora, su método consistía en transformar el código Go en Wasm y luego en C++; esa vía,

Hobbes: un lenguaje y compilador JIT integrado para alto rendimiento

Hobbes es un lenguaje de programación fuertemente tipado con un compilador JIT integrado y runtime diseñado para la evaluación dinámica eficiente de expresiones, almacenamiento y análisis de datos. Desarrollado por Morgan Stanley, se integra de forma nativa con aplicaciones C/C++ ofreciendo máximo r

Elm 0.19.2 acelera la compilación con un parser más eficiente

El compilador de Elm alcanza su versión 0.19.2 con mejoras de rendimiento centradas en reducir la asignación de memoria durante el análisis sintáctico. En pruebas internas, el compilador procesa 850.000 líneas de código Elm desde cero en 5,7 segundos y completa las compilaciones incrementales en men

Un compilador de Rust completo, traducido a C y compilable con GCC

El repositorio crustc, publicado en GitHub por FractalFir, contiene una traducción completa del compilador rustc a código C, de modo que puede construirse con GCC y make sin necesidad de rustc como binario anfitrión. El proyecto sirve como demostración pública de cilly, una herramienta en desarrollo

Una conversión de bool a u32 revela un fallo del optimizador de Rust

El desarrollador Parsa, autor de un blog técnico sobre compiladores y parsers, relata una sesión de refactorización de su motor de JavaScript escrito en Rust en la que una versión 'estética' de una función del lexer provocaba errores de parseo, mientras que una variante menos elegante funcionaba cor

Typst: cómo la incrementalidad permite la previsualización en tiempo real

En su charla en la RustWeek 2026, Laurenz Mädje, mantenedor principal y CTO de Typst, explicó cómo la empresa diseña su lenguaje de marcado y su compilador de forma conjunta para conseguir una previsualización instantánea de documentos grandes. Typst es un sistema de composición tipográfica escrito

La semana de los lectores: ciclismo, CuneiForth y un compilador JIT

Esta entrega recopila las respuestas de varios lectores a la pregunta semanal «¿Qué haces esta semana?», una sección abierta en la que comparten sus proyectos y aficiones en curso. Entre los aportes destaca el de un usuario que compagina su trabajo con la reparación de coches y una rutina creciente

La función de OxCaml que más lenguajes deberían copiar

OxCaml, el superset de OCaml desarrollado por Jane Street, incorpora una función que obliga al compilador a garantizar que una función completa no realiza asignaciones en el heap. Basta con anotar el código con [@zero_alloc]: si cualquier parte del árbol de llamadas reserva memoria, la compilación f

slisp: un compilador sencillo de Lisp a ensamblador para Linux/AMD64

slisp es un compilador de Lisp escrito en Go que traduce programas Lisp a ensamblador autónomo para plataformas Linux sobre AMD64. El nombre del proyecto admite dos lecturas: «Simple Lisp» (Lisp sencillo) o «Steve's Lisp» (el Lisp de Steve), según prefiera el lector. El repositorio, alojado en GitHu

LuaJIT 3.0 abre el debate sobre sus extensiones sintácticas

Mike Pall, responsable de LuaJIT, ha abierto el issue #1475 en el repositorio oficial del proyecto como punto central para definir las extensiones de sintaxis que incluirá la futura versión 3.0 del compilador. El hilo funcionará como documento vivo: la descripción recoge la propuesta inicial y un co

LispE: el intérprete de objetos compilados

LispE es un intérprete de Lisp implementado en C++ que resuelve la vieja tensión entre interprete y compilador mediante una idea central: cada instrucción del lenguaje se modela como una subclase de una clase raíz llamada Element, y la evaluación se reduce a un único método virtual eval(), uniforme

Fil-C presenta ensamblador inline con seguridad de memoria

Fil-C, una variante de C y C++ con seguridad de memoria desarrollada por pizlonator, incorpora compatibilidad con ensamblador inline manteniendo las garantías de seguridad. La función, aún en fase preliminar y no incluida en el lanzamiento 0.679, requiere compilar desde el código fuente. El proyect

Cómo escribir un intérprete de Lisp en Python

Este artículo es un tutorial paso a paso para construir un intérprete de Scheme (un dialecto de Lisp) utilizando Python. El texto parte de la premisa de Steve Yegge según la cual, si no se sabe cómo funcionan los compiladores, no se entiende de verdad cómo funcionan los ordenadores, y aplica esa ide

TypeScript 7 RC: el compilador reescrito en Go, hasta 10 veces más rápido

Microsoft anunció esta semana la Release Candidate (RC) de TypeScript 7, una versión que marca un antes y un después para este superset de JavaScript: por primera vez, el compilador completo ha sido reescrito en Go, abandonando la implementación original en TypeScript que compilaba a JavaScript. El

Free Oberon: un IDE clásico para el lenguaje Oberon

Free Oberon es un entorno de desarrollo integrado (IDE) multiplataforma para el lenguaje de programación Oberon, descendiente directo de Pascal y Modula-2. Diseñado en el clásico estilo pseudográfico de la famosa pantalla azul de Pascal, está disponible para Windows, macOS y Linux. Incluye un compil

Tiny Shading Language: Creando un Lenguaje de Sombras para Renderizado Offline

El programador gráfico Jiayin Cao desarrolló Tiny Shading Language (TSL), un lenguaje de sombras personalizado para su renderizador SORT, en cuatro meses. La motivación detrás de este proyecto incluyó el aprendizaje profundo del proceso de compilación, la flexibilidad para modificar el código y la n

H2JVM: biblioteca en Haskell para generar bytecode de la JVM

H2JVM es una biblioteca en Haskell, aún en fases muy iniciales, que permite generar bytecode de la máquina virtual de Java (JVM) desde código funcional con un enfoque de alto nivel. Su objetivo es que los desarrolladores de compiladores hacia la JVM no tengan que lidiar con los detalles de bajo nive

El Consejo Directivo de Python exige un PEP formal para el JIT de CPython

El Consejo Directivo de Python ha anunciado que el compilador experimental justo a tiempo (JIT) integrado en CPython debe formalizarse mediante un PEP de tipo Standards Track en un plazo de seis meses o, de lo contrario, su código será retirado de la rama principal. El órgano agradeció a los desarro

Cómo reducir al mínimo un binario en C con GCC

Este artículo analiza paso a paso cómo reducir el tamaño de un ejecutable ELF en x86-64 compilado con GCC partiendo de un programa mínimo que simplemente devuelve 0 al sistema. El autor, mediante una serie de iteraciones con banderas del compilador y código ensamblador inline, consigue reducir el bi

Experimentos de Go: qué son, cómo funcionan y lista actual

Los experimentos de Go son funcionalidades que el equipo de Go incorpora en sus lanzamientos para obtener retroalimentación real antes de consolidarlas. Pueden presentarse como paquetes nuevos en la biblioteca estándar, cambios en el compilador o el runtime, e incluso modificaciones de comportamient

Blorp: un lenguaje de programación seguro y eficiente que compila a C

Blorp es un nuevo lenguaje de programación diseñado para combinar la seguridad y expresividad de los lenguajes modernos con el rendimiento nativo de C. Compila directamente a C, lo que permite que el código Blorp se ejecute con una eficiencia cercana a la del código C escrito a mano. Sus principales

El compilador Kefir C cesa su desarrollo público

El creador del compilador Kefir C ha anunciado el fin del desarrollo público del proyecto, que pasará a modo privado por tiempo indefinido. La decisión, comunicada en una entrada personal, responde a la falta de sostenibilidad del proyecto, el bajo retorno de inversión (incluyendo aspectos no moneta

Chibil: compilador de C en C# para .NET

Chibil es un compilador del lenguaje C desarrollado en C# que genera código intermedio de .NET (MSIL). Está basado en chibicc, un compilador minimalista de C, pero reescrito por completo en C# y adaptado para producir archivos objeto COFF compatibles con los que genera el compilador MSVC en modo /cl

Zjit optimiza código con nuevo asignador de registros

El equipo de desarrollo de Ruby ha implementado un nuevo asignador de registros en ZJIT (Just-In-Time compiler) para optimizar el rendimiento de la ejecución de código. Esta mejora es relevante porque la gestión eficiente de los registros de la CPU es crucial, ya que estos son mucho más rápidos que

Riscrithm: Nuevo lenguaje agiliza el desarrollo RISC-V

Un nuevo dialecto de macro-ensamblaje llamado 'Riscrithm' ha sido desarrollado para simplificar el desarrollo en RISC-V. Este lenguaje actúa como un puente entre la legibilidad de un lenguaje de alto nivel y el control directo del hardware, compilando directamente a ensamblador RISC-V puro. Los desa

Código C: la compatibilidad es un desafío constante

El artículo de lemon.rip explora un problema fundamental en el desarrollo de software en C: la dificultad de crear código que sea verdaderamente compatible con el estándar ISO C y que funcione de manera consistente en diferentes compiladores y sistemas operativos. La realidad es que la mayoría del c

SBCL implementa máquinas virtuales ultrarrápidas con stack de solo 8 ranuras

Este artículo de Paul Khuong explora una técnica innovadora para implementar máquinas virtuales basadas en stack, utilizando SBCL (Steel Bank Common Lisp) como plataforma de experimentación. La idea central es aprovechar un stack muy pequeño (solo 8 ranuras) para evitar el movimiento de datos durant

Phel 0.36.0 introduce variables como valores de primera clase

Phel 0.36.0 es una versión mayor del lenguaje de programación funcional que compila a PHP, introduciendo capacidades fundamentales que amplían significativamente su poder expresivo. Entre las adiciones más relevantes se encuentran lasfirst-classVars, que permiten tratar las variables como valores de

C++26: Reflexión y Seguridad en la Nueva Versión

El borrador final del estándar C++26 ha sido completado, según anunció Herb Sutter, experto en C++ y ex presidente del comité de estándares ISO C++. Esta nueva versión introduce cambios significativos que buscan modernizar y mejorar el lenguaje. Entre las novedades más destacadas se encuentra la imp

Google lanza JSIR: nueva herramienta para JavaScript

JSIR (JavaScript Intermediate Representation) es una nueva herramienta de Google, ahora de código abierto, que representa JavaScript a un nivel más bajo que el Abstract Syntax Tree (AST) tradicional, pero aún lo suficientemente alto como para ser comprensible y manipulable. En esencia, JSIR busca ll

C++26 finalizado: la actualización más grande desde C++11

La ISO C++ Committee ha finalizado el trabajo técnico de C++26 tras una reunión celebrada en Londres (Croydon, Reino Unido) el pasado sábado. Este hito marca la culminación de un proceso que involucró a aproximadamente 210 asistentes de 24 países, tanto presenciales (130) como remotos (80). C++26 se

Spaces: Nuevo Asignador de Memoria para Linux

Un nuevo asignador de memoria llamado 'Spaces' ha sido desarrollado para Linux x86-64, ofreciendo una alternativa a malloc con características avanzadas para un control más preciso de la memoria. Spaces, disponible como un único archivo de código fuente, permite la creación de regiones de memoria ex

Intel facilita simulación de hardware con nuevo lenguaje

Intel ha lanzado Device Modeling Language (DML), un lenguaje específico de dominio diseñado para crear modelos de dispositivos rápidos y funcionales para plataformas virtuales. DML simplifica la creación de modelos de dispositivos al ofrecer abstracciones de alto nivel, como bancos de registros, int

Error en compilador Rust al emular tipos avanzados

Este artículo técnico explora una peculiaridad en el sistema de tipos de Rust y cómo un intento de emular tipos de orden superior (HKTs) llevó a un error de desbordamiento en la evaluación de requisitos de traits, causando que el compilador fallara. El autor, en su intento de crear un lenguaje de sc

Rust: Propuesta optimiza la llamada de funciones

Este artículo explora una propuesta para mejorar la convención de llamada en Rust, especialmente en arquitecturas x86, y cómo esto impacta la eficiencia del código generado. La convención de llamada define cómo se pasan los argumentos a las funciones y cómo se devuelven los valores, y la actual conv

Go: Debate sobre 'try' para Simplificar el Manejo de Errores

La comunidad de desarrolladores de Go debate la inclusión de una característica 'try' para el manejo de errores, similar a la que existe en lenguajes como Zig y Rust. Actualmente, Go requiere una estructura verbosa `if err != nil` para verificar errores, lo que ha generado frustración entre algunos

Copapy: Python redefine la computación embebida

Un nuevo framework de Python llamado Copapy ha sido desarrollado para facilitar la computación en tiempo real determinista y de baja latencia en sistemas embebidos. Inspirado en frameworks de IA como PyTorch y JAX, Copapy busca ofrecer la flexibilidad de Python con el rendimiento de código máquina o

ROX: Nuevo Lenguaje Busca Simplificar la Programación

Un nuevo lenguaje de programación llamado ROX ha sido desarrollado con el objetivo de priorizar la claridad sobre la comodidad. Creado por Taman-Islam y disponible en GitHub, ROX busca eliminar las complejidades inherentes a muchos lenguajes, como conversiones implícitas, operadores sobrecargados y