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

Anatomía de un kernel CUDA: del código en C al silicio de la GPU

Ejecutar un kernel aparentemente trivial —sumar dos vectores de un millón de floats— esconde una cadena de traducciones y movimientos de datos que este artículo recorre paso a paso. El programa fuente, escrito en CUDA C, se divide en dos ramas: el código del host lo compila el compilador habitual de

Gossamer: un lenguaje de sistemas con sabor a Rust y goroutines reales

Gossamer es un lenguaje de programación de código abierto, publicado bajo licencia Apache-2.0, que combina una sintaxis expresiva inspirada en Rust con características propias de Go, como las goroutines y los canales tipados. Se ejecuta sobre una máquina virtual de bytecode con REPL para iterar con

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

CS 6120 de Cornell: curso autoguiado y abierto sobre compiladores avanzados

CS 6120 es un curso de nivel doctoral de la Cornell University, impartido por Adrian Sampson, que ahora se ofrece como itinerario autoguiado y abierto en la web. El programa aborda la implementación de lenguajes de programación desde una perspectiva tanto clásica como de investigación: representacio

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

El camino hacia el Component Model 1.0 de WebAssembly

WebAssembly se encamina hacia un hito histórico: el Component Model 1.0, una especificación estable y formalmente definida que promete consolidar a Wasm como pilar fundamental de la informática moderna. Así lo adelantaron Luke Wagner y Alex Crichton en el Bytecode Alliance Plumbers Summit de febrero

Yon: un lenguaje de investigación cimentado en teoría de topos y HoTT

Yon es un lenguaje de programación de investigación cuyo sistema de tipos se fundamenta en la teoría de topos, el lema de Yoneda, la teoría de tipos de homotopía (HoTT) y la teoría de tipos cúbica, con efectos algebraicos y un núcleo de lógica intuicionista. Constituye, a la vez, un programa de inve

Reify: generador aleatorio de programas para probar compiladores de C

Reify es una herramienta de generación aleatoria de programas basada en reificación semántica, diseñada para poner a prueba compiladores de C y, potencialmente, otras máquinas virtuales. Su propósito es producir funciones y programas en C libres de comportamientos indefinidos (UB), de modo que cualq

Ü: un lenguaje de programación compilado, seguro y sin GC

Ü es un lenguaje de programación compilado y de tipado estático que prioriza la seguridad y el rendimiento. Inspirado en C++, pero sin sus desventajas, y con influencias menores de Rust, Ü ofrece una separación entre código seguro e inseguro, verificación en tiempo de compilación y abstracciones com

GCC 16 se acerca a la paridad con LLVM en soporte para BPF

José Marchesi y los desarrolladores de GCC-BPF abrieron la sesión sobre BPF en el Linux Storage, Filesystem, Memory-management, and BPF Summit 2026 con un repaso de 90 minutos sobre los avances del último año en el soporte de BPF en la cadena de herramientas GNU. GCC estaría cerca de alcanzar la par

ChatGPT y Claude hallan errores en compiladores de forma sorprendente

Este artículo detalla un experimento sorprendente sobre la búsqueda de errores en compiladores, utilizando modelos de lenguaje avanzados como ChatGPT y Claude. Justin Lebar, un experto en compiladores con experiencia en Google, Waymo y OpenAI, descubrió que podía encontrar una cantidad significativa

Jank crea IR personalizada para optimizar código Clojure

El compilador de Clojure 'jank' ha implementado su propia representación intermedia (IR) personalizada, diseñada específicamente para optimizar el código a nivel de semántica del lenguaje Clojure. Anteriormente, jank delegaba toda la optimización a LLVM, pero debido a que LLVM IR opera a un nivel mu

Librería Haskell optimiza cálculos de arrays de alto rendimiento

El proyecto Data.Array.Accelerate, desarrollado por el equipo AccelerateHS, es una librería Haskell que define un lenguaje embebido especializado para cálculos de arrays de alto rendimiento. Esta herramienta permite expresar computaciones sobre arrays multidimensionales regulares mediante operacione

Spectre: lenguaje con contratos para desarrollo seguro de bajo nivel

Spectre es un nuevo lenguaje de programación diseñado para el desarrollo seguro de sistemas de bajo nivel mediante el uso de contratos. El lenguaje permite definir invariantes a nivel de tipo y precondiciones y postcondiciones a nivel de funciones, ofreciendo seguridad a través de inmutabilidad por

