SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
 

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,

Más contenido relacionado

La actualidad más candente

maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasRaul
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formalesIsabel
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticasRobin Pena
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2Germania Rodriguez
 
Dispositivos de red capa fisica
Dispositivos de red capa  fisicaDispositivos de red capa  fisica
Dispositivos de red capa fisicaChava Jackson
 
Típos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretesTípos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretesElmer André Boulangger Alberca
 

La actualidad más candente (20)

maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y Problemas
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticas
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
Autómatas de pila
Autómatas de pila Autómatas de pila
Autómatas de pila
 
Dispositivos de red capa fisica
Dispositivos de red capa  fisicaDispositivos de red capa  fisica
Dispositivos de red capa fisica
 
Típos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretesTípos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretes
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 

Similar a Gramatica libre de contexto

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
 
Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarragaFabricio Galárraga
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semánticoAndres Pozo
 
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 2Universidad
 
Fases de los compiladores
Fases de los compiladoresFases de los compiladores
Fases de los compiladoresAlvaro Cedeño
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis LexicoFARIDROJAS
 
Expresiones regulares fin
Expresiones regulares finExpresiones regulares fin
Expresiones regulares finmariellitaocj
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexicoJhampier_Piedra
 

Similar a Gramatica libre de contexto (20)

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
 
Compilador Exp
Compilador ExpCompilador Exp
Compilador Exp
 

Último

Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptxCamuchaCrdovaAlonso
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfRaulGomez822561
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 

Último (20)

Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 

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,