Retos técnicos al construir un formateador para el lenguaje Gren

Este artículo describe los problemas técnicos que surgieron al construir gren-format, un formateador de código para el lenguaje Gren, y las decisiones de diseño adoptadas para resolverlos. Como Gren todavía está en evolución, el formateador no tiene un analizador sintáctico propio: reutiliza el pars

DuckDB v2.0 sustituye su analizador SQL por uno basado en PEG

DuckDB v2.0 reemplaza el analizador sintáctico (parser) SQL derivado de PostgreSQL que utilizaba desde su primer commit en 2018 por uno nuevo basado en PEG (Parsing Expression Grammars). El cambio no altera el dialecto SQL que acepta DuckDB —al que los autores denominan informalmente DuckSQL y que m

Una clase pequeña para construir analizadores léxicos sin generadores

El autor repasa su experiencia con el análisis sintáctico: las herramientas generadoras como Lemon resolvían el problema a costa de producir código difícil de leer y mantener, mientras que los analizadores escritos a mano eran rápidos pero acababan repitiendo los mismos patrones (saltar espacios, co

Las trampas de analizar declaraciones con inferencia de tipos en C

En C moderno, la palabra clave auto permite declarar variables con tipo inferido, pero su análisis sintáctico encierra ambigüedades que enfrentan a GCC y Clang en sentidos opuestos. Cuando en un ámbito interno existe un typedef con el mismo nombre que el identificador de la declaración, ambos compil

Sätteri: un motor de Markdown en Rust con plugins de JavaScript

Sätteri es una herramienta de procesamiento de Markdown que combina un motor de análisis sintáctico escrito en Rust con un sistema de plugins flexible en JavaScript. La arquitectura busca aunar la velocidad de Rust en las tareas intensivas de cálculo con la agilidad del ecosistema JavaScript para ex

Construyamos un intérprete sencillo de APL en Python (parte 1)

El programador Rodrigo Girão Serrão inicia una serie de artículos en los que documenta paso a paso la construcción de un intérprete para el lenguaje APL escrito en Python. El proyecto, inspirado en la serie «Let's build a simple interpreter» de Ruslan Spivak (centrada en Pascal), nace como un ejerci

kparser: un parser pedagógico en C para el lenguaje K

kparser es un pequeño parser escrito en un único fichero en C (unas 570 líneas con comentarios) para el lenguaje de programación K, pensado como referencia pedagógica. Su objetivo es hacer legible la gramática de K, uno de los lenguajes con la gramática estructural más compacta: apenas cinco producc

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

Syntaqlite: IA acelera herramientas para SQLite

Este artículo narra la historia de Lalit Maganti, un ingeniero que durante ocho años deseó crear un conjunto de herramientas de desarrollo (devtools) de alta calidad para SQLite, una base de datos embebida crucial en la industria. La dificultad radicaba en la ausencia de herramientas adecuadas para