Está en la página 1de 70

Modelos de Computación

Tema 3: Gramá+cas Formales

Grado en Ingeniería de Sistemas de Información


Curso 2020/2021
Sergio Saugar García

Universidad CEU San Pablo


Escuela Politécnica Superior
Departamento de Tecnologías de la Información
Índice

1. Concepto de Gramática Formal


2. Tipos de Gramáticas
3. Árboles de Derivación

2
Índice

1. Concepto de Gramática Formal


2. Tipos de Gramáticas
3. Árboles de Derivación

3
Concepto de Gramá1ca Formal
Introducción (i)

• Hemos visto que lenguajes son subconjuntos de las palabras sobre un


alfabeto (LÍW(å))

• ¿Cómo se puede definir las palabras que pertenecen a un


determinado lenguaje?
– Enumerando el conjunto de palabras
• ¿Algunos lenguajes son infinitos?
– Descripción informal de las palabras:
• A veces complicado y demasiado impreciso
– Descripción formal, basada en los operadores de palabras:
• No suelen ser suficientes para especificar todos los lenguajes
Concepto de Gramá1ca Formal
Introducción (y ii)

• Necesitamos un formalismo para definir los lenguajes (las


palabras que pertenecen a un lenguaje).

– Una posibilidad - Gramáticas formales:


• Una gramática describe de forma inequívoca la estructura de las
palabras de un lenguaje
• Proporcionan un mecanismo para generar todas las palabras que
pertenecen a un determinado lenguaje (también se llaman
gramáticas generadoras)
Concepto de Gramática Formal
Producciones (i)

• Producciones:

– Definición (Producción):
Sea S un alfabeto. Una producción es un par ordenado (x, y),
también representado por x::=y, tal que xÎå+ e yÎå*

• Se llama a x parte izquierda de la producción e y parte derecha


• También llamadas reglas de producción, reglas de escritura o reglas de
derivación.
Concepto de Gramática Formal
Producciones (ii)

– Definición (Derivación directa):


Sea S un alfabeto, x::=y una producción sobre å, y v,wÎå*

• w es una derivación directa de v, o v produce directamente w, o v se


reduce de forma directa a w, representado por v®w, si:

$ z, uÎå*: v=zxu Ù w=zyu


Concepto de Gramá1ca Formal
Producciones (iii)

– Ejemplos: S={a, b}; a::=bb


• v=aabbaa
– w1=bbabbaa
– w2=aabbabb ¿Para que wi se verifica v®wi?
– w3=bbbbbbaa
– w4=bbabbab
• v=a
– w=bb ¿v®w?

• si x::=y es una producción sobre S, entonces se verifica x®y

• Nota: Aparte de "::=" se usará también "®" como símbolo de la


operación de producción. El contexto determina si "®" se refiere a
una producción o una derivación.
Concepto de Gramá1ca Formal
Producciones (iv)

– Definición (Derivación):
Sea S un alfabeto, y P un conjunto de producciones sobre å. Sean
v y w dos palabras de å*. Se dice que w deriva de v, o v produce
w, o v se reduce a w, y se presenta por v®*w si:
1. v=w
2. existe una secuencia finita de derivaciones directas
u0®u1
u1®u2

un-1®un
tales que u0=v y un=w.
• La longitud de una derivación v®*w es el número de derivaciones
directas en la secuencia.
• El operador ®+ se refiere a una derivación con longitud >0
Concepto de Gramática Formal
Producciones (v)

– Ejemplos:
• La longitud de u®*u es 0
• å={ C, N, 0, 1, 2}
• P={ N::=CN, N::=C, C::=0, C::=1, C::=2}
¿Longitud de N ®* 00?
N ® CN
CN ® CC
CC ® 0C N ®* 00 con longitud 4
0C ® 00

• ¿{ x | x Î å* y CCC ®* x y x es “irreducible”}?
• ¿{ x | x Î å* y N ®* x y x es “irreducible”}?
Concepto de Gramática Formal
Producciones (y vi)

– Propiedades de la derivación

• Reflexiva: " x Î å* : x ®*x


• Transitiva: " x, y, z Î å* : si x ®* y e y ®* z, entonces
x ®* z
• Simétrica: no
Concepto de Gramá1ca Formal
Gramá7ca Formal (i)

