Gramáticas
Otoño2012
Importancia de las gramáticas
2
Son una herramientamuy poderosa paradescribir y analizar
lenguajes.
3
Frase Sujeto PredicadoSujeto Articulo NombrePredicado Verbo AdverbioArticulo el │laNombre perro │gataVerbo estáAdverbio cerca │lejos
Definición
4
Jerarquía de ChomskyGramáticas Lenguajes Máquinas que
los aceptan Sin restricción
(tipo 0) Recursivamente
numerables Máquinas de Turing
Sensitivas al contexto (tipo 1)
Sensitivos al contexto
Autómatas lineales
Libres de contexto (tipo 2)
Libres de contexto Autómatas de pila
Regulares (tipo 3)
Regulares Autómatas finitos deterministas o no
deterministas
5
G3 G2 G1 G0
Descripción de las gramáticas
• Gramáticas Regulares (tipo 3 o G3):• El lado izquierdo consiste sólo de una variable.• El lado derecho consiste de• Un símbolo terminal seguido de una variable ó• Sólo un símbolo terminal ó• La cadena vacía.
Ejemplo: A aB | a |
• Gramáticas Libres de Contexto, GLC, (tipo 2 o G2):• El lado izquierdo consiste sólo de una variable.• No hay restricciones para el lado derecho.
Ejemplo: S aSb | ab |
6
• Gramáticas Sensitivas al Contexto (tipo 1 o G1):las reglas son de la forma A donde , (TN)*, (TN)*-, y A N S, es decir, A es un símbolo no terminal. Además, las reglas son no-contractivas, es decir, la longitud del lado izquierdo es menor o igual a la longitud del lado derecho. Esta propiedad de no-contracción garantiza que un lenguaje sensitivo al contexto no contiene .Ejemplos: S abc | aAbc Ab bA Ac Bbcc
bB Bb aB aa | aaA• Gramáticas sin restricción (tipo 0 o G0): el conjunto de reglas donde
no hay restricciones, excepto que el lado izquierdo no es .Ejemplos: S aSBC | aBC CB BC aB ab
bB bb bC bc cC cc A bc 7
Descripción de las gramáticas
Operaciones sobre Gramáticas:Derivaciones• Derivación por la izquierda: las reglas de producción se
aplican primera la regla que esta mas a la izquierda.
• Derivación por la derecha: las reglas de producción se aplican primero la regla que esta mas a la derecha
• Ejemplo: G = (N, , S, P)• N = {S, A, a, b}• T = {a, b}• S = {S}• P: S AA A AAA | bA | Ab | a
8
Sentencia de asignación de un lenguaje tipo Pascal:
Sent_asig Var := Expresion
Expresion Expresion + Termino | Expresion- Termino | Termino
Termino Termino * Factor | Termino / Factor | Factor
Factor ( Expresion ) | ident | num
Var ident
9