RunMat, el compilador de MATLAB en Rust, detalla su arquitectura en etapas

Fuentes: Inside RunMat's MATLAB Compiler Pipeline

RunMat es un runtime y compilador escrito en Rust para el ecosistema de MATLAB, diseñado para ejecutar código científico e ingenieril de forma correcta y eficiente. Este artículo técnico explica por qué MATLAB requiere un pipeline semántico y cómo RunMat lo implementa. MATLAB no es solo un lenguaje de scripting matricial; su sintaxis compacta depende del contexto para resolver ambigüedades: una misma expresión puede ser una llamada a función, un constructor de clase o un acceso a propiedad. Por ejemplo, 'SignalModel(samples)' puede ser varias cosas según el ámbito. RunMat aborda esto con un pipeline de compilación por etapas: el código fuente se transforma en un AST, luego en un HIR semántico que resuelve nombres y significados, después en un MIR que facilita el análisis de flujo, y finalmente en bytecode para la máquina virtual. Esta separación permite que las decisiones semánticas se tomen una vez y sean reutilizadas por el intérprete, el JIT, el servidor de lenguaje y otras herramientas. El artículo profundiza en el HIR semántico como producto central del compilador, donde se registran funciones, clases, enlaces y módulos. También discute el ABI de MATLAB (nargin, nargout) y cómo se modela. El objetivo es lograr compatibilidad con código MATLAB existente, permitiendo ejecución, compilación anticipada o empaquetado estático. La arquitectura actual de RunMat (versión 0.5+) ya implementa este pipeline, y el texto invita a explorar la documentación detallada de cada etapa.