• Gramá6ca Formal:
– Ejemplo: GramáXca del Castellano
La sintaxis del castellano se define mediante reglas:
1. Un oración consta de sujeto y predicado y termina con un punto.
2. Un sujeto es una frase nominal.
3. Una frase nominal es un grupo nominal seguido de un califica5vo (que
puede faltar)
4. etc…
Podemos usar producciones para representar estas reglas:
<oración>::=<sujeto> <predicado>.
<sujeto>::=<frase_nominal>
<frase_nominal>::=<grupo_nominal> <calificaXvo>
<frase_nominal>::=<grupo_nominal>
….
Concepto de Gramá1ca Formal
Gramá7ca Formal (ii)

– Podemos analizar si una palabra del lenguaje (en


castellano son frases) es "gramaticalmente correcta":
<oración>

<sujeto> <predicado> “.”

<frase_nominal> ... ...

<grupo_nominal> <calificativo> ... ...

El gato pequeño juega “.”


Concepto de Gramática Formal
Gramática Formal (iii)

– La idea consiste en definir un lenguaje mediante reglas de


producción.
• Ejemplo lenguaje formal 1
S={S, A, a, b}
P={S::=Ab, A::=aAb, A::=l}
¿Cuáles son todas las posibles derivaciones (irreducibles) desde S?

S®Ab®b
S®Ab®aAbb®abb
S®Ab®aAbb® aaAbbb®aabbb
...
{x | S ®*x y x es “irreducible”} = {anbn+1 | n>=0}
Concepto de Gramática Formal
Gramática Formal (iv)

– Ejemplo lenguaje formal 2


S={S, a, b}
P={S::=l, S ::= aSb }

¿ {x | S ®* x y x es "irreducible"}?

Se puede considerar que los elementos de S tienen distinta


funcionalidad:

S y A – variables ("símbolos no terminales")


a y b – "símbolos terminales"

S – símbolo no terminal de partida ("axioma")


Concepto de Gramá1ca Formal
Gramá7ca Formal (v)

– Ejemplo lenguaje formal 3


• Definición de la instrucción "if":

if_statement ::= if condiWon


then
sequence_of_statement
{elsif condiWon
then
sequence_of_statements
}
[
else
sequence_of_statements
]
end if;
Concepto de Gramá1ca Formal
Gramá7ca Formal (vi)

– Definición (Gramática formal):


Se denomina gramática formal a una cuádrupla:

G=(SN, ST, S, P), con:

• SN es un alfabeto de símbolos no terminales


• ST es un alfabeto de símbolos terminales
SN Ç ST = Æ ; llamaremos S al conjunto SN È ST

• SÎSN es el axioma o símbolo inicial

• P es un conjunto de producciones u::=v, tal que:


uÎS+ y vÎS*
u=xAy, x,yÎS*, AÎSN
Concepto de Gramática Formal
Gramática Formal (vii)

– Ejemplos:
G1=({S, A), {a, b}, S, P)
P={S::=Ab, A::=aAb, A::=l}

G=(SN, ST, S, P) no es una gramática si:


1. SÏSN
2. u::=v Î P con u Î ST*
3. $ a: a Î ST Ù aÎSN
Concepto de Gramática Formal
Gramática Formal (y viii)

– Definición (gramática en BNF):


Una gramática se encuentra representada en la forma Backus-
Naur (BNF), si todas las producciones tienen la forma u::=v y
todas las producciones con la misma cabeza:
u::=v , u::=w, ...
se representan por:
u::=v | w | ...
Concepto de Gramá1ca Formal
Lenguaje asociado a una gramá7ca (i)

• Lenguaje Asociado a una Gramá6ca:

– Definición (forma sentencial):


Sea una gramá\ca G=(SN, ST, S, P). Una forma sentencial de G es
una secuencia de símbolos xÎS* tal que S®*x

– Ejemplos:
G=({S, A), {a, b}, S, P)
P={S::=Ab, A::=aAb | l}
Formas sentenciales: S, Ab, aaAbbb, aabbb, b
No lo son: a, aaAbb
Concepto de Gramá1ca Formal
Lenguaje asociado a una gramá7ca (ii)

– Definición (sentencia):
Una sentencia de G es una forma sentencial x tal que x Î ST*

Usaremos también el término palabra


Concepto de Gramática Formal
Lenguaje asociado a una gramática (iii)

– Definición (lenguaje reconocido):


