Please enable JavaScript.
Coggle requires JavaScript to display documents.
Compiladores de Dos Pasos. Lectura 8 - Coggle Diagram
Compiladores de Dos Pasos. Lectura 8
Conceptos Básicos
Lenguaje fuente (Ls)
código escrito por el programador
Lenguaje destino (Lt)
código máquina ejecutable
Lenguaje de implementación (Li)
usado para construir intérpretes o compiladores
Tecnologías de Implementación
Intérprete
ejecuta directamente el programa fuente
Compilador
traduce a otro lenguaje
normalmente de bajo nivel
Máquina virtual
interpreta bytecode intermedio
Estructura del Compilador
Frontend
Lexer
análisis léxico,
tokens
Parser
análisis sintáctico
AST
Semantic analyser
chequeo de tipos
variables declaradas
IR generator
genera representación intermedia (IR)
Backend
Instruction selection
elegir instrucciones para cada operación IR
Register allocation
asignar valores a registros
problema NP-completo
Instruction scheduling
evitar stalls
usar unidades funcionales eficientemente
Compilador de Dos Pasos
Elementos
Frontend
traduce código fuente a IR
Backend
traduce IR a código máquina
Ventaja
dmite múltiples frontends y backends
Desafío
codificar todo en un IR común
Compilador de Tres Pasos
Frontend → IR → Middle-end → Backend
Middle-end
optimización de código
tiempo
espacio
energía
Optimizer
múltiples pases
propagación de constantes
eliminación de redundancias
vectorización
paralelización