Please enable JavaScript.
Coggle requires JavaScript to display documents.
Traditional Two-Pass Compiler, Saul Larios Xochitiotzi - Coggle Diagram
Traditional Two-Pass Compiler
Definición
Traduce programas de alto nivel
Genera código máquina
Se divide en dos etapas principales
Pass 1: Front-End
Objetivo
Analizar el programa fuente
Detectar errores
Generar representación intermedia
Análisis Léxico
Reconoce tokens
Identificadores
Palabras reservadas
Operadores
Análisis Sintáctico
Verifica gramática
Construye árbol sintáctico
Detecta errores de sintaxis
Análisis Semántico
Verifica tipos de datos
Valida declaraciones
Comprueba reglas del lenguaje
Representación Intermedia (IR)
Independiente del hardware
Base para optimización
Conecta Front-End y Back-End
Pass 2: Back-End
Objetivo
Generar código eficiente
Traducir a la arquitectura destino
Optimización de Código
Reduce instrucciones innecesarias
Mejora rendimiento
Reduce uso de recursos
Asignación de Registros
Utiliza registros de CPU
Minimiza accesos a memoria
Generación de Código
Convierte IR a instrucciones máquina
Produce código objeto
Código Máquina
Ejecutable final
Dependiente de la arquitectura
Flujo General
Código Fuente
↓
Front-End
↓
Representación Intermedia (IR)
↓
Back-End
↓
Código Objeto
↓
Programa Ejecutable
Ventajas
Separación de responsabilidades
Portabilidad
Reutilización del Front-End
Reutilización del Back-End
Facilidad de optimización
Componentes Principales
Lexer
Parser
Analizador Semántico
Optimizador
Generador de Código
Objetivos
Correctitud
Optimización
Eficiencia
Generación de código rápido
Preservación semántica
Saul Larios Xochitiotzi