Dada una gramática G=(SN, ST, S, P), el lenguaje reconocido o
generado por G está formado por todas las sentencias (palabras)
de G:
L(G)={x | S®*x y x Î ST*}
Concepto de Gramática Formal
Lenguaje asociado a una gramática (iv)

– Ejemplos:

G1=({S, A), {a, b}, S, P)


con P={ S::=Ab
A::=aAb | l }

Þ L(G1)={anbn+1 | n³0}
Concepto de Gramá1ca Formal
Lenguaje asociado a una gramá7ca (v)

– Ejemplos:

G2=({S, A), {a, b}, S, P)


con P={ S::=Ab
A::=aAb }

Þ ¿L(G2)?
Concepto de Gramá1ca Formal
Lenguaje asociado a una gramá7ca (vi)

– Ejemplos:

G3=({S, A), {a, b}, S, P)


con P={ S::=Ab
A::=aAb | aS }

Þ ¿L(G3)?
Concepto de Gramática Formal
Lenguaje asociado a una gramática (vii)

– Ejemplos:

G4=({S, A), {a, b}, S, P)


con P={ S::=Ab
A::=ab | a }

Þ ¿L(G4)?
Concepto de Gramática Formal
Lenguaje asociado a una gramática (viii)

– Ejemplos:

G5=({A, B, C, D, E, S}, {a}, S, P)


con P={ S::=ABaC
Ba::=aaB
BC::=DC | E
aD::=Da
AD::=AB
aE::=Ea
AE::=l }

Þ ¿L(G5)? => PARA CASA!!!!


Concepto de Gramá1ca Formal
Lenguaje asociado a una gramá7ca (y ix)

– Ejemplos:

G6=({S, A), {a, b}, S, P)


con P={ S::=Ab
A::=Aab | a }

Þ ¿L(G6)?
Concepto de Gramá1ca Formal
Recursividad (i)

• Recursividad:

– Definición (gramática recursiva):


Una gramática se llama recursiva en U, U Î SN, si existen
derivaciones U ®+ xUy con x, y Î S*
• Si para todas las derivaciones recursivas en U se verifica x=l, se dice
que la gramática es recursiva a izquierdas en U

• Si para todas las derivaciones recursivas en U se verifica y=l, se dice


que la gramática es recursiva a derechas en U
Concepto de Gramática Formal
Recursividad (ii)

– Ejemplos:

G=( {S,A), {a,b}, S, P)


con P={ S::=Ab | Sa
A::=aAb | l }

Þ recursiva en A y S; recursiva a izquierdas en S


Concepto de Gramática Formal
Recursividad (iii)

– Ejemplos:

G=( {S,A), {a,b}, S, P)


con P={ S::=aAb
A::=Sb | l }

Þ recursiva en A y S (recordad ®+ ); no recursiva a izquierdas


Concepto de Gramá1ca Formal
Recursividad (y iv)

– Corolarios:

• Lenguajes infinitos sólo pueden describirse mediante gramáXcas


recursivas.

• Existen gramáXcas recursivas que generan lenguajes finitos.


Concepto de Gramá1ca Formal
Gramá7cas equivalentes (i)

• Gramáticas Equivalentes:

– Definición (Gramáticas equivalentes):


Dos gramáticas G1 y G2 son equivalentes si L(G1)=L(G2)

(se escribe G1º G2)


Concepto de Gramática Formal
Gramáticas equivalentes (y ii)

– Ejemplos:
G1=({S}, {a, b}, S, {S::= aSb | ab })
G2=({A, B, C, E},{a, b}, A, P)
con P={ A::=aABC | abC
CB::=BC
bB::=bb
bC::=b
E::=b }

Þ ¿son G1 y G2 equivalentes?
Índice

1. Concepto de Gramática Formal


2. Tipos de Gramáticas
3. Árboles de Derivación

35
Tipos de Gramá1cas
Jerarquía de Chomsky (i)

• Jerarquía de Chomsky:

G0

G1

G2

G3

– Todas las gramá\cas posibles: G3 Ì G2 Ì G1 Ì G0


Tipos de Gramáticas
Jerarquía de Chomsky (y ii)

– L(G0) = "lenguajes sin restricciones"

– L(G1) = "lenguajes sensibles al contexto" (o


dependientes del contexto)

– L(G2) = "lenguajes independientes del contexto"

– L(G3) = "lenguajes regulares"


Tipos de Gramá1cas
Jerarquía de Chomsky – Gramá7cas de 7po 0 (i)

