Análisis sintáctico 1
|
|
|
- José Carlos Murillo Palma
- hace 9 años
- Vistas:
Transcripción
1 Análisis sintáctico 1
2 Análisis sintáctico 1. Introducción 2. Análisis descendente (top-down) 2.1 Análisis con backtracking 2.2 Análisis predictivo Método recursivo Método iterativo 3. Análisis ascendente 3.1 LR parsing (bottom-up) SLR LR canónico LALR 3.2 YACC (parser generator) 2
3 1. Introducción Objetivo del análisis sintáctico: Conocer si la sentencia que se analiza pertenece, o no, al lenguaje (no se tiene en cuenta el aspecto semántico). Relación entre análisis léxico y sintáctico Programa Fuente Analizador Léxico (1) (2) Analizador Sintáctico (1) next token? (2) token 3
4 1. Introducción Construcción del analizador sintáctico (parser) By hand Lenguaje Gramática PARSER Tool 4
5 1. Gramáticas y tipos de análisis Nos centraremos en las gramáticas libres de contexto: (context-free grammars) (tipo 2 según Chomsky) Métodos de análisis sintáctico: A) Reconocedores universales B) Reconocedores top-down C) Reconocedores bottom-up 5
6 1. Métodos de reconocimiento A) Universales Ventaja: son válidos para cualquier gramática libre de contexto. Desventaja: su excesiva generalidad no permite que los reconocedores estén muy optimizados (son muy lentos) 6
7 1. Métodos de reconocimiento B) Métodos top-down Ventaja: Desventaja: reconocedores muy rápidos válidos para gramáticas LL(k) C) Métodos bottom-up Desventaja: Ventaja: los reconocedores son rápidos (pero no tanto como los reconocedores top-down) válidos para gramáticas SLR(k), LRc(k), LALR(k), que son un superconjunto de las gramáticas LL(k) 7
8 2. Análisis descendente (top-down) Fundamento básico: Generación de la sentencia mediante la left-most derivation EXPR EXPR + TERM TERM TERM TERM * FACT FACT FACT id cte ( EXPR ) 8
9 2. Análisis descendente (top-down) EXPR a + b * ( c + 2 ) 9
10 2.1 Análisis con backtracking EXPR EXPR + TERM EXPR + TERM TERM FACT FACT NO HAY MATCH- ING id id a + b * ( c + 2 ) 10
11 2.1 Análisis con backtracking Ventajas Desventajas Política sencilla de prueba y error. Para gramáticas de un tamaño normal no resulta aplicable debido al excesivo tiempo de computación. La aplicación del método no garantiza que la gramática no sea ambigua. 11
12 2.2 Análisis predictivo EXPR podemos decidir en función de un símbolo de lookahead? a + b * ( c + 2 ) símbolo de lookahead 12
13 Concepto de PRIMEROS Notación PRIMEROS (símbolo/cadena) = P(símbolo/cadena) P(a) = { a } a Є Vt P(N) = P(α1) U P(α2) U P(αn) N Є Vn N α1 α2 αn Si ε Є P(αi) entonces hay que añadir los SIGUIENTES(N) al conjunto de P(N) 13
14 Condiciones necesaria y suficiente para predecir N Є Vn N α1 α2 αn 1. P(αi) P(αj) = Ø Para todo i j 2. Si ε ЄP(αi) debe cumplirse que: S(N) P(αj) = Ø Para todo j i S(N) = SIGUIENTES(N) 14
15 Ejemplo EXPR EXPR + TERM TERM TERM TERM * FACT FACT FACT id cte ( EXPR ) P(EXPR)= P(EXPR) U P(TERM) = { id, cte, ( } P(TERM)= P(TERM) U P(FACT) = { id, cte, ( } P(FACT)= { id, cte, ( } No podemos realizar análisis sintáctico mediante el método de descenso (top-down) predictivo. 15
16 Recursividad por la izquierda Toda gramática recursiva por la izquierda no es válida para reconocimiento por descenso predictivo. N N α β Primer símbolo (β) N P(N)= P(N) U P(β) P(Nα) P(β) Ø Por tanto, no podemos discernir entre las dos opciones de la regla N la hora de realizar un descenso predictivo. 16
17 Eliminación de la recursividad por la izquierda L L α1 L α2 L αn β1 β2 βp Podemos generar las mismas cadenas de la siguiente forma: L C R C β1 β2 βp R α1 R α2 R αn R ε 17
18 Ejemplo G: EXPR EXPR + TERM TERM TERM TERM * FACT FACT FACT id cte ( EXPR ) G : EXPR TERM REXPR REXPR + TERM REXPR ε TERM FACT RTERM RTERM * FACT RTERM ε FACT id cte ( EXPR ) 18
19 Calculamos PRIMEROS para G P(EXPR) = P(TERM) = { id, cte, ( } P(REXPR) = { +, ε } Añadimos los S(REXPR) = { $, ) } P(TERM) = P(FACT) = { id, cte, ( } P(RTERM) = { *, ε } Añadimos los S(RTERM) = { +, $, ) } P(FACT) = { id, cte, ( } Por tanto, podemos realizar un reconocedor descendente predictivo para la gramática G. 19
20 Factorización EXPR TERM + EXPR TERM TERM FACTOR * TERM FACTOR FACTOR id cte ( EXPR ) En este caso tenemos una gramática para expresiones que es recursiva por la derecha. Sin embargo, no podemos utilizar un reconocedor descendente predictivo porque existen reglas cuyas opciones tienen el mismo encabezado. SOLUCIÓN Factorizar dichas reglas 20
21 Factorización EXPR TERM REXPR REXPR + EXPR ε TERM FACTOR RTERM RTERM * TERM ε FACTOR id cte ( EXPR ) Si realizamos el cálculo de los PRIMEROS para esta gramática modificada tenemos lo siguiente: 21
22 Cálculo de PRIMEROS P(EXPR) = P(TERM) = { id, cte, ( } P(REXPR) = { +, ε } Añadimos los S(REXPR) = { ), $ } P(TERM) = P(FACTOR) = { id, cte, ( } P(RTERM) = { *, ε } Añadimos los S(RTERM) = { +, ), $ } P(FACTOR) = { id, cte, ( } Luego, si podemos utilizar un reconocedor descendente predictivo 22
23 Implementación Reconocedores descendentes predictivos Implementación recursiva Implementación iterativa 23
24 2.2.1 Implementación recursiva PROCEDIMIENTO DE CONSTRUCCIÓN 1. Para cada regla (símbolo no terminal) debe construirse un procedimiento sin parámetros cuyo nombre será el del propio símbolo no terminal. 2. En función de los PRIMEROS, cada procedimiento implementa las diversas alternativas de su regla 3. Cada alternativa de una regla se implementa de la siguiente forma: 24
25 2.2.1 Implementación recursiva 3.1 Un símbolo no terminal se implementa mediante una llamada al procedimiento de dicho símbolo. 3.2 Un símbolo terminal se implementa comprobando que el símbolo de lookahead actual se corresponde con el símbolo terminal. Caso de ser cierto, el analizador léxico debe localizar el siguiente símbolo de lookahead. En caso contrario, detenemos el proceso de análisis porque existe un error sintáctico. 25
26 Ejemplo Utilizaremos como ejemplo la gramática de expresiones que hemos factorizado anteriormente. EXPR TERM REXPR REXPR + EXPR ε TERM FACTOR RTERM RTERM * TERM ε FACTOR id cte ( EXPR ) Construyamos los procedimientos para los dos primeros símbolos no terminales: EXPR y REXPR 26
27 Procedimiento EXPR (versión 1) EXPR ( ) { TERM ( ); REXPR ( ); } Esta primera versión no utiliza los PRIMEROS puesto que no existen diversas alternativas en la regla. Sin embargo, se puede realizar una detección precoz de errores si añadimos al control de la única alternativa de esta regla el conocimiento de los PRIMEROS: 27
28 Procedimiento EXPR (versión 2) EXPR ( ) { if ( lookahead = { id, cte, ( } ) { TERM ( ); REXPR ( ); } else error ( ); } 28
29 Procedimiento REXPR REXPR ( ) { if (lookahead = { + } ) / alternativa 1 { lookahead = yylex ( ); / matching del símbolo + EXPR ( ); return ( ); } if (lookahead = { ), $ } ) / alternativa 2 return ( ); } error ( ); / ninguna alternativa es válida 29
30 2.2.2 Implementación iterativa Se trata de construir un programa que desarrolle el proceso de análisis sintáctico descendente predictivo basándose en una tabla de reconocimiento. El programa lleva a cabo el reconocimiento de la misma forma que lo hemos desarrollado manualmente. La tabla para la gramática utilizada en la implementación recursiva es la siguiente: 30
31 2.2.2 Implementación iterativa cte id + * ( ) $ EXPR TERM REXPR TERM REXPR TERM REXPR REXPR + EXPR ε ε TERM FACTOR RTERM FACTOR RTERM FACTOR RTERM RTERM ε * TERM ε ε FACTOR cte id ( EXPR ) 31
32 Gramáticas LL(k) Toda gramática a la que se puede aplicar un reconocedor descendente predictivo pertenece a un conjunto de gramáticas denominado LL(k), siendo K el número de símbolos de lookahead que se utilizan. El conjunto LL(k) es un subconjunto del total de gramáticas libres de contexto. Por tanto, existen muchas gramáticas libres de contexto que no pueden ser analizadas mediante reconocedores descendentes predictivos. 32
33 3. ANÁLISIS ASCENDENTE 3.1 LR parsing (bottom-up) SLR LR canónico LALR 3.2 YACC (parser generator) 33
34 3.1 LR parsing FUNDAMENTOS 1. Bottom-Up (frente a top-down) 2. Utiliza la derivación más a la derecha (right-most derivation) (frente a left-most derivation) Siglas LR: L Left to right scanning R Right-most derivation 34
35 Ejemplo S a A B e A A b c b B d Usemos derivaciones right-most: S aabe aade aabcde abbcde 35
36 Por qué no se elige derivación a izquierdas? S A B C A M N B O P C Q R M m Qué sucede al realizar el análisis bottom-up? N n O o P p Q q R r S ABC MNBC mnbc mnbc mnopc mnopc mnopc mnopqr mnopqr mnopqr 36
37 Implementación basada en una PILA S a A B e A A b c b B d S aabe aade aabcde abbcde PILA + acciones SHIFT + acciones REDUCE 37
38 PILA + SHIFT + REDUCE PILA CADENA ACCIONES abbcde$ shift a bbcde$ shift ab bcde$ reduce A b aa bcde$ shift aab cde$ shift aabc de$ reduce A Abc aa de$ shift aad e$ reduce B d aab e$ shift aabe $ reduce S aabe S $ ACEPTADA 38
39 Modelo general de reconocedor LR CADENA t1 t2 t3 t i tn $ S m V m Reconocedor LR SA LIDA (código ejecutado al reducir las reglas) S m-1 V m-1... V 1 S0 acciones goto TAB LA (generada a partir de la gramática) PILA S i Estados del reconocedor V i Símbolo del vocabulario (terminal o no terminal) 39
40 Ejemplo Dada la siguiente gramática para expresiones: 1) E E + T 2) E T 3) T T * F 4) T F 5) F ( E ) 6) F id La tabla de reconocimiento LR es la siguiente: 40
41 41 Tabla de reconocimiento R3 R3 R3 R3 10 R5 R5 R5 R5 11 R1 R1 S7 R1 9 S11 S S4 S S4 S5 6 R6 R6 R6 R S4 S5 4 R4 R4 R4 R4 3 R2 R2 S7 R2 2 O.K. S S4 S5 0 F T E $ ) ( * + id GOTO ACCIONES Estado
42 Construcción de las tablas Las tablas que utiliza un reconocedor LR se generan a partir del correspondiente autómata LR. Veamos el autómata para la siguiente gramática: S a A B e A A b c b B d 42
43 Autómata SLR (Simple LR) S0 S --> ^ S S --> ^ aabe S a S1 S2 S4 S5 A --> b^ S --> aab^e e S8 S1 S --> S ^ S6 A --> Ab^c c S9 S2 S --> a^abe A --> ^Abc A --> ^b A b S3 S4 S7 S8 B --> d^ S --> aabe^ S3 S --> aa^be A --> A^bc B --> ^d B b d S5 S6 S7 S9 A --> Abc^ 43
44 Autómata: reconocedor de prefijos válidos S a A B e A A b c b B d S ] aabe ] aad ] e aabc ] de ab ] bcde Prefijos = { S, a, aa, aab, aabe, aad, aab, aabc, ab } 44
45 Construcción de la tabla de reconocimiento Necesitamos conocer: 1. El autómata correspondiente 2. Los SIGUIENTES de cada símbolo no-terminal En el ejemplo que nos ocupa, los SIGUIENTES son: SIGUIENTES (S) = { $ } SIGUIENTES (A) = { d, b } SIGUIENTES (B) = { e } 45
46 Tabla de reconocimiento Estado a b Acciones c d e $ S Goto A B S0 S2 1 S1 O.K. S2 S4 3 S3 S6 S7 5 S4 R3 R3 S5 S8 S6 S9 S7 R4 S8 R1 S9 R2 R2 46
47 Ejercicio 1) E E + T 2) E T 3) T T * F 4) T F 5) F ( E ) 6) F id a) Obtener el autómata SLR y la tabla de reconocimiento b) Reconocer la cadena: id + id * ( id + id ) 47
48 Ejercicio: estados del autómata SLR S0: E ^ E S4:F ( ^ E ) S7: T T * ^ F E ^ E + T E ^ E + T F ^ (E) E ^ T E ^ T F ^ id T ^ T * F T ^ T * F T ^ F T ^ F S8: F ( E ^ ) F ^ (E) F ^ (E) E E ^ + T F ^ id F ^ id S9: E E + T ^ S1: E E ^ S5: F id ^ T T ^ * F E E ^ + T S6: E E + ^ T S10: T T * F ^ S2: E T ^ T ^ T * F T T ^ * F T ^ F S11: F (E) ^ F ^ (E) S3: T F ^ F ^ id 48
49 Ejercicio: transiciones del autómata SLR S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 id S5 S5 S5 S5 + S6 S6 * S7 S7 ( S4 S4 S4 S4 ) S11 E S1 S8 T S2 S2 S9 F S3 S3 S3 S10 49
50 50 Ejercicio: tabla de reconocimiento SLR R3 R3 R3 R3 10 R5 R5 R5 R5 11 R1 R1 S7 R1 9 S11 S S4 S S4 S5 6 R6 R6 R6 R S4 S5 4 R4 R4 R4 R4 3 R2 R2 S7 R2 2 O.K. S S4 S5 0 F T E $ ) ( * + id GOTO ACCIONES Estado
51 Ejercicio: reconocer la cadena id + id * ( id + id ) Se deja como ejercicio 51
52 3. ANÁLISIS ASCENDENTE 3.1 LR parsing (bottom-up) SLR LR canónico LALR 3.2 YACC (parser generator) 52
53 3.1.1 Límites de los reconocedores SLR Supongamos la siguiente gramática: 1) S L = R 2) S R 3) L * R 4) L id 5) R L Es reconocible mediante reconocimiento SLR? 53
54 Estados del autómata SLR S0: S ^ S S5: L id ^ S ^ L = R S ^ R S6: S L = ^ R L ^ * R R ^ L L ^ id L ^ * R R ^ L L ^ id S1: S S ^ S7: L * R ^ S2: S L ^ = R S8: R L ^ R L ^ S9: S L = R ^ S3: S R ^ S4: L * ^ R R ^ L L ^ * R L ^ id 54
55 Transiciones del autómata SLR S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 id S5 S5 S5 = S6 * S4 S4 S4 S S1 L S2 S8 S8 R S3 S7 S9 55
56 Tabla de reconocimiento SLR ESTADO id ACCIONES = * $ S GOTO L R S0 S5 S S1 O.K. S2 S6 / R5 R5 S3 R2 S4 S5 S4 8 7 S5 R4 R4 S6 S5 S4 8 9 S7 R3 R3 S8 R5 R5 S9 R1 56
57 Conclusiones Existe una casilla de la tabla de reconocimiento (S2,=) que tiene 2 acciones: S6 : shift 6 R5 : reduce 5 Por tanto, existe un conflicto SHIFT-REDUCE y la gramática no se puede reconocer mediante un reconocedor SLR. 57
58 Tipos de conflictos y ambigüedad Los conflictos que pueden darse en los reconocedores ascendentes son los siguientes: 1. SHITF-REDUCE 2. REDUCE-REDUCE Toda gramática ambigua genera uno o varios conflictos en los reconocedores ascendentes. La aparición de conflictos no significa necesariamente que la gramática sea ambigua (de hecho, la gramática del ejemplo anterior no es ambigua y había un conflicto). 58
59 Gramática no ambigua que genera conflictos 1) S L = R 2) S R 3) L * R 4) L id 5) R L Porqué esta gramática no ambigua genera conflictos? El reconocedor SLR no contiene la suficiente información sobre la gramática. Se hace necesario utilizar reconocedores LR más precisos. 59
60 3.1.2 Reconocedores LR canónicos S0: S ^ S { $ } S4: L * ^ R { = } S ^ L = R { $ } R ^ L { = } S ^ R { $ } L ^ * R { = } L ^ * R { = } L ^ id { = } L ^ id { = } R ^ L { $ } S5: L id ^ { = } S1: S S ^ { $ } S6: S L = ^ R { $ } R ^ L { $ } S2: S L ^ = R { $ } L ^ * R { $ } R L ^ { $ } L ^ id { $ } S3: S R ^ { $ } S7: L * R ^ { = } 60
61 3.1.2 Reconocedores LR canónicos S8: R L ^ { = } S9: S L = R ^ { $ } S10: R L ^ { $ } S11: L * ^ R { $ } R ^ L { $ } L ^ * R { $ } L ^ id { $ } S12: L id ^ { $ } S13: L * R ^ { $ } 61
62 Tabla de transiciones S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 id S5 S5 S12 S12 = S6 * S4 S4 S11 S11 S S1 L S2 S8 S10 S10 R S3 S7 S9 S13 62
63 63 Tabla de reconocimiento LR canónico R L 1 S G O T O R3 R4 R5 R1 R2 R5 O.K. $ S11 S11 S4 S4 * R5 R3 R4 S6 = S12 S12 S5 S5 id A C C I O N E S S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0 Estados
64 Conclusiones No aparece ningún conflicto. Por tanto, no era un problema de ambigüedad de la gramática, sino que el reconocedor SLR no era tan preciso como el reconocedor LR canónico. En particular, la reducción de una regla N. se realiza ante todos los SIGUIENTES(N) en SLR. Por el contrario, la reducción de una regla N. se realiza ante un subconjunto de los SIGUIENTES(N) en el reconocedor LR canónico. 64
65 Ejercicio Dada la siguiente gramática: 1. S CC 2. C cc 3. C d Se pide: 1. Autómata de reconocimiento LR canónico 2. Tabla de reconocimiento correspondiente 65
66 Estados del autómata LR canónico S0:S ^ S { $ } S4: C d ^ { c, d } S ^ CC { $ } C ^ cc { c, d } S5: S CC ^ { $ } C ^ d { c, d } S6: C c ^ C { $ } S1:S S ^ { $ } C ^ cc { $ } C ^ d { $ } S2:S C ^ C { $ } C ^ cc { $ } S7: C d ^ { $ } C ^ d { $ } S8: C cc ^ { c, d } S3:C c ^ C { c, d } C ^ cc { c, d } S9: C cc ^ { $ } C ^ d { c, d } 66
67 Transiciones del autómata LR canónico S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 c S3 S6 S3 S6 d S4 S7 S4 S7 S S1 C S2 S5 S8 S9 67
68 Tabla de reconocimiento Estados c ACCIONES d $ S GOTO C S0 S3 S4 1 2 S1 O.K. S2 S6 S7 5 S3 S3 S4 8 S4 R3 R3 S5 R1 S6 S6 S7 9 S7 R3 S8 R2 R2 S9 R2 68
69 SLR y LR canónico: ventajas / desventajas Ventaja fundamental LR canónico Reconoce un conjunto mayor de gramáticas que SLR. Desventaja fundamental El número de estados del reconocedor aumenta de forma considerable respecto de SLR 69
70 3.1.3 Reconocedores LALR Se trata de un punto intermedio entre SLR y LR canónico. La idea es reducir el número de estados de un reconocedor LR canónico mediante la fusión de estados que son idénticos (salvo en la lista de SIGUIENTES asociada a cada regla). Al fusionar los estados tenemos que modificar las transiciones correspondientes. Además, la lista de SIGUIENTES de un estado fusionado es la UNION de las listas de los estados que se han fusionado. 70
71 Ejemplo Dada la siguiente gramática: Se pide: 1. S CC 2. C cc 3. C d 1. Autómata de reconocimiento LALR 2. Tabla de reconocimiento correspondiente 71
72 Estados del autómata LR canónico S0:S ^ S { $ } S4: C d ^ { c, d } S ^ CC { $ } C ^ cc { c, d } S5: S CC ^ { $ } C ^ d { c, d } S6: C c ^ C { $ } S1:S S ^ { $ } C ^ cc { $ } C ^ d { $ } S2:S C ^ C { $ } C ^ cc { $ } S7: C d ^ { $ } C ^ d { $ } S8: C cc ^ { c, d } S3:C c ^ C { c, d } C ^ cc { c, d } S9: C cc ^ { $ } C ^ d { c, d } 72
73 Estados del autómata LALR S0: S ^ S { $ } S47: C d ^ { c, d, $ } S ^ CC { $ } C ^ cc { c, d } S5: S CC ^ { $ } C ^ d { c, d } S89: C cc ^ { c, d, $ } S1: S S ^ { $ } S2: S C ^ C { $ } C ^ cc { $ } C ^ d { $ } S36: C c ^ C { c, d, $ } C ^ cc { c, d, $ } C ^ d { c, d, $ } 73
74 Tabla de reconocimiento LALR ESTADOS c ACCIONES d $ S GOTO C S0 S36 S S1 O.K. S2 S36 S47 5 S36 S36 S47 89 S47 R3 R3 R3 S5 R1 S89 R2 R2 R2 74
75 Conflictos en la fusión LALR 1 Si no existen conflictos SHIFT-REDUCE en el autómata canónico, tampoco los habrá en el autómata LALR. 2 Aunque el autómata canónico no tenga conflictos REDUCE-REDUCE, podrían aparecer este tipo de conflictos en el autómata LALR. 75
76 Demostración sobre conflictos shift-reduce (I) No hay conflicto S/R R1 α ^ { A } A a = Ø R2 β ^ { B } A b = Ø R3 φ ^ a { } B a = Ø R4 ρ ^ b { } B b = Ø R1 α ^ { C } C a = Ø R2 β ^ { D } C b = Ø R3 φ ^ a { } D a = Ø R4 ρ ^ b { } D b = Ø 76
77 Demostración sobre conflictos shift-reduce (II) R1 α ^ { A U C } R2 β ^ { B U D } R3 φ ^ a { } R4 ρ ^ b { } hay conflicto S/R al fusionar los 2 estados? (A U C) a = (A a) U (C a) = Ø (A U C) b = (A b) U (C b) = Ø (B U D) a = (B a) U (D a) = Ø (B U D) b = (B b) U (D b) = Ø Efectivamente, si no hay conflictos S/R antes de la fusión de estados, después de la fusión tampoco existen. 77
78 Demostración sobre conflictos reduce-reduce (I) No hay conflicto R/R R1 α ^ { A } A B = Ø R2 β ^ { B } R3 φ ^ a { } R4 ρ ^ b { } R1 α ^ { C } C D = Ø R2 β ^ { D } R3 φ ^ a { } R4 ρ ^ b { } 78
79 Demostración sobre conflictos reduce-reduce (II) R1 α ^ { A U C } R2 β ^ { B U D } R3 φ ^ a { } R4 ρ ^ b { } hay conflicto R/R al fusionar los 2 estados? (A U C) (B U D) = { (A U C) B } U { (A U C) D } = (A B) U (C B) U (A D) U (C D) Ø?? Ø Podrían aparecer conflictos R/R después de fusionar los estados aunque antes de la fusión no existiese ningún conflicto R/R 79
Procesadores de Lenguaje
Procesadores de Lenguaje Analizadores sintácticos descendentes: LL(1) Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 Analizadores sintácticos
Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.
Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en
Compiladores: Parsing ascendente
Compiladores: Parsing ascendente Francisco J Ballesteros LSUB, URJC Page 1 of 64 Parsing ascendente Normalmente utilizaremos parsers descendentes para problemas pequeños cuando podemos escribir uno predictivo
Procesadores de lenguaje Tema Análisis sintáctico (Parte II)
Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte II) Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Análisis sintáctico ascendente
Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1
Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte I 1 Introducción El analizador sintáctico recibe una secuencia de tokens y decide si la secuencia está correcta o no.
Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I
Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.
Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo
Tema 4: Análisis sintáctico ascendente Procesamiento de enguajes Dept. de enguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de enguajes Tema 4: Análisis sintáctico ascendente 1 / 21
ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.
ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los
Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars)
Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars) Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad
Procesadores de lenguaje Tema Análisis sintáctico (Parte I)
Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte I) Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Introducción Conceptos básicos Tipos de analizadores Gramáticas independientes
16 Análisis sintáctico I
2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura
Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55
Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2
Conceptos básicos sobre gramáticas
Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos
Unidad IV Análisis Sintáctico. M.C. Juan Carlos Olivares Rojas
Unidad IV Análisis Sintáctico M.C. Juan Carlos Olivares Rojas Agenda 4.1 Introducción a las Gramáticas libres de contexto y árboles de derivación. 4.2 Diagramas de sintaxis. 4.3 Precedencia de operadores.
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
Tema 3. Análisis sintáctico descendente
Departamento de Tecnologías de la Información Tema 3 Análisis sintáctico Ciencias de la Computación e Inteligencia Artificial Índice 3.1 Características del análisis sintáctico 3.2 Gramáticas libres de
AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO
Autómatas de pila y lenguajes independientes del contexto -1- AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO AUTÓMATAS DE PILA - Son autómatas finitos con una memoria en forma de pila. - Símbolos
Procesadores de Lenguaje
Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales
Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto
EJERCICIOS del TEMA 3: Lenguajes independientes del contexto
EJERCICIOS del TEMA 3: Lenguajes independientes del contexto Sobre GICs (gramáticas independientes del contexto) 1. Sea G una gramática con las siguientes producciones: S ASB ε A aab ε B bba ba c ) d )
MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.
MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.
GRAMÁTICAS LIBRES DE CONTEXTO
GRAMÁTICAS LIBRES DE CONTEXTO Definición Una gramática libre de contexto (GLC) es una descripción estructural precisa de un lenguaje. Formalmente es una tupla G=, donde Vn es el conjunto
Un autómata con pila no determinista (APND) es una septupla Q A B F en la que
AUTÓMATAS CON PILA Un autómata con pila no determinista (APND) es una septupla Q A F en la que δ q 0 Q es un conjunto finito de estados A es un alfabeto de entrada es un alfabeto para la pila δ es la función
Teoría de Autómatas y Lenguajes Formales.
Teoría de Autómatas y Lenguajes Formales Prueba de Evaluación de Lenguajes y Gramáticas Autores: Araceli Sanchis de Miguel Agapito Ledezma Espino Jose A. Iglesias Martínez Beatriz García Jiménez Juan Manuel
La Ambigüedad en el Parsing
La en el Parsing Definición y Ejemplos Universidad de Cantabria Outline El Problema 1 El Problema 2 3 El Problema En nuestra busqueda por encontrar la estructura exploraremos como elegir una derivación
Tema: Análisis Sintáctico
Compiladores. Guía 3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Sintáctico Contenido En esta guía se abordarán los conceptos pertenecientes al componente de análisis
GRAMATICAS LIBRES DEL CONTEXTO
GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.
Las Etapas de la Compilación
Las de la Compilación El en la Compilación Universidad de Cantabria Outline 1 El Problema 2 Las y el Qué pasos son necesarios dar para hallar la estructura de un programa? En qué pasos podemos dividirlos
SSL Guia de Ejercicios
1 SSL Guia de Ejercicios INTRODUCCIÓN A LENGUAJES FORMALES 1. Dado el alfabeto = {a, b, c}, escriba las palabras del lenguaje L = {x / x }. 2. Cuál es la cardinalidad del lenguaje L = {, a, aa, aaa}? 3.
PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS
Licenciatura en Sistemas de Información PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS UNSE FCEyT 1. DESCRIPCIÓN Este taller consta de tres partes. En cada una de ellas se especifican
Tema 5 Tabla de Símbolos
Traductores, Compiladores e Intérpretes 1 Tema 5 También se la llama tabla de nombres o tabla de identificadores y tiene dos funciones principales: - Efectuar chequeos semánticos. - Generación de código.
Introducción a la Lógica y la Computación
Introducción a la Lógica y la Computación Parte III: Lenguajes y Autómatas Clase del 4 de Noviembre de 2015 Parte III: Lenguajes y Autómatas Introducción a la Lógica y la Computación 1/21 Lenguajes Formales
Tema: Autómata de Pila
Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas
Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas
Gramáticas Introducción Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas En algunos lenguajes, una sucesión de símbolos depende del
Tema 3: Análisis sintáctico descendente. Cómo funciona el analizador sintáctico?
Tema 3: Análisis sintáctico descendente Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 3: Análisis sintáctico descendente
Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto
Universidad Autónoma del Estado de México Centro Universitario UAEM Texcoco Departamento de Ciencias Aplicadas. Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer,
1. Cadenas EJERCICIO 1
LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada
DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES
1 DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES Los LENGUAJES FORMALES están formados por PALABRAS, las palabras son CADENAS y las cadenas están constituidas por SÍMBOLOS de un ALFABETO. SÍMBOLOS
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 5 - Simplificación de gramáticas incontextuales
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 5 - Simplificación de gramáticas incontextuales 1. Objetivos 2. Representación de los datos en Mathematica 3. Eliminación de símbolos inútiles 3.1. Símbolos
PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores
Generación de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos
Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos 4.1 Introducción En este capítulo se presentan los algoritmos usados por el Generador de Analizadores Sintácticos SLR. Se tratará
Teoría de Lenguajes. Gramáticas incontextuales
Teoría de Lenguajes Gramáticas incontextuales José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Gramáticas incontextuales 1. Definiciones básicas.
Expresiones regulares, gramáticas regulares
Expresiones regulares, gramáticas regulares Los LR en la jerarquía de Chomsky La clasificación de lenguajes en clases de lenguajes se debe a N. Chomsky, quien propuso una jerarquía de lenguajes, donde
PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4
PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4 En esta práctica trabajaremos con ANTLR a nivel semántico utilizando gramáticas con atributos. ANTLR permite implementar con facilidad los dos modelos
Lenguajes y Gramáticas
Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas
JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.
1 Compiladores / Guía VII / Ciclo 02-2016 Centro de Investigación y Transferencia de Tecnología JavaCC Parte I Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En la presente
Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior. Trabajo Final
Trabajo Final 1 Objetivo Comprender (en gran parte) un programa desarrollado en: C++ (Core ) Generador de código / Ejecución de comandos Flex (Lex) Lexer Genera un Analizador Léxico en C http://en.wikipedia.org/wiki/lex_(software)
Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES
UNIVERSIDAD FERMIN TORO VICE RECTORADO ACADEMICO UNIVERSIDAD FACULTAD DE INGENIERIA ESCUELA DE MANTENIMIENTO MECÁNICO ESCUELA DE TELECOMUNICACIONES ESCUELA DE ELÉCTRICA ESCUELA DE COMPUTACIÓN PROGRAMA
CUP. Diseño de compiladores. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP 20/04/2014
CUP Diseño de compiladores CUP Cup es un generador de analizadores sintácticos LALR Recibe de entrada un archivo con la estructura de la gramática y su salida es un parser escrito en Java Manual oficial:
Tema: Autómatas de Estado Finitos
Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Autómatas de Estado Finitos Contenido En esta guía se aborda la aplicación de los autómatas en el campo de
Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I
Gramáticas independientes del contexto UTÓMTS Y LENGUJES FORMLES LENGUJES INDEPENDIENTES DEL CONTEXTO Y UTÓMTS DE PIL Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNM E-mail:
No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:
1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.
Tema 2 Gramáticas y Lenguajes Libres de Contexto
Tema 2 Gramáticas y Lenguajes Libres de Contexto 1. Definiciones Básicas 2. 3. Forma Normal de Chomsky 4. Autómatas de Pila 5. Propiedades de los Lenguajes Libres de Contexto 1. Definiciones básicas 1.
CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle
CONJUNTOS REGULARES Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 19 de Octubre de 2008 Contenido Expresiones regulares Teorema de Kleene Autómatas
Construcción de tablas de análisis sintáctico LL(1)
Construcción de tablas de análisis sintáctico LL(1) Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Diego Centeno Gerardo Cortés Juan Diego Alfaro Resumen. A la medida en
GENERADOR DE COMPILADORES BASADO EN
GENERADOR DE COMPILADORES BASADO EN ANALIZADORES ASCENDENTES Memoria del Proyecto de Final de Carrera Ingeniería Informática realizado por Laia Felip Molina y dirigido por Xavier Sánchez Pujades Bellaterra,
S Qué es el analizador sintáctico?
Traductores, Compiladores e Intérpretes 1 Tema 3. Análisis Sintáctico. Todo lenguaje de programación tiene reglas que describen la estructura sintáctica de programas bien formados. En Pascal, por ejemplo,
TEMA 6 GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO
TEMA 6 GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO TEMA 6.- GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO 6.1. Gramáticas independientes del contexto. 6.2. Limpieza de Gramáticas Independientes del contexto. 6.3.
Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison
Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison Memoria de Título Claudio Saavedra Facultad de Ingeniería Universidad de Talca
Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Interrogación 2 IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Esta interrogación
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Universidad de Costa Rica. Escuela de Ciencias de la Computación e Informática CI-2700 TÓPICOS ESPECIALES - COMPILADORES.
Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática CI-2700 TÓPICOS ESPECIALES - COMPILADORES II Ciclo 2014 Profesor: Manuel E. Bermúdez EXAMEN FINAL (NO PARA COMER EN CLASE,
Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50
INAOE (INAOE) 1 / 50 Contenido 1 2 3 4 (INAOE) 2 / 50 Pushdown Automata Las gramáticas libres de contexto tienen un tipo de autómata que las define llamado pushdown automata. Un pushdown automata (PDA)
Nivel del ejercicio : ( ) básico, ( ) medio, ( ) avanzado.
Universidad Rey Juan Carlos Curso 2010 2011 Teoría de Autómatas y Lenguajes Formales Ingeniería Técnica en Informática de Sistemas Hoja de Problemas 10 Gramaticas Independientes del Contexto Nivel del
Compiladores e intérpretes Análisis Léxico I. Análisis Léxico I
Análisis Léxico I Profesor: Eridan Otto Análisis Léxico I Introducción Funciones Tokens,Patrones y Lexemas Reconocimiento de tokens Implementación de un AL 1 Análisis léxico: Introducción En esta unidad
Agenda. BNF y EBNF Brevemente, lo necesario para especificar el lenguaje sobre el que vamos a trabajar.
Agenda BNF y EBNF Brevemente, lo necesario para especificar el lenguaje sobre el que vamos a trabajar. JLEX y JCUP Breve descripción del las herramientas para generar el parser o analizador sintáctico.
COMPILADORES E INTERPRETES
COMPILADORES E INTERPRETES Análisis semántico: Estudia el significado de la sentencia Procesadores de lenguaje: Convierte un programa fuente hecho en un lenguaje fuente a un programa objeto hecho en un
ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.
ANÁLISIS SEMÁNTICO El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las expresiones
ESCUELA: UNIVERSIDAD DEL ISTMO
1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3041 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3033.- OBJETIVO GENERAL Proporcionar al alumno
Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial
Departamento de Tecnologías de la Información Tema 4 Máquinas de Turing Ciencias de la Computación e Inteligencia Artificial Índice 4.1 Límites de los autómatas 4.2 Definición de Máquina de Turing 4.3
Unidad I: Análisis semántico
Unidad I: Análisis semántico 1.1 Arboles de expresiones Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol.
Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I
Tema 3: Gramáticas regulares Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison
13.3. MT para reconocer lenguajes
13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática
LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.
LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.
PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS
PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS 1. DATOS INFORMATIVOS MATERIA: DISEÑO DE LENGUAJES Y AUTOMATAS: CARRERA: INGENIERÍA DE SISTEMAS NIVEL:
Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64
Lógica Proposicional IIC1253 IIC1253 Lógica Proposicional 1/64 Inicio de la Lógica Originalmente, la Lógica trataba con argumentos en el lenguaje natural. Ejemplo Es el siguiente argumento válido? Todos
Unidad 4. Autómatas de Pila
Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje
Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.
Universidad de Puerto Rico Recinto de Mayagüez Facultad de Artes y Ciencias DEPARTAMENTO DE CIENCIAS MATEMÁTICAS Programa de Autómata y Lenguajes Formales Curso: Autómata y Lenguajes Formales Codificación:
Capítulo 3 Análisis sintáctico
Java a tope: Traductores y compiladores con Lex/Yacc, JFlex/Cup y JavaCC Capítulo 3 Análisis sintáctico 3.1 Visión general Todo lenguaje de programación obedece a unas reglas que describen la estructura
Equivalencia Entre PDA y CFL
Equivalencia Entre PDA y CFL El Lenguaje aceptado por un Autómata con Pila Universidad de Cantabria Esquema 1 Introducción 2 3 Lenguaje Aceptado por un Autómata Como en los autómatas finitos, se puede
Capítulo 5: Traducción Dirigida por Sintaxis
Capítulo 5: Traducción Dirigida por Sintaxis Javier Carvajal Universidad de Costa Rica, Escuela de Ciencias de la Computación e Informática, San José, Costa Rica, [email protected] and
Autómatas de Pila y Lenguajes Incontextuales
Autómatas de Pila y Lenguajes Incontextuales Elvira Mayordomo Universidad de Zaragoza 5 de noviembre de 2012 Contenido de este tema 1. Introducción a los autómatas de pila 2. Definiciones 3. Equivalencia
El proceso del Análisis Léxico
El proceso del Análisis Léxico El proceso de análisis léxico se refiere al trabajo que realiza el scanner con relación al proceso de compilación. El scanner representa una interfaz entre el programa fuente
Introducción a los generadores de analizadores léxicos y sintácticos FLEX y BISON: Implementación de una pequeña calculadora
Introducción a los generadores de analizadores léxicos y sintácticos FLEX y BISON: Implementación de una pequeña calculadora Objetivo Con la ayuda de FLEX, el generador automático de analizadores léxicos,
1.-DEFINE EN QUE CONSISTEN LAS GRAMÁTICAS LIBRES DE CONTEXTO
1.-DEFINE EN QUE CONSISTEN LAS GRAMÁTICAS LIBRES DE CONTEXTO una gramática libre de contexto (o de contexto libre) es una gramática formal en la que cada regla de producción es de la forma: V w Donde V
