Para depositar en Docta Complutense, identifícate con tu correo @ucm.es en el SSO institucional. Haz clic en el desplegable de INICIO DE SESIÓN situado en la parte superior derecha de la pantalla. Introduce tu correo electrónico y tu contraseña de la UCM y haz clic en el botón MI CUENTA UCM, no autenticación con contraseña.

Incorporación de la forma SSA a la máquina virtual de CIRCOM

dc.contributor.advisorRubio Gimeno, Alberto
dc.contributor.advisorRodríguez Núñez, Clara (Col.)
dc.contributor.authorCalvarro Marines, Mario
dc.date.accessioned2025-10-09T11:15:20Z
dc.date.available2025-10-09T11:15:20Z
dc.date.issued2025
dc.degree.titleDoble Grado en Ingeniería Informática y Matemáticas
dc.descriptionTrabajo de Fin de Doble Grado en Ingeniería Informática y Matemáticas, Facultad Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2024/2025.
dc.description.abstractEste proyecto expande el compilador de CIRCOM mediante la introducción de una Representación Intermedia (IR) de la Máquina Virtual de CIRCOM (CVM), basada en un Grafo de Control del Flujo (CFG) construido directamente en forma de Asignación Única Estática (SSA). CIRCOM es un lenguaje de dominio específico para la construcción de circuitos aritméticos en sistemas de pruebas de conocimiento cero, donde la eficiencia y la corrección del compilador son aspectos críticos. Para lograr este objetivo, se implementó para la CVM un parser, un Árbol de Sintaxis Abstracta (AST) y un verificador de tipos, todos ellos implementados en Rust. El nuevo flujo del compilador construye el CFG en forma SSA desde el inicio, evitando la necesidad de transformaciones posteriores. Sobre esta base, se implementó un algoritmo de análisis de vivacidad, lo que permite un análisis de programas más preciso y abre la puerta a optimizaciones avanzadas futuras. La IR resultante mejora la capacidad de análisis y la eficiencia de los programas de la CVM, a la vez que proporciona una base sólida para futuras mejoras del compilador, como nuevas pasadas de optimización y técnicas de verificación formal.
dc.description.abstractThis project enhances the CIRCOM compiler by introducing an Intermediate Representation of the CIRCOM Virtual Machine (CVM) based on a Control Flow Graph constructed in Static Single Assignment (SSA) form. CIRCOM is a domain-specific language for building arithmetic circuits in zero-knowledge proof systems, where compiler efficiency and correctness are critical. To achieve this, the CVM was extended with a parser, Abstract Syntax Tree (AST) and typechecker, all implemented in Rust. The new pipeline constructs the CFG in SSA form from the start, avoiding the need for later transformations. On top of this foundation, a liveness analysis algorithm was implemented, enabling more precise program analysis and opening the door to future advanced optimizations. The resulting IR improves the ease of analysis and efficiency of CVM programs, while providing a solid basis for future compiler enhancements such as optimization passes and formal verification techniques.
dc.description.departmentDepto. de Sistemas Informáticos y Computación
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.identifier.urihttps://hdl.handle.net/20.500.14352/124722
dc.language.isoeng
dc.page.total96
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 Internationalen
dc.rights.accessRightsopen access
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/
dc.subject.keywordCIRCOM
dc.subject.keywordDiseño de compiladores
dc.subject.keywordRepresentación intermedia
dc.subject.keywordMáquina virtual
dc.subject.keywordAsignación única estática
dc.subject.keywordGrafo de flujo de control
dc.subject.keywordAnálisis de vivacidad
dc.subject.keywordRust
dc.subject.keywordPruebas de conocimiento cero
dc.subject.keywordOptimización de programas
dc.subject.keywordCompiler Design
dc.subject.keywordIntermediate Representation
dc.subject.keywordVirtual Machine
dc.subject.keywordStatic Single Assignment
dc.subject.keywordControl Flow Graph
dc.subject.keywordLiveness Analysis
dc.subject.keywordRust
dc.subject.keywordZero-knowledge proofs
dc.subject.keywordProgram optimization
dc.subject.ucmInformática (Informática)
dc.subject.unesco33 Ciencias Tecnológicas
dc.titleIncorporación de la forma SSA a la máquina virtual de CIRCOM
dc.titleIntroducing the SSA form in the CIRCOM Virtual Machine
dc.typebachelor thesis
dc.type.hasVersionAM
dspace.entity.typePublication
relation.isAdvisorOfPublicationfdfffd91-34f6-4e0a-9fce-0c38ab083383
relation.isAdvisorOfPublication.latestForDiscoveryfdfffd91-34f6-4e0a-9fce-0c38ab083383

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Incorporación _ SSA_circom.pdf
Size:
1.09 MB
Format:
Adobe Portable Document Format