• Gramá6cas de Tipo 0:
– Definición (GramáLcas de Lpo 0):
Las gramá6cas de 6po 0 son aquellas gramá\cas cuyas reglas de
producción \ene la forma:
xAy::=v con x, y, v Î S*, A Î SN

– Definición (gramáLca de estructura de frases):


Una gramá6ca de estructura de frases es aquella cuyas
producciones \enen la forma:
xAy::=xvy con x, y, v Î S*, A Î SN

– Nota: v puede ser l Þ la gramáLca puede tener reglas


compresoras y derivaciones decrecientes
Tipos de Gramáticas
Jerarquía de Chomsky – Gramáticas de tipo 0 (y ii)

– Propiedades de gramáticas de tipo 0 :


• Todo lenguaje descrito por una gramática del tipo 0, puede ser
generado por una gramática de estructuras de frases.

– Ejemplos: ¿Cuáles de las siguientes reglas cumplen con el criterio


de "estructura de frases"?
aABcD::=aABD aAd::=ad aABd::=aACDEfAd
aABE::=aABeE CB::=BC
Tipos de Gramáticas
Jerarquía de Chomsky – Gramáticas de tipo 1 (i)

• Gramáticas de Tipo 1:
– Definición (Gramáticas de tipo 1):
Las gramáticas de tipo 1 son aquellas cuyas producciones tienen
una de las dos formas siguientes:
1. xAy::=xvy con x,y ÎS*, AÎSN, vÎS+
2. S::=l, siendo SÎSN el axioma

• Nota:
– Las producciones mantienen el contexto pero no pueden ser
compresoras (con la excepción de S::=l):
Þ S ® u1 ® u2 ®... ® un con 1£ |u1| £ |u2| £ ... £ |un|
(si no se utiliza la regla S::=l)
– La regla S::=l permite generar la palabra vacía.
Tipos de Gramáticas
Jerarquía de Chomsky – Gramáticas de tipo 1 (y ii)

– Ejemplos: ¿Cuáles de las siguientes reglas son de \po 1?

AB::=aCdB aA::=aCBbb aBA::=a


ABC::=AC AaBF::=AaCF
Tipos de Gramá1cas
Jerarquía de Chomsky – Gramá7cas de 7po 2 (i)

• Gramá6cas de Tipo 2:
– Definición (GramáLcas de Lpo 2):
Las gramá6cas de 6po 2 son aquellas cuyas producciones \enen la
forma:
A::=v con v ÎS*, AÎSN

– Nota:
A::=l es una producción de Xpo 2.
Sin embargo, se puede demostrar que todo lenguaje generado por
una gramáXca de Xpo 2 puede ser generado por una gramáXca cuyas
producciones Xenen la forma:
A::=v con v ÎS+, AÎSN
S::=l siendo S el axioma de la gramáXca
Tipos de Gramáticas
Jerarquía de Chomsky – Gramáticas de tipo 2 (y ii)

– Ejemplos: ¿Cuáles de las siguientes reglas son de tipo 2?

AA::=b A::=aaB aBA::=a


a::=AC A::=l

La mayoría de los lenguajes de programación pertenecen a esta


categoría.
Tipos de Gramáticas
Jerarquía de Chomsky – Gramáticas de tipo 3 (i)

• Gramáticas de Tipo 3:
– Definición (Gramáticas regulares normalizadas):
• Gramáticas lineales por la izquierda: todas aquellas cuyas
producciones tienen una de las siguientes formas:
A::=a
A::=Va (S, A, V Î SN, a Î ST, y S el axioma)
S::=l
• Gramáticas lineales por la derecha: todas aquellas cuyas
producciones tienen una de las siguientes formas:
A::=a
A::=aV (S, A, V Î SN, a Î ST, y S el axioma)
S::=l
• Una gramática es regular (o de tipo 3) si es lineal por la
derecha o lineal por la izquierda
Tipos de Gramáticas
Jerarquía de Chomsky – Gramáticas de tipo 3 (ii)

– Ejemplos: ¿Cuáles de las siguientes reglas son de \po 3?

aA::=aaV A::=abV A::=Ba;


a::=C A::=l
Tipos de Gramá1cas
Jerarquía de Chomsky – Gramá7cas de 7po 3 (y iii)

– Ejemplos:

¿Lenguaje representado por G2?


G2=({S, B},{0, 1}, S, P)
con P={S::=B1 | 1, B::=S0}

