Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lenguajes y Autmatas
Gramticas
Chomsky -59
T: Vocabulario terminal
N: Vocabulario no terminal
P: conjunto de reglas de produccin : (T|N)+ --> (T|N)*
S: Smbolo inicial (S N)
Derivaciones:
b --> d es un paso de derivacin si b-->d P
-*--> , si y solo si existe una secuencia de derivaciones
directas
--> 1 --> 2 -->..... --> n -->
L = { / S -*--> , T*}
Introduccin al diseo de Compiladores
CLASIFICACION DE GRAMATICAS
Tipo 3 Sin
restricciones
Tipo 2
Sensibles al contexto
Monotnicas
Tipo 1
Libres de
contexto
Tipo0 : Regulares
Lineal Derecha
Lineal Izquierda
Tipo 2 : Monotnicas
--> , (NUT) + y (NUT) + y || <= | |
No pueden achicarse.
Ej: L = { an bn cn , con n>0}
S --> aSBC bB --> bb
CB -->BC
cC --> cc
o bien
S --> abC
aB --> ab
bC --> bc
cC --> Cc
5
( Monotnicas)
S
a
a b C
B
b
S
a
C
c
C
b
b
c
c
pero no puede haber ms no termerminales a izquierda que a derecha
Introduccin al diseo de Compiladores
CB -> CX
Introduccin al diseo de Compiladores
S --> abC
aB --> ab
CX ->BX
bC --> bc
BX -> BC
7
S
a
S
b
a S b
Tipo0 : Regulares
A --> aB, o bien A --> a Lineal Derecha
A --> Ba , o bien A --> a Lineal Izquierda
A, B N y a T*
Ej: 0*1
S -->A1 , A -->A0 |
S
A
A
A
1
0
fraseS -->lista fin ---> nombre , lista fin --> nombre, nombre,lista fin
-->
10
Contexto
lista
11
lineal
derecha
12
13
14
15
Smbolo
Significado
::=
Se deriva en
or (alternativa).
::=
+ <unsigned-int> | - <unsigned-int>
::= 0|1|2|3|4|5|6|7|8|9
16
Digito
Parmetros de un programa
(
Identificador
,
Introduccin al diseo de Compiladores
Identificador
Letra
Letra
Digito
17
ARBOLES SINTACTICOS
Forma tpica de un Arbol Sintctico para una:
Gramtica Libre de Contexto
Gramtica regular
S
n+1
S
S
.
S
n-1
18
Equivalencias
Gramticas regulares
AEF
Expresiones regulares
Gramticas libres de
contexto
autmatas
Push Down
19
1. S--> A
I={q(A)}
2. A-->aB
a
q(A) -->q(B)
3. A --> a
a
q(A) --> q(f)
20
Ejemplo de transformacin
Sea la gramtica G:
1. S--> T
2. T--> aP
I={q(T)}
3. P-->bC
f(q(T),a) = q(P).
4. P-->bP
f(q(P),b) = q(C).
5.C-->a
f(q(P),b) = q(P).
F={q(f)}
f(q(C),a) = q(f).
21