SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
 

GRAMÁTICA LIBRE DE CONTEXTO
El análisis gramatical tiene como tarea
determinar la estructura de un programa,
por esta razón es conocido también como
análisis sintáctico. Esta estructura o
también conocida como sintaxis de un
lenguaje de programación es regulado
mediante
unas
reglas
gramaticales
inmersas dentro de una gramática libre
de contexto.
La estructura básica empleada en estas
gramáticas es por lo general alguna
clase de árbol, conocida como árbol de
análisis gramatical o árbol sintáctico.

Figura 1. Estructura básico, árbol sintáctico
 

Al
contrario
de
los
analizadores
léxicos, donde existe un solo método
algorítmico, representado por autómatas
finitos,
el
análisis
sintáctico
involucra tener que elegir entre varios
métodos
diferentes
entre
si,
con
diferentes propiedades y capacidades,
destacándose entre estos dos clases de
algoritmos,
análisis
sintáctico
descendente
y
análisis
sintáctico
ascendente.

La gramática de libre contexto hace el
uso
de
convenciones
para
nombrar
expresiones regulares, con el uso de
operaciones muy similares entre si,
teniendo en cuenta que las reglas libres
de contexto son altamente recursivas.
Los algoritmos empleados para reconocer
estas estructuras también difieren mucho
de los algoritmos de análisis léxico,
debido a la recursividad inmersos en
estos algoritmos.
 

Un ejemplo de esta recursividad, es el
uso
de
una
proposición
condicional
definida
por
una
regla
como
la
siguiente:
Ejemplo 1.1
Ø Si S1 y S2 son proposiciones y E es
una expresión, entonces.
Ø “If E then
proposición.

S1

else

S2”

es

una

Usando la variable sintáctica prop, con
el
fin
de
denotar
la
clase
de
proposiciones y expr para la clase de
expresiones,
se
puede
expresar
recursivamente
usando
una
producción
gramatical
Ø prop à if expr then prop else prop
 

TERMINOLOGIA PARA EL ANÁLISIS SINTACTICO
1. TERMINALES.
Los terminales son los símbolos
básicos con que se forman las
diferentes cadenas, en el ejemplo
anterior podemos reconocer cada una
de las palabras claves if, then y
else son terminales.
2. NO TERMINALES.
Los no terminales son variables
sintácticas
los
cuales
denotan
conjuntos de cadenas, en el ejemplo
anterior
podemos
observar
dos
estructuras no terminales en prop y
expr. Estas estructuras definen un
conjunto de cadenas que definen el
lenguaje generado por la gramática,
estos imponen también estructuras
jerárquicas sobre el lenguaje, útil
para su análisis sintáctico como
para su traducción.
 

3. SIMBOLO INICIAL.
En una gramática, un no terminal se
considera a su vez como el símbolo
inicial, y a su vez el conjunto de
expresiones
representado
por
el
lenguaje que es definido por la
gramática.
4. PRODUCCIONES.
Las producciones de una gramática
son aquellas que especifican la
forma
como
se
combinan
los
terminales y los no terminales para
formar diferentes expresiones entre
si. Cada producción consta de un no
terminal, seguido de una flecha u
otro
símbolo
que
reemplaza
la
misma, seguido por una cadena de
terminales y no terminales.
 

Ejemplo 1.2
Ø expr
Ø expr
Ø expr
Ø expr
Ø op
Ø op
Ø op
Ø op

à
à
à
à
à
à
à
à

expr op expr
( expr )
- expr
id
+
*
/

Teniendo
la
gramática
anterior,
la
terminología utilizada para el análisis
sintáctico viene dada por las siguientes
estructuras:
Símbolos terminales
id + - * / ( )
Símbolos no terminales
expr op
Símbolo inicial
expr
Producción
<< expr
à expr op expr >>
 