¿Lenguaje representado por G3? => PARA CASA!!!


G3=({S, B},{0, 1}, S, P)
con P={S::=1B | 1, B::=0S}
Tipos de Gramáticas
Jerarquía de Chomsky – Cuadro de resumen

Lenguaje Gramática Producciones


Recursivamente Tipo0 General xAy::=v con x,y,vÎS* y AÎSN
enumerable Estructura de frases xAy::=xvy con x,y,vÎS* y AÎSN
(sin estricciones)
Sensibles al Tipo1 xAy::=xvy con x,yÎS* , vÎS+ y AÎSN
contexto S::=l S axioma
Independientes del Tipo2 General A::=v con vÎS* y AÎSN
contexto Normalizado A::=v con vÎS+ y AÎSN
S::=l S axioma
Regulares Tipo3 Lineal por la izda. General A::=x con xÎST* y A,BÎSN
A::=Bx
Normalizado A::=a con aÎST y A,BÎSN
A::=Ba
S::=l S axioma
Lineal por la dcha. General A::=x con xÎST* y A,BÎSN
A::=xB
Normalizado A::=a con aÎST y A,BÎSN
A::=aB
S::=l S axioma

47
Índice

1. Concepto de Gramática Formal


2. Tipos de Gramáticas
3. Árboles de Derivación

48
Árboles de Derivación
Representación (i)

• Representación Arborescente de Derivaciones:

– Definición (Árbol de derivación):


Sea G=(SN, ST, S, P) una gramáLca de estructura de frases y w una
forma sentencial de G, que se ob\ene mediante una derivación:

u0 = S ® u1 ® ... ® un= w
Árboles de Derivación
Representación (ii)

– El árbol de derivación de w correspondiente a dicha derivación


cumple las siguientes propiedades:
1. La raíz del árbol es S
2. Cada derivación directa se representa mediante un conjunto
de ramas que salen de un nodo dado de la siguiente forma:
Si ui®ui+1 es una derivación directa en la secuencia, tal que:
ui= xiAiyi con AiÎSN , xi, yiÎS*
ui+1= xiviyi con viÎS* y vi=vi1...vin

entonces: .... Ai ....

vi1 vi2 ... vin


Árboles de Derivación
Representación (iii)

– Notas: sobre árboles de derivación


• Todos los nodos interiores corresponden a símbolos no terminales
• Si un nodo l es hijo de un nodo padre, este padre no puede tener
otros hijos
• El resultado de un árbol de derivación es el conjunto de nodos hoja
de izquierda a derecha y corresponde a una forma sentencial (se
eliminan l sobrantes)
• Si todas las hojas del árbol son símbolos terminales o l, entonces el
resultado es una palabra
• Un árbol de derivación cuya raíz no es el axioma de la gramática es
un árbol parcial
Árboles de Derivación
Representación (iv)

– Ejemplos:
G1= ({A, B, S}, {a, b}, S, P)
P={ S::=AB
A::= aA | a
B::= bB|b }

¿Cuál es el árbol correspondiente a la siguiente derivación?


S ® AB ® aB ® abB ® abb
Árboles de Derivación
Representación (v)

• Solución: S ® AB ® aB ® abB ® abb

A B

a b b
Árboles de Derivación
Representación (vi)

– Ejemplos:

G2=({A, B, C}, {a, b}, A, P)


P={ A::= aABC | abC
bCB::= bB
bB::=bb
bC::=b }

A®aABC®aabCBC®aabBC®aabbC®aabb
Árboles de Derivación
Representación (vii)

• A®aABC®aabCBC®aabBC®aabbC®aabb

A B C

a a b λ b λ
Árboles de Derivación
Representación (viii)

– En general se puede afirmar que: Dada una derivación, existe un


único árbol que la representa

– Por el contrario: Un mismo árbol puede corresponder a varias


derivaciones (los dos ejemplos anteriores).
• Está úl\ma afirmación no es válida para gramá\cas lineales
(que incluyen las gramá\cas del \po 3).
Árboles de Derivación
Ambigüedad (ix)

– Definición (ambigüedad):
Sea una gramática G. Una sentencia xÎL(G) es ambigua si puede
obtenerse por medio de varias derivaciones distintas
correspondientes a árboles de derivación diferentes
• Una gramática es ambigua si genera alguna sentencia ambigua
• Un lenguaje es inherentemente ambiguo si no existe una gramática
que la describe y que no sea ambigua
Árboles de Derivación
Ambigüedad (x)

