Análisis. FronEnd.Síntesis. BackEnd.Analizador léxicoreglas lexicas: {expresion regular: simbolo}[]escanea con expresiones regulares(codigo fuente): Simbolo[]guarda en tabla de simbolos(simbolo)Algunas veces llamado «Lexer», otras «Scanning»Analizador sintácticoreglas de produccioncrea un árbol basado en reglas gramaticales(símbolos): ASTAlgunas veces llamado «parsing»Analizador semánticodefinición del lenguajecomprueba consistencia segun la definición del lenguaje()Generador de código intermediocódigo independiente de máquina para facilitar la reutilizacióngenera código intermedio(): IR three-adress codeOptimización independiente de la máquinaoptimiza para ser más rápido o eficiente en uso de energia(IR): IROptmización de código dependiente de la máquinaoptimiza usando los mecanismos del lenguaje objetivo(IR)Generador de códigotraduce a lenguaje objetivo(): lenguaje objetivo usualmente código máquinaLLVMFlujo de caracterescodigo fuentefloat calificacion = if (alumno=="Aho") then 10 else 6;tipoArchivo[]Código de máquina objetivoTabla de símbolosTOKENLEXEMATIPO_DE_DATOfloatIDENTIFICADOR_1calificacionASIGNACION=IFifLPAREN(IDENTIFICADOR_2alumnoEQ=LITERAL"Aho"RPAREN)THENthenNUMERO10ELSEelseSEMICOLON;++......Simbolotoken // ¿cómo creamos sequenciassignificativas para ser manipuladas?lexema // ¿cuál es esa sequencia?por convenencia, algunas veces el tokenserá igual al lexema, por ejemplo +, ypor tanto será el lexema es omitidoLexFlexJFlexBisonCupYaccguardaflujo de simbolos -no terminales-.árbol sintáctico (AST)árbol sintáctico (AST decorado)representación intermedia (IR)representación intermediacódigo de máquina objetivo