Preguntas etiquetadas con compilers

15
¿Por qué separar lexing y parsing?

Es posible analizar un documento con una sola pasada desde una máquina de estado. ¿Cuál es el beneficio de tener dos pases, es decir. ¿Tiene un lexer para convertir texto en tokens y un analizador para probar las reglas de producción en esos tokens? ¿Por qué no tener una sola pasada que aplique las...

12
¿Cómo es esta gramática LL (1)?

Esta es una pregunta del Libro del Dragón. Esta es la gramática: S→AaAb∣BbBaS→AaAb∣BbBaS \to AaAb \mid BbBa B → εA→εA→εA \to \varepsilon B→εB→εB \to \varepsilon La pregunta pregunta cómo mostrar que es LL (1) pero no SLR (1). Para demostrar que es LL (1), intenté construir su tabla de...

11
Inferir tipos de refinamiento

En el trabajo, se me ha encomendado la tarea de inferir cierta información sobre un lenguaje dinámico. Reescribo secuencias de declaraciones en letexpresiones anidadas , así: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x...

10
Comenzando con el Análisis del Programa

Estoy buscando recursos para comenzar con el análisis de programas . El único libro que he encontrado sobre el tema es el libro de Nielson & Nielson . Aparte de eso, parece que solo hay libros de "compilación" donde el "análisis de programa" sería un capítulo, o algo por el estilo. ¿La...

9
Diagrama T del compilador cruzado

Estoy estudiando Bootstrapping de Red Dragon Book Compilers y encontré que el diagrama T para el compilador cruzado es bastante confuso. No puedo entender lo que significa "Ejecutar compilador1 a través de compilador2". ¿Alguien puede proporcionar una mejor explicación, analogía o un ejemplo para...