DERIVACIONES Y EL LENGUAJE DEFINIDO POR
UNA GRAMÁTICA
Existen diferentes formas de considerar
el
proceso
mediante
el
cual
una
gramática hace una definición de un
lenguaje.
Las
reglas
gramaticales
determinan un lenguaje especifico, el
cual esta compuesto por conjuntos de
cadenas legales de tokens. Estas reglas
gramaticales
libres
de
contexto
determinan
el
conjunto
de
cadenas
sintácticas
legales
de
símbolos
de
tokens para las estructuras definidas
por las reglas
Ejemplo 1.3
Ø ( 28 + 17 ) / 14
cadena legal de 7 tokens
( numero – numero ) * numero
Ø ( 28 + 17 / 14
cadena no legal, falta su paréntesis
izquierdo.
 

Las reglas gramaticales determinan las
cadenas legales de símbolos de token por
medio de derivaciones. Una derivación se
define como una secuencia de reemplazos
de
nombres
de
estructura
mediante
selecciones en los lados derechos de las
reglas gramaticales.
Estas
derivaciones
empiezan
con
un
nombre de estructura simple y finaliza
con una cadena de símbolos de token. En
cada una de las etapas de una derivación
se
realiza
un
reemplazo
simple
utilizando una selección de una regla
gramatical.
En el siguiente ejemplo se proporcionara
una derivación para la expresión del
ejemplo anterior ( 28 + 17 ) / 14
utilizando reglas gramaticales vistos en
ejemplos
anteriores.
Cada
paso
se
proporciona a la derecha la selección de
la regla gramatical utilizada para su
reemplazo.
 

Ejemplo 1.4

Paso

Derivación

Regla Gramatical

1

exp => exp op exp
=> exp op numero
=> exp / numero
=> (exp) / numero
=> (exp op exp) / numero
=> (exp op numero) / numero
=> (exp + numero) / numero
=> (numero + numero) / numero

[exp à exp op exp]
[exp à numero]
[op à /]
[exp à (exp)]
[exp à exp op exp]
[exp à numero]
[op à +]
[exp à numero]

2
3
4
5
6
7
8

Los pasos de derivación utilizan una
flecha diferente al símbolo de flecha
que se emplea en la regla gramatical
empleada “=>” “à”. Esto es debido a que
existen diferencias entre un paso de
derivación
y
su
regla
gramatical
influyente al paso de su derivación.
Las reglas gramaticales se encargan de
definir, mientras que los pasos de
derivación
construyen
mediante
reemplazo.
 

El conjunto de todas las cadenas de
símbolos obtenidos por las derivaciones
del
símbolo
exp
es
el
lenguaje
definido
por
la
gramática
de
expresiones.
En
este
lenguaje
encontramos la descripción de todas las
expresiones sintácticamente legales. De
manera simbólica podemos describirlo de
la siguiente manera.
Ø L(G) = {s | exp =>* s}
En la producción anterior G representa
la gramática de expresión, s representa
una cadena arbitraria de token, los
símbolos =>* representan una derivación
compuesta de una secuencia de varios
reemplazos
vistos
en
el
ejemplo
anterior.
Cada
nombre
de
estructura
en
una
gramática define su propio lenguaje de
cadenas
sintácticamente
correcta
de
tokens.
 

ARBOL DE ANÁLISIS SINTACTICO Y
DERIVACIONES
Un árbol de análisis sintáctico se puede
considerar
como
una
representación
grafica de una derivación que no muestra
la relativa elección a su orden de
sustitución. Los nodos al interior de un
árbol de análisis sintáctico se etiqueta
con algún no terminal y a su vez los
hijos de dicho nodo se etiquetan de
izquierda a derecha, con los respectivos
símbolos
del
lado
derecho
de
la
producción por la cual se ha sustituido.
Las
hojas
del
árbol
de
análisis
sintáctico se etiquetan con terminales o
no terminales, leídas de izquierda a
derecha.

Figura 2. Árbol sintáctico para –(id + id)
 
REALIZADO POR
LUISA FERNANDA BAOS PULIDO
DANIEL EDUARDO MOLINA TORO
INSTITUCIÓN UNIVERSITARIA COLEGIO MAYOR DEL CAUCA
INGENIERÍA INFORMATICA
LENGUAJES FORMALES
POPAYAN (CAUCA)
COLOMBIA
NOV 2013

BIBLIOGRAFIA
COMPILADORES, PRINCIPIOS, TECNICAS Y
HERRAMIENTAS, ALFRED V. AHO , PRENTICE
HALL MEXICO, 2008.
CONSTRUCCION DE COMPILADORES, PRINCIPIOS
Y PRACTICA, KENNETH C. LOUDEN,

Mais conteúdo relacionado

Mais procurados

Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Principales características de PostgreSQL
Principales características de PostgreSQLPrincipales características de PostgreSQL
Principales características de PostgreSQLDavid M. Martín García
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosRosviannis Barreiro
 
Interrupciones bios y irq
Interrupciones bios y irqInterrupciones bios y irq
Interrupciones bios y irqadolfoahumada94
 
Tipos de Colas en Programación en C++ - Presentación
Tipos de Colas en Programación en C++ - PresentaciónTipos de Colas en Programación en C++ - Presentación
Tipos de Colas en Programación en C++ - PresentaciónFernando Solis
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UMLramirezjaime
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registrosMeztli Valeriano Orozco
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisisCarolina Rojas
 
Códigos bch, Reed Solomon, convolucionales
Códigos bch, Reed Solomon, convolucionalesCódigos bch, Reed Solomon, convolucionales
Códigos bch, Reed Solomon, convolucionalesEduardoMedrano19
 
Comparativo modelos de calidad
Comparativo modelos de calidadComparativo modelos de calidad
Comparativo modelos de calidadyessicagongora
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteJosé Antonio Sandoval Acosta
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajesPedro Contreras Flores
 
FORMAS NORMALES DE GREIBACH
FORMAS NORMALES DE GREIBACHFORMAS NORMALES DE GREIBACH
FORMAS NORMALES DE GREIBACHCarlos Manuel
 

Mais procurados (20)

Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Principales características de PostgreSQL
Principales características de PostgreSQLPrincipales características de PostgreSQL
Principales características de PostgreSQL
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No Deterministicos
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 
B. manejo de concurrencia
B.  manejo de concurrenciaB.  manejo de concurrencia
B. manejo de concurrencia
 
Interrupciones bios y irq
Interrupciones bios y irqInterrupciones bios y irq
Interrupciones bios y irq
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Tipos de Colas en Programación en C++ - Presentación
Tipos de Colas en Programación en C++ - PresentaciónTipos de Colas en Programación en C++ - Presentación
Tipos de Colas en Programación en C++ - Presentación
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UML
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisis
 
Códigos bch, Reed Solomon, convolucionales
Códigos bch, Reed Solomon, convolucionalesCódigos bch, Reed Solomon, convolucionales
Códigos bch, Reed Solomon, convolucionales
 
Comparativo modelos de calidad
Comparativo modelos de calidadComparativo modelos de calidad
Comparativo modelos de calidad
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Estilos de programación y sus lenguajes
Estilos de programación y sus lenguajesEstilos de programación y sus lenguajes
Estilos de programación y sus lenguajes
 
FORMAS NORMALES DE GREIBACH
FORMAS NORMALES DE GREIBACHFORMAS NORMALES DE GREIBACH
FORMAS NORMALES DE GREIBACH
 
2.2 y 2.3
2.2 y 2.32.2 y 2.3
2.2 y 2.3
 

Semelhante a Gramatica libre de contexto

Semelhante a Gramatica libre de contexto (20)

Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
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
 
Compiladores1
Compiladores1Compiladores1
Compiladores1
 
Apuntes compiladores
Apuntes compiladoresApuntes compiladores
Apuntes compiladores
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarraga
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
 
Fases de los compiladores
Fases de los compiladoresFases de los compiladores
Fases de los compiladores
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis Lexico
 
Expresiones regulares fin
Expresiones regulares finExpresiones regulares fin
Expresiones regulares fin
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 

Último

BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOMARIBEL DIAZ
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalRosarioChoque3
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...GIANCARLOORDINOLAORD
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectosTrishGutirrez
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacionviviantorres91
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 

Último (20)

BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacion
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 

Gramatica libre de contexto

  • 1.   GRAMÁTICA LIBRE DE CONTEXTO El análisis gramatical tiene como tarea determinar la estructura de un programa, por esta razón es conocido también como análisis sintáctico. Esta estructura o también conocida como sintaxis de un lenguaje de programación es regulado mediante unas reglas gramaticales inmersas dentro de una gramática libre de contexto. La estructura básica empleada en estas gramáticas es por lo general alguna clase de árbol, conocida como árbol de análisis gramatical o árbol sintáctico. Figura 1. Estructura básico, árbol sintáctico
  • 2.   Al contrario de los analizadores léxicos, donde existe un solo método algorítmico, representado por autómatas finitos, el análisis sintáctico involucra tener que elegir entre varios métodos diferentes entre si, con diferentes propiedades y capacidades, destacándose entre estos dos clases de algoritmos, análisis sintáctico descendente y análisis sintáctico ascendente. La gramática de libre contexto hace el uso de convenciones para nombrar expresiones regulares, con el uso de operaciones muy similares entre si, teniendo en cuenta que las reglas libres de contexto son altamente recursivas. Los algoritmos empleados para reconocer estas estructuras también difieren mucho de los algoritmos de análisis léxico, debido a la recursividad inmersos en estos algoritmos.
  • 3.   Un ejemplo de esta recursividad, es el uso de una proposición condicional definida por una regla como la siguiente: Ejemplo 1.1 Ø Si S1 y S2 son proposiciones y E es una expresión, entonces. Ø “If E then proposición. S1 else S2” es una Usando la variable sintáctica prop, con el fin de denotar la clase de proposiciones y expr para la clase de expresiones, se puede expresar recursivamente usando una producción gramatical Ø prop à if expr then prop else prop
  • 4.   TERMINOLOGIA PARA EL ANÁLISIS SINTACTICO 1. TERMINALES. Los terminales son los símbolos básicos con que se forman las diferentes cadenas, en el ejemplo anterior podemos reconocer cada una de las palabras claves if, then y else son terminales. 2. NO TERMINALES. Los no terminales son variables sintácticas los cuales denotan conjuntos de cadenas, en el ejemplo anterior podemos observar dos estructuras no terminales en prop y expr. Estas estructuras definen un conjunto de cadenas que definen el lenguaje generado por la gramática, estos imponen también estructuras jerárquicas sobre el lenguaje, útil para su análisis sintáctico como para su traducción.
  • 5.   3. SIMBOLO INICIAL. En una gramática, un no terminal se considera a su vez como el símbolo inicial, y a su vez el conjunto de expresiones representado por el lenguaje que es definido por la gramática. 4. PRODUCCIONES. Las producciones de una gramática son aquellas que especifican la forma como se combinan los terminales y los no terminales para formar diferentes expresiones entre si. Cada producción consta de un no terminal, seguido de una flecha u otro símbolo que reemplaza la misma, seguido por una cadena de terminales y no terminales.
  • 6.   Ejemplo 1.2 Ø expr Ø expr Ø expr Ø expr Ø op Ø op Ø op Ø op à à à à à à à à expr op expr ( expr ) - expr id + * / Teniendo la gramática anterior, la terminología utilizada para el análisis sintáctico viene dada por las siguientes estructuras: Símbolos terminales id + - * / ( ) Símbolos no terminales expr op Símbolo inicial expr Producción << expr à expr op expr >>
  • 7.   DERIVACIONES Y EL LENGUAJE DEFINIDO POR UNA GRAMÁTICA Existen diferentes formas de considerar el proceso mediante el cual una gramática hace una definición de un lenguaje. Las reglas gramaticales determinan un lenguaje especifico, el cual esta compuesto por conjuntos de cadenas legales de tokens. Estas reglas gramaticales libres de contexto determinan el conjunto de cadenas sintácticas legales de símbolos de tokens para las estructuras definidas por las reglas Ejemplo 1.3 Ø ( 28 + 17 ) / 14 cadena legal de 7 tokens ( numero – numero ) * numero Ø ( 28 + 17 / 14 cadena no legal, falta su paréntesis izquierdo.
  • 8.   Las reglas gramaticales determinan las cadenas legales de símbolos de token por medio de derivaciones. Una derivación se define como una secuencia de reemplazos de nombres de estructura mediante selecciones en los lados derechos de las reglas gramaticales. Estas derivaciones empiezan con un nombre de estructura simple y finaliza con una cadena de símbolos de token. En cada una de las etapas de una derivación se realiza un reemplazo simple utilizando una selección de una regla gramatical. En el siguiente ejemplo se proporcionara una derivación para la expresión del ejemplo anterior ( 28 + 17 ) / 14 utilizando reglas gramaticales vistos en ejemplos anteriores. Cada paso se proporciona a la derecha la selección de la regla gramatical utilizada para su reemplazo.
  • 9.   Ejemplo 1.4 Paso Derivación Regla Gramatical 1 exp => exp op exp => exp op numero => exp / numero => (exp) / numero => (exp op exp) / numero => (exp op numero) / numero => (exp + numero) / numero => (numero + numero) / numero [exp à exp op exp] [exp à numero] [op à /] [exp à (exp)] [exp à exp op exp] [exp à numero] [op à +] [exp à numero] 2 3 4 5 6 7 8 Los pasos de derivación utilizan una flecha diferente al símbolo de flecha que se emplea en la regla gramatical empleada “=>” “à”. Esto es debido a que existen diferencias entre un paso de derivación y su regla gramatical influyente al paso de su derivación. Las reglas gramaticales se encargan de definir, mientras que los pasos de derivación construyen mediante reemplazo.
  • 10.   El conjunto de todas las cadenas de símbolos obtenidos por las derivaciones del símbolo exp es el lenguaje definido por la gramática de expresiones. En este lenguaje encontramos la descripción de todas las expresiones sintácticamente legales. De manera simbólica podemos describirlo de la siguiente manera. Ø L(G) = {s | exp =>* s} En la producción anterior G representa la gramática de expresión, s representa una cadena arbitraria de token, los símbolos =>* representan una derivación compuesta de una secuencia de varios reemplazos vistos en el ejemplo anterior. Cada nombre de estructura en una gramática define su propio lenguaje de cadenas sintácticamente correcta de tokens.
  • 11.   ARBOL DE ANÁLISIS SINTACTICO Y DERIVACIONES Un árbol de análisis sintáctico se puede considerar como una representación grafica de una derivación que no muestra la relativa elección a su orden de sustitución. Los nodos al interior de un árbol de análisis sintáctico se etiqueta con algún no terminal y a su vez los hijos de dicho nodo se etiquetan de izquierda a derecha, con los respectivos símbolos del lado derecho de la producción por la cual se ha sustituido. Las hojas del árbol de análisis sintáctico se etiquetan con terminales o no terminales, leídas de izquierda a derecha. Figura 2. Árbol sintáctico para –(id + id)
  • 12.   REALIZADO POR LUISA FERNANDA BAOS PULIDO DANIEL EDUARDO MOLINA TORO INSTITUCIÓN UNIVERSITARIA COLEGIO MAYOR DEL CAUCA INGENIERÍA INFORMATICA LENGUAJES FORMALES POPAYAN (CAUCA) COLOMBIA NOV 2013 BIBLIOGRAFIA COMPILADORES, PRINCIPIOS, TECNICAS Y HERRAMIENTAS, ALFRED V. AHO , PRENTICE HALL MEXICO, 2008. CONSTRUCCION DE COMPILADORES, PRINCIPIOS Y PRACTICA, KENNETH C. LOUDEN,