SlideShare una empresa de Scribd logo
1 de 10
ANALIZADOR SINTÁCTICO
El análisis sintáctico es un análisis a nivel de sentencias, y es mucho más complejo que el
análisis léxico. Su función es tomar el programa fuente en forma de tokens, que recibe del
analizador léxico, y determinar la estructura de las sentencias del programa. Este proceso
es similar a determinar la estructura de una frase en Castellano, determinando quien es el
sujeto, predicado, el verbo y los complementos.
El análisis sintáctico agrupa a los tokens en clases sintácticas (denominadas no terminales
en la definición de la gramática), tales como expresiones, procedimientos, etc.
El analizador sintáctico o parser obtiene un árbol sintáctico (u otra estructura equivalente)
en la cual las hojas son los tokens, y cualquier nodo que no sea una hoja, representa un tipo
de clasesintáctica(operaciones).Por ejemplo el análisis sintácticodelasiguienteexpresión:
(A+B)*(C+D)
Con las reglas de la gramática que se presenta a continuación
dará lugar al árbol sintáctico de la figura 3:
<expresión> ::= <término> <más términos>
<más términos>::= +<término> <más términos>| - <término> <más términos> | <vacío>
<término> ::= <factor> <más factores>
<más factores>::= * <factor> <más factores>|/ <factor> <más factores> | <vacío>
<factor> ::= ( <expresión> ) | <variable> | <constante>
La estructura de la gramática anterior refleja la prioridad de los operadores, así los
operadores “+” y “-” tienen la prioridad más baja, mientras que “*” y “/” tienen una
prioridad superior. Se evaluaran en primer lugar las constantes, variables y expresiones
entre paréntesis.
Los árboles sintácticos se construyen con un conjunto de reglas conocidas como gramática,
y que definen con total precisión el lenguaje fuente.
Al proceso de reconocer la estructura del lenguaje fuente se conoce con el nombre de
análisis sintáctico (parsing). Hay distintas clases de analizadores o reconocedores
sintácticos, pero en general se clasifican en 2 grandes grupos: A.S. Ascendentes y A.S.
Descendentes.
La principal tarea del analizador sintáctico no es comprobar que la sintaxis del programa
fuente sea correcta, sino construir una representación interna de ese programa y en el caso
en que sea un programa incorrecto, dar un mensaje de error.
Para ello, el analizador sintáctico (A.S.) comprueba que el orden en que el analizador léxico
le va entregando los tokens es válido. Si esto es así significará que la sucesión de símbolos
que representan dichos tokens puede ser generada por la gramática correspondiente al
lenguaje del código fuente.
Obsérvese que en el análisis descendente, partiendo del símbolo inicial hasta alcanzar las
hojas, obtenemos una derivación por la izquierda. En el ascendente, partiendo de las hojas
hasta llegar al axioma obtenemos la inversa de una derivación por la derecha.
A continuación se presenta la gramática aceptada por nuestro lenguaje de programación
llamado “MUSIM”, utilizando la notación BNF:
<Programa> ::= M “{” <bloque> “}”
<bloque> ::= <sentencia> <otra_sentencia>
<otra_sentencia>::= ; <sentencia> <otra_sentencia>| <vacío>
<sentencia> ::= <asignación>|<lectura>|<escritura>
<asignación> ::= <variable> = <expresión>
<expresión> ::= <termino> <mas términos>
<mas términos> ::= + <termino> <mas términos>
| - <termino> <mas términos>
| <vacío>
<termino> ::= <factor> <mas factores>
<mas factores> ::= * <factor> <mas factores>
| / <factor> <mas factores>
| % <factor> <mas factores>
| <vacío>
<factor> ::= (<expresión>)|<variable>|<constante>
<lectura> ::= R <variable>
<escritura> ::= W <variable>
<variable> ::= a | b | c | ... | z
<constante> ::= 0 | 1 | 2 | ... | 9
Puede observarse que este lenguaje sólo permite 3 tipos de sentencias lectura, asignación
y escritura. Tiene un solo tipo de datos: entero. Las variables están formadas por una única
letra minúscula, y las constantes son de un dígito.
Tiene 5 operadores + (adición), - (diferencia), * (producto), / (división) y % (módulo). Se
permite el uso de paréntesis.
La precedencia de los operadores es la siguiente (de mayor a menor):
1ª. Evaluación de expresiones entre paréntesis ( ).
2ª. Producto, División entera y Módulo.
3ª. Suma y Resta.
Las reglas sintácticas siguientes en BNF:
<bloque> ::= <sentencia> <otra_sentencia>
<otra_sentencia> ::= ; <sentencia> <otra_sentencia> | <vacío>
También puede escribirse en una sola EBNF de la siguiente forma:
<bloque> ::= <sentencia> { ; <sentencia> }
Creación del Analizador Sintáctico
La técnica a utilizar es la denominada “recursivo descendente sin retroceso”, para su
utilización se deben de cumplir dos requisitos:
El lenguaje fuente debe estar definido con una gramática LL(1). Con un solo token se decide
la regla de la gramática que debe aplicarse.
El lenguaje de implementación debe de permitir la recursividad.
Antes de correr y probar el Analizador Sintáctico, cree las librerías Léxico.h y Sintactico.h
(desde Dev-C++)
Siguiendo estos pasos:
a) Cargar el Dev-C++.
b) Dar clic a Archivo y seleccionar Nuevo Proyecto
a. Seleccionar Consola Application.
b. Colocar el nombre de proyecto Guia1.
c) Guardar el archivo fuente con el nombre de léxico.h
A continuación escriba el código de la guía anterior de la clase léxico de MUSIM/0, insértelo
todo excepto la función main. (La Clase Léxico se implementó en la guía anterior).
Cree otra librería (sintacti.h) para insertar el código que se presenta a continuación: (Este
código es la implementación del analizador léxico).
Análisis sintáctico LL(1
Análisis sintáctico LL(1
Análisis sintáctico LL(1
Análisis sintáctico LL(1
Análisis sintáctico LL(1
Análisis sintáctico LL(1

Más contenido relacionado

La actualidad más candente

Algoritmos Tiposde datos
Algoritmos Tiposde datos Algoritmos Tiposde datos
Algoritmos Tiposde datos bakura4
 
Elementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamientoElementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamientoJohnny Montenegro Molina
 
Hojas de calculo c9 .i2 p3
Hojas de calculo c9 .i2 p3Hojas de calculo c9 .i2 p3
Hojas de calculo c9 .i2 p3DenRamrezAndrade
 
Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.Raul Ortega
 
Estructurascondicionales simples
Estructurascondicionales simplesEstructurascondicionales simples
Estructurascondicionales simplesteichampa
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacionAlfonso
 
Introducción a la programación
Introducción  a la programaciónIntroducción  a la programación
Introducción a la programaciónH Trujillo
 
Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003Joseluis Cruz Ramirez
 
Analizador léxico
Analizador léxico Analizador léxico
Analizador léxico Jorge Molano
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programaciónKarenNaranjoH
 
Presentación1
Presentación1Presentación1
Presentación1taniamabe
 

La actualidad más candente (20)

Operadores
OperadoresOperadores
Operadores
 
Algoritmos Tiposde datos
Algoritmos Tiposde datos Algoritmos Tiposde datos
Algoritmos Tiposde datos
 
Elementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamientoElementos de programación variables ctes_sist de almacenamiento
Elementos de programación variables ctes_sist de almacenamiento
 
Tabla De Simbolos
Tabla De SimbolosTabla De Simbolos
Tabla De Simbolos
 
Hojas de calculo c9 .i2 p3
Hojas de calculo c9 .i2 p3Hojas de calculo c9 .i2 p3
Hojas de calculo c9 .i2 p3
 
Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.Operadores aritméticos, lógicos, relacionales.
Operadores aritméticos, lógicos, relacionales.
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Estructurascondicionales simples
Estructurascondicionales simplesEstructurascondicionales simples
Estructurascondicionales simples
 
Tipos de datos en programacion
Tipos de datos en programacionTipos de datos en programacion
Tipos de datos en programacion
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Introducción a la programación
Introducción  a la programaciónIntroducción  a la programación
Introducción a la programación
 
Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003Tipos de datos, identificadores, variables y constantes 97 2003
Tipos de datos, identificadores, variables y constantes 97 2003
 
Analizador léxico
Analizador léxico Analizador léxico
Analizador léxico
 
Datos simples
Datos simples Datos simples
Datos simples
 
Ola k ase
Ola k aseOla k ase
Ola k ase
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Compilador Exp
Compilador ExpCompilador Exp
Compilador Exp
 
Presentación1
Presentación1Presentación1
Presentación1
 
Tipos de datos.java
Tipos de datos.javaTipos de datos.java
Tipos de datos.java
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 

Destacado (19)

Shooting Shchedule
Shooting ShcheduleShooting Shchedule
Shooting Shchedule
 
Ecommerce introduction
Ecommerce introductionEcommerce introduction
Ecommerce introduction
 
Kuhn_HonoringFreedom_Full_Promo
Kuhn_HonoringFreedom_Full_PromoKuhn_HonoringFreedom_Full_Promo
Kuhn_HonoringFreedom_Full_Promo
 
Wix behavior paper
Wix behavior paperWix behavior paper
Wix behavior paper
 
Physician - Patient relation to improve compliance
Physician - Patient relation to improve compliancePhysician - Patient relation to improve compliance
Physician - Patient relation to improve compliance
 
software para la gestion administrativa
software para la gestion administrativa   software para la gestion administrativa
software para la gestion administrativa
 
05 mihailetchi isc konstanz
05 mihailetchi isc konstanz05 mihailetchi isc konstanz
05 mihailetchi isc konstanz
 
Dark room procedure / dental implant courses
Dark room procedure / dental implant coursesDark room procedure / dental implant courses
Dark room procedure / dental implant courses
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Violación a los derechos humanos de un delincuente
Violación a los derechos humanos de un delincuenteViolación a los derechos humanos de un delincuente
Violación a los derechos humanos de un delincuente
 
Lojasvirtuais
LojasvirtuaisLojasvirtuais
Lojasvirtuais
 
Eval 2 pp
Eval 2 ppEval 2 pp
Eval 2 pp
 
Extraordinary Ball - Point Drawings
Extraordinary  Ball - Point DrawingsExtraordinary  Ball - Point Drawings
Extraordinary Ball - Point Drawings
 
The Love Letter, 2
 The Love Letter, 2  The Love Letter, 2
The Love Letter, 2
 
Final colegial
Final colegialFinal colegial
Final colegial
 
Christmas
ChristmasChristmas
Christmas
 
Dark room procedures
Dark room procedures Dark room procedures
Dark room procedures
 
Actividad 5
Actividad 5Actividad 5
Actividad 5
 
Qué debe contemplar una guía didáctica
Qué debe contemplar una guía didácticaQué debe contemplar una guía didáctica
Qué debe contemplar una guía didáctica
 

Similar a Análisis sintáctico LL(1

ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexicoJhampier_Piedra
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoangiepao1717
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador SintacticoBayo Chicaiza
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoalexisdario
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoPUCESI
 
Compiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo masCompiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo mascesarkt
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semanticoAlvaro Cedeño
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico maryr_
 

Similar a Análisis sintáctico LL(1 (20)

ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
investigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdfinvestigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdf
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
Compiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo masCompiladores analizadores gramática y algo mas
Compiladores analizadores gramática y algo mas
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
 

Último

TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 

Último (20)

TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 

Análisis sintáctico LL(1

  • 1. ANALIZADOR SINTÁCTICO El análisis sintáctico es un análisis a nivel de sentencias, y es mucho más complejo que el análisis léxico. Su función es tomar el programa fuente en forma de tokens, que recibe del analizador léxico, y determinar la estructura de las sentencias del programa. Este proceso es similar a determinar la estructura de una frase en Castellano, determinando quien es el sujeto, predicado, el verbo y los complementos. El análisis sintáctico agrupa a los tokens en clases sintácticas (denominadas no terminales en la definición de la gramática), tales como expresiones, procedimientos, etc. El analizador sintáctico o parser obtiene un árbol sintáctico (u otra estructura equivalente) en la cual las hojas son los tokens, y cualquier nodo que no sea una hoja, representa un tipo de clasesintáctica(operaciones).Por ejemplo el análisis sintácticodelasiguienteexpresión: (A+B)*(C+D) Con las reglas de la gramática que se presenta a continuación dará lugar al árbol sintáctico de la figura 3: <expresión> ::= <término> <más términos> <más términos>::= +<término> <más términos>| - <término> <más términos> | <vacío> <término> ::= <factor> <más factores> <más factores>::= * <factor> <más factores>|/ <factor> <más factores> | <vacío> <factor> ::= ( <expresión> ) | <variable> | <constante> La estructura de la gramática anterior refleja la prioridad de los operadores, así los operadores “+” y “-” tienen la prioridad más baja, mientras que “*” y “/” tienen una prioridad superior. Se evaluaran en primer lugar las constantes, variables y expresiones entre paréntesis. Los árboles sintácticos se construyen con un conjunto de reglas conocidas como gramática, y que definen con total precisión el lenguaje fuente. Al proceso de reconocer la estructura del lenguaje fuente se conoce con el nombre de análisis sintáctico (parsing). Hay distintas clases de analizadores o reconocedores sintácticos, pero en general se clasifican en 2 grandes grupos: A.S. Ascendentes y A.S. Descendentes. La principal tarea del analizador sintáctico no es comprobar que la sintaxis del programa fuente sea correcta, sino construir una representación interna de ese programa y en el caso en que sea un programa incorrecto, dar un mensaje de error.
  • 2. Para ello, el analizador sintáctico (A.S.) comprueba que el orden en que el analizador léxico le va entregando los tokens es válido. Si esto es así significará que la sucesión de símbolos que representan dichos tokens puede ser generada por la gramática correspondiente al lenguaje del código fuente. Obsérvese que en el análisis descendente, partiendo del símbolo inicial hasta alcanzar las hojas, obtenemos una derivación por la izquierda. En el ascendente, partiendo de las hojas hasta llegar al axioma obtenemos la inversa de una derivación por la derecha.
  • 3. A continuación se presenta la gramática aceptada por nuestro lenguaje de programación llamado “MUSIM”, utilizando la notación BNF: <Programa> ::= M “{” <bloque> “}” <bloque> ::= <sentencia> <otra_sentencia> <otra_sentencia>::= ; <sentencia> <otra_sentencia>| <vacío> <sentencia> ::= <asignación>|<lectura>|<escritura> <asignación> ::= <variable> = <expresión> <expresión> ::= <termino> <mas términos> <mas términos> ::= + <termino> <mas términos> | - <termino> <mas términos> | <vacío> <termino> ::= <factor> <mas factores> <mas factores> ::= * <factor> <mas factores> | / <factor> <mas factores> | % <factor> <mas factores> | <vacío> <factor> ::= (<expresión>)|<variable>|<constante> <lectura> ::= R <variable> <escritura> ::= W <variable> <variable> ::= a | b | c | ... | z <constante> ::= 0 | 1 | 2 | ... | 9 Puede observarse que este lenguaje sólo permite 3 tipos de sentencias lectura, asignación y escritura. Tiene un solo tipo de datos: entero. Las variables están formadas por una única letra minúscula, y las constantes son de un dígito. Tiene 5 operadores + (adición), - (diferencia), * (producto), / (división) y % (módulo). Se permite el uso de paréntesis. La precedencia de los operadores es la siguiente (de mayor a menor): 1ª. Evaluación de expresiones entre paréntesis ( ). 2ª. Producto, División entera y Módulo. 3ª. Suma y Resta. Las reglas sintácticas siguientes en BNF: <bloque> ::= <sentencia> <otra_sentencia> <otra_sentencia> ::= ; <sentencia> <otra_sentencia> | <vacío> También puede escribirse en una sola EBNF de la siguiente forma: <bloque> ::= <sentencia> { ; <sentencia> }
  • 4. Creación del Analizador Sintáctico La técnica a utilizar es la denominada “recursivo descendente sin retroceso”, para su utilización se deben de cumplir dos requisitos: El lenguaje fuente debe estar definido con una gramática LL(1). Con un solo token se decide la regla de la gramática que debe aplicarse. El lenguaje de implementación debe de permitir la recursividad. Antes de correr y probar el Analizador Sintáctico, cree las librerías Léxico.h y Sintactico.h (desde Dev-C++) Siguiendo estos pasos: a) Cargar el Dev-C++. b) Dar clic a Archivo y seleccionar Nuevo Proyecto a. Seleccionar Consola Application. b. Colocar el nombre de proyecto Guia1. c) Guardar el archivo fuente con el nombre de léxico.h A continuación escriba el código de la guía anterior de la clase léxico de MUSIM/0, insértelo todo excepto la función main. (La Clase Léxico se implementó en la guía anterior). Cree otra librería (sintacti.h) para insertar el código que se presenta a continuación: (Este código es la implementación del analizador léxico).