Analisis Sintactico

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica y Eléctrica


Unidad Culhuacán

Asignatura: Compiladores
Grupo: 5CM14

Análisis Sintáctico

Grupo: 5CM14
Integrantes:
 Aguilar Hernández Brenda.
 Cruz Ramírez Betsabe Alejandra.
 Melo Gómez Guillermo Ednuar.
 Mendez Albino Alexis Miguel.

1
Contenido
Análisis Sintáctico...........................................................................................................................3
¿Qué es?......................................................................................................................................3
¿Cómo funciona el analizador sintáctico?...............................................................................4
Estructura Sintáctica...................................................................................................................4
Autómatas de Pila.......................................................................................................................4
Gramáticas Libres de Contexto.................................................................................................5
Tipos de Analizadores Sintácticos............................................................................................6
Descendente............................................................................................................................6
Ascendente...............................................................................................................................6
ERRORES....................................................................................................................................7
ERRORES LÉXICOS..............................................................................................................7
ERRORES SINTÁCTICOS....................................................................................................7
ERRORES SEMÁNTICOS.....................................................................................................8
ERRORES LOGICOS.............................................................................................................8
MANEJO DE ERRORES............................................................................................................8
Reglas de producción adicionales para el control de errores...............................................8
Corrección Global........................................................................................................................8
Limitaciones del análisis sintáctico...........................................................................................8
Bibliografía....................................................................................................................................9

2
Análisis Sintáctico
¿Qué es?
En el proceso de compilación, es el módulo que realiza el proceso de revisión de la
sintaxis o gramática, para verificar si una frase pertenece o no al lenguaje.

¿Cómo funciona el analizador sintáctico?


• Determina la sintaxis a la hora de compilar el Código, mediante un conjunto de
reglas gramaticales, las cuales vienen de gramáticas libres de contexto

Estructura Sintáctica
La sintaxis abstracta de un lenguaje identifica los componentes significativos de cada
constructor. Las descripciones de lenguajes y las implantaciones están organizadas
alrededor de la sintaxis abstracta
La sintaxis concreta de un lenguaje describe su representación escrita, incluyendo
detalles como la colocación de las palabras clave y los signos de puntuació.*

Al ejecutar los códigos anteriores produce:

0 es menor que 5

1 es menor que 5

2 es menor que 5

3 es menor que 5

4 es menor que 5

5 no es menor que 5

3
Autómatas de Pila
El proceso de análisis sintáctico se describe como la creación de un árbol sintáctico para
la frase que se requiere reconocer, sin embargo, en la práctica los autómatas de pila
resultan más eficientes y eficaces que los arboles sintácticos.

Gramáticas Libres de Contexto


Es una notación formal para representar las reglas sintácticas de un lenguaje,
G = (N,T,P,S)
(T) = Conjunto finito de símbolos terminales
(N) = Conjunto finito de símbolos no terminales
(S) = Símbolo inicial
(P) = Conjunto finito de producciones
EJEMPLO 01
Desarrollar una gramática para validar
la operación de suma de dos dígitos
G= (N,T,P,S)
N = { D, S }

4
T = {0-9, +}
P = {E→D, E →S, S → +, D →[0-9]}
S=E
Ejercicio:
3+5

Tipos de Analizadores Sintácticos


Descendente
Intenta construir un árbol de análisis sintáctico, empezando desde la raíz y descendiendo
hacia las hojas.
Se obtiene una derivación por la izquierda para una cadena de entrada.
De esta forma funcionan los analizadores LL, un ejemplo es el javaCC.

5
Ascendente
Intenta construir un árbol de análisis sintáctico, empezando desde las hojas y
ascendiendo hacia la raíz.
Intenta obtener una reducción desde una cadena hasta llegar al axioma
Los analizadores LR funcionan así y un ejemplo es el Yacc.

ERRORES
Durante el proceso de compilación pueden surgir diversos errores, estos se pueden
clasificar en cuatro:

ERRORES LÉXICOS
Cuando un lexema no corresponde a ningún componente léxico definido para el lenguaje.
Mala escritura de cadenas como variables, palabras reservadas, etc.
area = $base * altura / 2a;

6
ERRORES SINTÁCTICOS
Cuando una secuencia de componentes léxicos no se ajusta a las reglas de
sintaxis definida por la gramática
Mala escritura de instrucciones, por ejemplo, la falta de paréntesis.

ERRORES SEMÁNTICOS
Cuando no existe relación semántica entre la secuencia de componentes léxicos.
Operaciones incorrectas entre tipo de datos.

ERRORES LOGICOS

MANEJO DE ERRORES
a) Panicmode
Consiste en ignorar el resto de la entrada hasta llegar a una condición de
seguridad, esta condición de seguridad se refiere a un token especial, por
ejemplo un “;”.
Una vez encontremos un carácter especial, el código se seguirá analizando
con normalidad

b) Recuperación a nivel de frase


Intenta recuperar el error una vez descubierto. Por ejemplo, en caso de que
falte algún token especial, podría ser lo suficientemente inteligente como para
insertar el token “;”.

Reglas de producción adicionales para el control de errores


La gramática se puede aumentar con las reglas que reconocen los errores mas comunes.
Lo cual nos da mayor control en ciertas circunstancias

Corrección Global
Dada una secuencia completa de tokens a ser reconocida, si hay algún error por el que se
nos puede reconocer, consiste en encontrar la secuencia completa más parecida que si
se pueda reconocer.
El analizador sintáctico le pide toda la secuencia de tokens al léxico, y lo que hace es
devolver lo más parecido a la cadena de entrada pero sin errores, así como el árbol que lo
reconoce

Limitaciones del análisis sintáctico


• No puede determinar si un token es válido

• No puede determinar si un token ha sido declarado antes de usarlo


• No puede determinar si un token ha sido inicializado antes de ser usado
No puede determinar si una operación realizada en un token es válida o no.

7
Bibliografía
RYTE. (2018, 15 mayo). ¿Qué es un Analizador Sintáctico? - Ryte Marketing Wiki.
Recuperado 17 de octubre de 2020, de:
https://es.ryte.com/wiki/Analizador_Sint%C3%A1ctico
techopedia. (2020, 18 septiembre). Parser. Recuperado 20 de octubre de 2020, de
https://www.techopedia.com/definition/3854/parser
Ricardo Geek. (2017, 28 marzo). Análisis Sintáctico de un Compilador. Recuperado 19 de
octubre de 2020, de https://ricardogeek.com/analisis-sintactico-de-un-compilador/

También podría gustarte