Analisis Sintactico(Practica)

Instituto Tecnológico de Ciudad Juárez Práctica de la Unidad 6: Análisis sintáctico Integrantes:  Aranda Rangel Sergio

Views 122 Downloads 0 File size 196KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Instituto Tecnológico de Ciudad Juárez

Práctica de la Unidad 6: Análisis sintáctico Integrantes:  Aranda Rangel Sergio Saúl  Ávila Hurtado Diana Ivonne  Carrillo Soto Estefanía  Chagoyán Olmos María Yesenia

Titular: Castañeda Mónarrez Rosa Del Carmen Cd. Juárez Chihuahua a 29 de Noviembre del 2013

Contenido Introducción....................................................................3 Material Utilizado.............................................................3 Teoría............................................................................... 4 Conclusión.....................................................................10 Fuentes Consultadas.....................................................10

2

Introducción En la presente práctica acerca del tema analizador sintáctico se desarrollaron diferentes ejercicios de los temas que abarca la unidad 6 de la materia Lenguajes y Autómatas 1 estos temas son: arboles de derivación, diagramas de sintaxis, análisis sintáctico predictivo, GLC así como los conceptos básicos que se manejan en la materia como terminales, no terminales de una gramática específica entre otros. Un análisis sintáctico establece las funciones sintácticas y las relaciones de jerarquía y concordancia que se encuentran en el interior de cualquier oración.

Material Utilizado   

PC Lenguaje de programación Diversos libros de consulta

3

Teoría Considere la siguiente gramática: P: S→ ( L ) | a L→ L, S| S Realice los ejercicios que siguen a continuación: 1. ¿Cuáles son terminales y cuales no terminales? No terminales: S L Terminales: ( ) , a 2. Realiza un árbol sintáctico (o de derivación) para cada una de las siguientes expresiones: (a,a)

4

(a,(a,a))

5

(a,((a,a),(a,a)))

6

3. Realiza los diagramas de sintaxis de la gramática (o producciones). S→ ( L ) | a Inicio

L

(

1

)

2

a

delim

5

delim

4

3

100

200

L→ L, S| S Inicio

,

L 1

S

2

delim 100

4

3 delim

S 5

200

4. Construye un analizador sintáctico predictivo para las expresiones del ejercicio 2. (pila) S L L’

( S→( L ) L→SL’

)

a S→ a L→SL’

L→ ε

ε

,

$

L’→,SL’

L’→ ε

(a,a) Pila $S $)L( $)L $)L’S $)L’a $)L’ $)L’S, $)L’S $)L’a $)L’ $) $

Entrada (a,a)$ (a,a)$ a,a)$ a,a)$ a,a)$ ,a)$ ,a)$ a)$ a)$ )$ )$ $

Salida S→( L ) L→SL’ S→ a L’→,SL’ S→ a L→ ε

7

(a,(a,a)) Pila $S $)L( $)L $)L’S $)L’a $)L’ $)L’S, $)L’S $)L’)L( $)L’)L $)L’)L’S $)L’)L’a $)L’)L´ $)L’)L´S, $)L’)L’S $)L’)L’a $)L’)L’ $)L’) $)L’ $) $

Entrada (a,(a,a))$ (a,(a,a))$ a,(a,a))$ a,(a,a))$ a,(a,a))$ ,(a,a))$ ,(a,a))$ (a,a))$ (a,a))$ a,a))$ a,a))$ a,a))$ ,a))$ ,a))$ a))$ a))$ ))$ ))$ )$ )$ $

Salida S→( L ) L→SL’ S→ a L’→,SL’ S→( L ) L→SL’ S→ a L’→,SL’ S→ a L→ ε L→ ε

8

(a,((a,a),(a,a))) Pila $S $)L( $)L $)L’S $)L’a $)L’ $)L’S, $)L’S $)L’)L( $)L’)L $)L’)L’S $)L’)L’)L( $)L’)L’)L $)L’)L’)L’S $)L’)L’)L’a $)L’)L’)L’ $)L’)L’)L’S, $)L’)L’)L’S $)L’)L’)L’a $)L’)L’)L’ $)L’)L’) $)L’)L’ $)L’)L’S, $)L’)L’S $)L’)L’)L( $)L’)L’)L $)L’)L’)L’S $)L’)L’)L’a $)L’)L’)L’ $)L’)L’)L’S, $)L’)L’)L’S $)L’)L’)L’a $)L’)L’)L’ $)L’)L’) $)L’)L’ $)L’) $)L’ $) $

Entrada (a,((a,a),(a,a)))$ (a,((a,a),(a,a)))$ a,((a,a),(a,a)))$ a,((a,a),(a,a)))$ a,((a,a),(a,a)))$ ,((a,a),(a,a)))$ ,((a,a),(a,a)))$ ((a,a),(a,a)))$ ((a,a),(a,a)))$ (a,a),(a,a)))$ (a,a),(a,a)))$ (a,a),(a,a)))$ a,a),(a,a)))$ a,a),(a,a)))$ a,a),(a,a)))$ ,a),(a,a)))$ ,a),(a,a)))$ a),(a,a)))$ a),(a,a)))$ ),(a,a)))$ ),(a,a)))$ ,(a,a)))$ ,(a,a)))$ (a,a)))$ (a,a)))$ a,a)))$ a,a)))$ a,a)))$ ,a)))$ ,a)))$ a)))$ a)))$ )))$ )))$ ))$ ))$ )$ )$ $

Salida S→( L ) L→SL’ S→ a L’→,SL’ S→( L ) L→SL’ S→( L ) L→SL’ S→ a L’→,SL’ S→ a L→ ε L’→,SL’ S→( L ) L→SL’ S→ a L’→,SL’ S→ a L→ ε L→ ε L→ ε

9

Conclusión La sintaxis de un lenguaje de programación se lo determina mediante reglas gramaticales de una gramática libre de contexto similar a las ER en el análisis léxico con la diferencia de que son recursivos. Las gramáticas ofrecen ventajas significativas a los diseñadores de lenguajes y a los desarrolladores de compiladores. Algunas son: • Las gramáticas son especificaciones sintácticas y precisas de lenguajes de programación. • A partir de una gramática se puede generar automáticamente un analizador sintáctico. • El proceso de construcción puede llevar a descubrir ambigüedades. El análisis sintáctico es importante, ya que de un correcto análisis depende a menudo la interpretación y comprensión de los textos.

Fuentes Consultadas  Kenneth C. Louden, Construcción de Compiladores Principios Y Práctica  Traductores, Compiladores e Intérpretes, Tema 3 Análisis Sintáctico, http://www.lcc.uma.es/~galvez/ftp/tci/tictema3.pdf, (2611-13)  Elena Jurado Málaga, Teoría de autómatas y Lenguajes Formales,2008

10