– Ejemplo:
G1=( { E } , { -, *, i }, E , P )
P = { E::= E - E | E * E | i }

Nota: (i abreviatura para número entero)

§ Dada la gramática G1, halla un árbol de derivación para la palabra:

i-i*i
Árboles de Derivación
Ambigüedad (xi)

– Solución: i–i*i E::= E-E | E*E | i

E E

9 6

E E

2 3

9 I - 2 I * 3 I
Árboles de Derivación
Ambigüedad (xii)

– ¿¿¿Otro??? i–i*i E::= E-E | E*E | i

21

E E

7 3
E E

9 2

9 I - 2 I * 3 I
Árboles de Derivación
Ambigüedad (xiii)

• Dos posibles interpretaciones:

i–i*i y i–i*i

¡¡¡Con valores disLntos!!!

Nota: A mí, personalmente no me gustaría que esto sucediera en mi


banco… :-)
Árboles de Derivación
Ambigüedad (xiv)

– La ambigüedad es una propiedad indeseada en lenguajes de


programación. Cada instrucción debe tener sólo una
interpretación
• Al calcular el valor de una expresión, el árbol de derivación especifica
en que orden se resuelven las operaciones (de abajo a arriba)
• If – then – else à dangling else (else colgante)
• …
– No existen algoritmos generales que nos digan si una gramáLca
dada es ambigua (problema no decidible)
– Tan sólo se pueden encontrar condiciones suficientes para
asegurar que una gramáXca no es ambigua (pero al ser
suficientes, si no se cumplen no se puede afirmar lo contrario)
Árboles de Derivación
Ambigüedad (xv)

– Notas:
• Existen lenguajes que son inherentemente ambiguos (que sólo se
pueden describir, por ejemplo, con gramáticas independientes del
contexto ambiguas).
• El hecho de que la gramática que describe un lenguaje sea ambigua
no implica necesariamente que el lenguaje sea inherentemente
ambiguo
Árboles de Derivación
Ambigüedad (xvi)

– Para desambiguar la gramática de las expresiones (G1) se usan


dos ideas:
1. Agrupación de operadores en una dirección (en este caso a la
izquierda). Asociatividad de operadores:
1. Cadenas de operandos para un mismo operador se generan de la derecha
hasta la izquierda (eso implica que se calculan las expresiones de
izquierda a derecha)
Árboles de Derivación
Ambigüedad (xvii)

E::=E-E | I 9-4-3–2
PROBLEMA E

E E

5 1

E E E E

9 4 3 2

9 I - 4 I - 3 I - 2 I
Árboles de Derivación
Ambigüedad (xviii)

E
E::=E-i | i 9-4-3-2
0
Solución!
E i
2 2
E i

5 3
E i

9 4
9 I - 4 I - 3 I - 2 I
Árboles de Derivación
Ambigüedad (xix)

– Para desambiguar la gramática de las expresiones (G1) se usan dos


ideas (cont.):
2. Definiendo reglas de precedencia entre operadores:
G2=({E}, {-,*,i}, E, { E::=E - i | E * i | i })
– Los operadores se generan en distintos "niveles"
» Se establece la precedencia. Por ejemplo:
» Paréntesis -> multiplicación -> Resta
» El axioma genera el operador de menor precedencia
» Los operadores de mayor precedencia se van dejando a niveles
"niveles más bajos" (variables a los que sólo se llegan a través de
varias derivaciones)
» Para forzar un cambio en la precedencia hay que introducir un
símbolo definido para el cambio (paréntesis, por ejemplo).
Árboles de Derivación
Ambigüedad (y xx)

– La G1, con la precedencia indicada es la siguiente:


G3=( {E,T,F}, {-,*,i,(,)}, E, {E::= E-T | T, T::= T * F | F, F::= (E) | i })

E T

T T F

F F

i - i * i

E® E - T® i - T® i - T * F ® i - F * F® i – i * F ® i – i * I

– Ahora, para dar precedencia a la resta hay que especificar la


palabra como (i - i) * i
¿Preguntas?

¿?

69
Modelos de Computación
Tema 3: Gramá+cas Formales

Grado en Ingeniería de Sistemas de Información


Curso 2020/2021
Sergio Saugar García

Universidad CEU San Pablo


Escuela Politécnica Superior
Departamento de Tecnologías de la Información

También podría gustarte