compiladores
18 noticias
WebAssembly más rápido: Cranelift optimiza con 'aegraph'
Cranelift, el optimizador de código de la Bytecode Alliance, ha introducido una nueva optimización llamada 'acyclic e-graph' (aegraph) para mejorar el rendimiento de WebAssembly. Esta innovación busca resolver el problema de la ordenación de las fases de optimización en compiladores, donde la inter
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
C++: Revelan detalles inéditos de su historia
La 'C++ History Collection' es un valioso repositorio de documentos, código fuente y otros materiales que narran la fascinante historia del lenguaje de programación C++. Creado y editado por Paul McJones, este recurso ofrece una visión profunda de la génesis, desarrollo, estandarización y evolución
Koru: Nuevo lenguaje desafía el rendimiento de C
Un nuevo lenguaje de programación llamado Koru está sorprendiendo al mundo de la informática al demostrar un rendimiento comparable, e incluso superior en algunos casos, a lenguajes de alto rendimiento como C, Rust y Zig. Según pruebas realizadas por los desarrolladores de Koru, sus 'kernels' (unida
Construyendo un compilador que se compila a sí mismo
El repositorio de GitHub 'acwj' documenta el fascinante viaje de DoctorWkt para construir un compilador auto-compilador para un subconjunto del lenguaje C. Un compilador auto-compilador es un programa que puede compilarse a sí mismo, lo que es un logro significativo en el campo de la informática y d
Compiladores: ¿Más simples de lo que creemos?
El artículo de Golden explora una perspectiva inusual sobre la complejidad de los compiladores de lenguajes de programación. Tradicionalmente, se asume que los compiladores modernos son enormes, con millones de líneas de código que abarcan desde la interfaz de usuario (frontend) hasta la gestión de
Programación con caramelos: nace MNM Lang
Este proyecto, llamado MNM Lang, es una demostración ingeniosa de cómo se puede crear un lenguaje de programación utilizando M&M's (o GEMS, una versión india). La idea surgió de un accidente: el autor derramó un paquete de caramelos que se organizaron en un patrón que le recordó un código. El objeti
Purple Garden: 'match' simplifica la lógica del código
Este artículo del blog de xnacly.me explora la implementación de sentencias `match` (similares a `switch` en otros lenguajes) en un nuevo lenguaje de programación llamado Purple Garden. El objetivo es proporcionar una alternativa a las largas cadenas `if-if-else`, mejorando la legibilidad y la estru
Funciones: abstracciones para simplificar la programación
Este artículo explora la naturaleza de las funciones en programación y cómo los lenguajes modernos manejan la ejecución del código, particularmente en lo que respecta al despacho dinámico y el manejo de errores. Comienza desafiando la noción de que las funciones son entidades reales, argumentando qu
Compiladores: Nueva técnica agiliza el proceso
Los compiladores basados en consultas (Query-Based Compilers o QBC) se han vuelto populares debido a su capacidad para implementar compilación incremental, un aspecto crucial para la experiencia de desarrollo en entornos de IDE modernos donde la respuesta rápida a las ediciones del código es esencia
IA crea emulador: desafío a experimento de Anthropic
Un desarrollador, Antirez, replicó un experimento de Anthropic donde se instruyó a un modelo de IA (Opus 4.6) para escribir un compilador C en Rust. Antirez cuestionó la metodología de Anthropic, especialmente la falta de acceso a documentación y recursos sobre optimización de compiladores. Para dem
Compiladores: ¿Siempre dan el mismo resultado?
El artículo explora la pregunta de si los compiladores son deterministas, un tema crucial en el desarrollo de software, especialmente con la creciente integración de modelos de lenguaje grandes (LLMs). La respuesta, según el autor, depende de si se considera desde una perspectiva teórica (ciencia de
Mini-lenguajes: programación en código reducido
Este artículo de Taylor Troesh explora el fascinante mundo de los "Lil' Fun Langs", o lenguajes de programación muy pequeños. La idea central es que es posible crear lenguajes de programación funcionales y con tipado estático con una cantidad sorprendentemente baja de código. El artículo no solo pre
Optimizador Toy: análisis de alias para código más eficiente
Este artículo del blog de Bernstein Bear explora una técnica llamada 'análisis de alias basado en tipos' (TBAA) dentro del contexto de un optimizador de código (Toy Optimizer). El objetivo es mejorar la capacidad del optimizador para comprender cómo los diferentes objetos en la memoria interactúan e
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
ACK: El Kit de Compilación Retro que Vuelve
El Amsterdam Compiler Kit (ACK) es una herramienta de compilación completa, un conjunto de herramientas (toolchain) diseñado originalmente en la Vrije Universiteit de Ámsterdam en la década de 1980 y revitalizado por David Given. Su objetivo principal es permitir la compilación de código fuente en e
Compiladores GCC y Clang: Código Ineficiente con Arrays
Investigadores han descubierto comportamientos inesperados e ineficientes en el código generado por los compiladores GCC y Clang al trabajar con arrays de diferentes tamaños. El problema surge al verificar si un array contiene solo ceros, una tarea aparentemente sencilla. Al variar el tamaño del arr
IA compila Linux: Anthropic desafía a GCC
Anthropic ha desarrollado un compilador de C llamado CCC (Claude’s C Compiler), construido íntegramente con Claude Opus 4.6, un modelo de lenguaje de IA. El objetivo era verificar la afirmación de que CCC podía compilar el kernel de Linux, un logro significativo dada la complejidad de los compilador