Async Rust: optimización busca código más ligero

Desarrolladores de Async Rust están buscando optimizaciones para reducir el tamaño del código binario, un problema especialmente relevante en entornos con recursos limitados como microcontroladores. El problema surge porque el uso de Async Rust introduce una cantidad significativa de 'bloat' o códig

Fil-C: C/C++ más seguro con nueva técnica

Fil-C es un nuevo enfoque para implementar C/C++ con seguridad de memoria. El proyecto, detallado en corsix.org, busca resolver los problemas de seguridad inherentes a estos lenguajes mediante una transformación automatizada del código fuente. En su modelo simplificado, Fil-C inserta un `AllocationR

Llvm soluciona caída del 25% en rendimiento RISC-V

Un ingeniero ha identificado y corregido una regresión de rendimiento del 25% en el compilador LLVM al generar código para procesadores RISC-V. El problema surgió tras una reciente modificación en LLVM que, aunque optimizaba ciertas conversiones de punto flotante, inadvertidamente rompió una optimiz

División rápida: optimización en sistemas de 64 bits

Este artículo de investigación aborda un problema de optimización en la programación de computadoras: la división de números enteros sin signo de 32 bits por constantes en arquitecturas de 64 bits. Aunque la división por constantes es una operación común, su implementación eficiente puede ser un cue

Go llega a microcontroladores con TinyGo

TinyGo, un nuevo compilador basado en LLVM, ha expandido la capacidad del lenguaje de programación Go para abarcar sistemas embebidos y WebAssembly (WASM). El proyecto, impulsado por los autores de TinyGo, permite a los desarrolladores compilar y ejecutar programas Go en más de 100 placas de microco

Han: Nuevo lenguaje de programación con claves en coreano

Un nuevo lenguaje de programación llamado 'Han' ha sido desarrollado y se distingue por utilizar palabras clave en coreano, aprovechando el sistema de escritura Hangul. Creado por Xodn y basado en Rust, Han busca ofrecer una experiencia de programación única, combinando la belleza del diseño lingüís

Fedora en RISC-V: avances y lentitud en la compilación

Un desarrollador de Fedora Linux ha detallado el progreso y los desafíos en la adaptación del sistema operativo a la arquitectura RISC-V. Desde hace aproximadamente tres meses, se ha trabajado en la triagem de paquetes, con un total de 86 solicitudes de extracción (pull requests) enviadas para paque

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

LFortran compila fpm: avance clave para su beta

LFortran ha logrado compilar con éxito el Fortran Package Manager (fpm), un proyecto complejo que ha permitido identificar y corregir numerosos errores y carencias en el compilador. Este logro, completado el 7 de febrero de 2026, marca un hito importante en el desarrollo de LFortran, acercándolo a s

C: Nueva herramienta evita errores de memoria

`fbounds-safety` es una extensión para el lenguaje C que busca abordar un problema crítico: los accesos a memoria fuera de los límites (out-of-bounds, OOB). Estos accesos son una fuente común de vulnerabilidades de seguridad en C, y esta extensión tiene como objetivo eliminarlos convirtiendo estos a

Swift 6.0: Retraso por Problemas Técnicos

El desarrollo de Swift 6.0 enfrenta importantes obstáculos técnicos que impiden su lanzamiento estable, según un análisis detallado publicado en GitHub por LadybirdBrowser. La lista de problemas abarca desde incompatibilidades con LLVM, errores en la gestión de tipos opcionales entre Swift y C++, ha

BarraCUDA: CUDA en AMD GPUs, sin intermediarios

Un desarrollador ha creado BarraCUDA, un compilador de código abierto que permite ejecutar código CUDA en GPUs de AMD. El proyecto, escrito en C99 sin dependencia de LLVM, traduce archivos .cu directamente a código máquina GFX11 para GPUs AMD RDNA 3. Esto elimina la necesidad de capas de traducción

Llamadas a funciones: ¿Cuánto cuestan y cómo optimizarlas?

En programación, es común encadenar funciones, donde una función llama a otra. Aunque esto es una práctica habitual, cada llamada de función tiene un costo en términos de rendimiento. Este artículo explora ese costo y cómo los compiladores pueden optimizarlo a través de una técnica llamada 'inlining