Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 2
Descripción de lenguajes
Lenguajes de programación
1. Programas
2. Lenguajes de alto nivel y de máquina
3. Traductores
1. Especificaciones gramaticales y semánticas
Lenguajes formales
◦ Alfabeto
◦ Palabras
Sintaxis
◦ Reglas de formación de palabras y frases
Semántica
◦ Significado de las palabras y frases
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 3
El problema de la traducción
MOVE 3 to A A := 3;
(Cobol) (Ada,Pascal)
A=3 3A !
(Fortran) (Forth)
MOV AX, 3
A =3;
01010111 /A 3 def
(C/C++, JS, (Postscript)
Java) 11101010
00000101
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 4
Unidad I
Análisis
Sintáctico
árboles
Programa en
Análisis Traductor lenguaje de
Semántico máquina
Unidad II
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 5
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 6
Reglas de producción
N R N (elemento a definir) R (patrón de generación)
Sean: v w donde v, w ∈ Σ*
Derivación directa: v w
Derivación: v v1 v2 … w
Regla compresora
N R |N| > |R| Ej: 101 11
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 7
Gramáticas formales
Definición: G = {Σ, Σt, S, P}
Σ alfabeto (Σt U Σn) Σn = variables
Σt conjunto de símbolos terminales
S axioma S ∈ Σn
P conjunto finito de reglas de producción
Lenguaje generado: L(G) conjunto de todas las
palabras o cadenas generadas por la gramática
Equivalencia: L(G1) = L(G2)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 8
Gramáticas formales
P = { S -> aSb, S -> aSbb, S -> b } S
Σn = { S }
aSb
Σt = { a, b } ¿Qué genera?
aSbb
Dados ∑n = {S, T} ∑t = {a, b}
Obtener P para L = { ar b / r > 0 } b
aabbbb
S -> aS S -> aT S -> aS
X
S -> b T -> aT S -> aT
T -> b T -> b
Dados ∑n = {S, T} y ∑t = {a, b, c}
Obtener P para
L = { ar b cr / r > 0 } X
S -> aSc
S -> b
S -> aSc
S -> T
T -> b
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 9
Regulares (G3)
• Condición: N R donde N=Σn, R = (Σt ∪ Σn) ó Σt ó λ
• Ejemplo: A → aB | a | λ
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 10
G3 (regulares)
Regular x derecha Regular x izquierda
S -> 1A S -> C0
A -> 1A | 0B | 0 C -> C0 | D1 | 1
B -> 0B | 0 D -> D1 | 1
Ambas generan
11000
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 11
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 12
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 13
G2 (independientes de contexto)
Ambas generan
0 n1 n2 m con n, m ≥ 0
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 14
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 15
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 16
Diagramas sintácticos
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 17
EBNF:
<expr> ::= <term> { (‘+’ | ‘-’) <term> }
Diagrama sintáctico
expr
term
+
term
-
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 18
Notaciones
Infija
más usual (requiere paréntesis)
Postfija
Evaluación muy eficiente
Prefija
notación funcional
C PostScript Lisp
a=a+ b /a a b add def (setf a (+ a b))
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 19
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 20
Máquinas abstractas
Permiten simular procesos para tratar información
la información se codifica en cadenas de símbolos
son “dispositivos” que manipulan cadenas de símbolos
procesan cadenas de entrada y producen cadenas de salida
reciben los símbolos de entrada secuencialmente
El símbolo de salida, en un instante dado depende de
el último símbolo de entrada
la secuencia o cadena, que ha recibido hasta ese instante
el estado en que se encuentra
Estados de un autómata
en un instante de tiempo dado, sólo puede estar en un estado
estados iniciales y estados finales
Formas de descripción: gráfica, matricial, funcional
Se usan como reconocedores de lenguajes
Existen distintos tipos de autómatas
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 21
Máquinas abstractas
Máquina de Mealy
ME = (Σe, Σs, Q, f, g) 0/11
1/11
0
1
f: Q x Σe Q g: Q x Σe Σs B C B/00 C/01
A/0 A
ME = (Σe, Σs, Q, f, g) 10 00 10/1 00/0
Σe: alfabeto de entrada Σs: alfabeto de salida
B/1
Q: conjunto finito de estados ≠ ∅ C/0 B C
f: Q x Σe Q g: Q Σs
21
La salida depende sólo del estado actual
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 22
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 23
Algoritmo de implementación
est = 1
repetir { b, $, 2 0
$, 2 a
leer c
segun (est) { 2 a, 2 a, b
a $
1: si c == ‘a’ hace est = 2
si c == ‘b’ hace est = 3 1 b 2 4
sino est = 0
b
2: si c == ‘a’ hace est = 2 3 $
sino est = 0
3: si c = ‘$’ hace est = 4
si c == ‘b’ hace est = 2
sino est = 0
4: si c == ‘$’ hace est = 4
si c = ‘2’ hace est = 3
sino est = 0
}
} hasta c == ‘’
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 24
1 q1
1 0 1 0 0 …
q0 0,1
0
λ,1
λ
q2 q3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 25
Gramáticas G3 y autómatas
Un lenguaje regular es el que se puede generar a partir de la aplicación de las operaciones de
unión, concatenación y el cierre de Kleene un número finito de veces.
Gramática regular
ΣT = {0, 1}
ΣN = {A, B, S}
P = { S 0A, A 0S, A 1B, B 1, B 0 }
Autómata
Expresión regular
0.(0.0)*.1.(1|0)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 26
Expresiones regulares
Kleene (1956)
Describen máquinas de estados finitos
Operadores
Unión | V +
Concatenación .
Cierre (Kleene) *
Cierre (positivo) +
El problema de la conversión
Obtener el AEF
a.(b|c*).d ¿y la gramática?
y z
x w
(x | y*).z*.w q0 q1 q2 ¿ y.y.y.z.z.w ?
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 27
Conversión AEF a ER
Algoritmo de transformación
c c
b
a b a
qi qk qf qi qf qi qf
c
a
b d
qk
a.c*.b
a.c*.b qi
a | b.c*.d qf
qi qf qi
Sea
b.(b*.a.b)*.b*.(a|b).b*
1) b.bbb.a…. y queda en q0
Desde q0:
2) b.bbb….
(b.b*.a)*.b.b*.(a|b).b*
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 28
Conversión ER a AEF
Algoritmo
McNaughton,
Yamada,
Thompson
Sea (1 | 0)*1
convertir a
AFD y
minimizar
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 29
Equivalencia de autómatas
Se basa en la construcción de subconjuntos
Cada estado de AFD contiene un conjunto de estados del AFND
∀ AFND ∃ AFD (AFD son casos particulares de AFND)
N=(∑, q0, Q, F, f) equivale a D=(∑, {q’0}, Q’, F’, f’)
Es decir N = D / L(D)=L(N)
Si se cumple que:
Q’ = 2|Q| (conjunto potencia P(Q) )
q’i = [qi , …, qf ] => {qi , …, qf} ⊂ Q’
q’0 = {q0}
F’ = { q’ ∈ Q’ / q’ ∩ F ≠ ∅ } (al menos uno sea final)
f’(q’, a) = {∪q∈q’ f(q, a)} / q ∈ Q Λ a ∈ ∑
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 30
Equivalencia de autómatas
Algoritmo:
Eliminar estados superfluos (no alcanzables o que no conducen a un
estado final)
Construir el conjunto 2|Q| de estados combinados
Para cada estado de 2|Q| y símbolo de entrada, analizar cuáles estados
son alcanzables
Eliminar los estados
No alcanzables (excepto el inicial)
Aquellos que sólo son alcanzados por los eliminados en el paso previo
Los duplicados (debe quedar uno de ellos)
Construir el grafo del AEFD
El grafo obtenido debe ser conexo
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 31
Equivalencia de autómatas
Estados a b c
{} - - -
*
>* q0 q0,q1,q2 q1,q2 q2
*q1 - q1,q2 q2 **
*q2 - - q2
>*q0,q1 q0,q1,q2 q1,q2 q2
**
>*q0,q2 q0,q1,q2 q1,q2 q2 **
*q1,q2 - q1,q2 q2
>*q0,q1,q2 q0,q1,q2 q1,q2 q2
Se eliminan:
* estado de captación global
** no alcanzables
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 32
Equivalencia de autómatas
Estados a b
q1
λ {} {} {}
a > {q0} - -
q0 b {q1} *{q2,q3} -
a
*{q2} - -
q2
{q3} *{q2} {q1}
q3 a {q0,q1} *{q2,q3} -
*{q0,q2} - -
La transición vacía no se considera {q0,q3} *{q2} -
sólo se tiene en cuenta cuando está en el
camino de otro símbolo procesable *{q1,q2} *{q2,q3} -
{q1,q3} *{q2,q3} {q1}
q2, *{q2,q3} *{q2} {q1}
a q3 *{q0,q1,q2} *{q2,q3} -
q0, a {q0,q1,q3} *{q2,q3} {q1}
a *{q0,q2,q3} *{q2} {q1}
q1 b
*{q1,q2,q3} *{q2,q3} {q1}
q2
*{q0,q1,q2,q3} *{q2,q3} {q1}
q1
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 33
Minimización de autómatas
Si para AFD=(∑, q0, Q, F, f) ∃ AFDM=(∑, q’0, Q’, F’, f’) entonces
L(AFD)=L(AFDM)
Eliminar los estados no alcanzables desde el estado inicial
Eliminar los estados desde los que no se alcanza un estado final
Luego:
1. Hacer partición inicial P en dos grupos G’(F) y G’’(Q – F)
2. ∀ G de P (|G| > 1) obtener nueva Pn de modo que:
∀ qi, qj ∈ Gi ∀ α ∈∑ se cumple: f(qi, α), f(qj, α) Gi
sino deben separarse en un nuevo grupo
3. sustituir G en Pn por el nuevo conjunto de subgrupos
4. si Pn= P entonces Pfinal := P e ir a (5) sino P := Pn e ir a (2)
5. Elegir en cada grupo un qi, como representante del grupo
6. Eliminar estados pasivos (“sumideros” no finales o no alcanzables)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 34
Minimización de autómatas
AFD reconoce L = (a|b)*abb
Caminos posibles ¿cuál es válido?
Q1 aQ2 aQ2 bQ4 aQ2 bQ4 bQ5
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 35
Minimización de autómatas
AFD reconoce L = (a|b)*abb Est a b
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 36
Minimización de autómatas
a
Q1 a Q2 b Q4 b Q5
a
b a b
Q3
b
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 37
Autómatas de pila
AP = ( Σ, Γ, Q, a0, q0, F, f )
Σ: alfabeto de entrada q0: estado inicial
Γ: alfabeto de pila F: estados finales
Q: conjunto de estados f: Q × (Σ ∪ {ε}) × Γ → Q × Γ
a0: símbolo inicial pila
Descripción o configuración instantánea: terna (q, x, z) que define el estado del
autómata, donde q ∈ Q, x ∈ Σ, z ∈ Γ
Movimiento: paso o transición de una descripción instantánea a otra y se produce
como resultado de la aplicación de f
q x, z /w donde w ∈ Γ
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 38
0, ε # 1, # ε
ε, ε $ ε, ε ε ε, $ ε
q0 q1 q2 q3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 39
Formas de reconocimiento
Reconocimiento por vaciado de pila
Lvp(M)={w∈Σ*/(q0,w,a0) (p,ε,ε),p∈Q}
Reconocimiento por alcanzar el estado final
Lef(M)={w∈Σ*/(q0,w,a0) (p,ε,h),p∈F,h∈Γ*}
Lvp y Lef reconocidos pueden ser diferentes
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 40
Comportamiento de un AP
Gramática libre de contexto Autómata de Pila
ΣT = {a, b} ΣN = {S} Σ: {a, b} q0: e0
P = { S -> aSb| λ } Γ : {$, a} F: {e3}
L1 = {anbn / n > 0} Q: {e0,e1,e2,e3} a0: $
Cinta
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 41
Comportamiento de un AP
Cinta
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 42
Comportamiento de un AP
Cinta
a
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 43
Comportamiento de un AP
Cinta
a
a
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 44
Comportamiento de un AP
a
Cinta
a
a
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 45
Comportamiento de un AP
a
Cinta
a
a
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 46
Comportamiento de un AP
Cinta
a
a
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 47
Comportamiento de un AP
Cinta
a
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 48
Comportamiento de un AP
Cinta
a a a b b b $
Pila
a, λ a b, a λ
λ, $ $ b, a λ λ, $ $
e0 e1 e2 e3
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 49
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 50
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 51
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 52
Definir el AP correspondiente
G2 = (∑T, ∑N, S, P) Definir AP
∑T = {a, b, c, d} 1) Σ con Σt Σ = {a, b, c, d}
∑N = {S, A, B} 2) Γ con Σt + Σn + # Г = {a, b, c, d, S, A, B, #}
3) Q como i, p, q y fi
P={ Agregar transiciones Q = {i, p, q, fi}
S aAa, 4) (i, λ, λ p, #) a0 = #
A bB | c, 5) (p, λ, λ q, S) q0 = i
B Acd 6) (q, λ,N q,w) ∀ Σn F = fi
} 7) (q, x, x q, λ) ∀ Σt
8) (q, λ, # fi, λ)
λ, A / c λ, B / Acd
λ, S / aAa λ, A / bB
λ, λ / # λ, λ / S λ, # / λ
i p q f
b, b /λ a, a /λ
c, c /λ d, d /λ
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 53
Comportamiento del AP
S aAa
A bB | c
a b c c d a
B Acd
λ, B / Acd
λ, A / bB
λ, A / c
c
A
λ, S / aAa
c
b
a
λ, λ / # λ, λ / S λ, # / λ B
A
d
i p q f
a
a
S
b, b /λ #
c, c /λ
a, a /λ
d, d /λ
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 54
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 55
Máquinas de Turing
AP = (Γ, Σ, b, Q, q0, F, f)
Σ: alfabeto de entrada ⊂ Γ
Γ: alfabeto de símbolos de la cinta
b: blanco ∈ Γ, ∉ Σ
Q: conjunto de estados
q0: estado inicial ∈ Q
F: estados finales ⊂ Q
f: Q x Γ Q x Γ x {I, D, P}
cinta
… …
estados Control
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 56
Máquinas de Turing
Duplicador
1 → $, R 1 → 1, L 1 → 1, R
q0 ◊ → ◊, L q1 $ → 1, R q2
◊ → ◊, R En 1936, Alan Turing resolvió el planteo
◊ → 1, L hecho por David Hilbert sobre si las
q3 Matemáticas son decidibles, es decir, si hay
un método definido aplicable a cualquier
sentencia matemática que determine si es verdadera o no.
En el artículo On Computable Numbers, Turing construyó un modelo
formal de computador, la Máquina de Turing, demostrando que había
problemas que una máquina no podría resolver.
Esa máquina fue el primer modelo teórico de lo que
luego sería una computadora programable.
Con el tiempo se las denominó máquinas
de estado finito, debido a que en cada etapa
de cálculo, la siguiente acción se contrasta
con una lista finita de estados posibles.
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 57
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 58
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 59
Análisis léxico
Funciones de un scanner
1. Recibir caracteres de entrada
2. Agruparlos según la G3 para reconocer lexemas y
generar tokens
3. Detectar algunos significados y errores
1. identificar los tokens y evaluarlos
4. Introducir información adicional descriptiva
5. Eliminar separadores innecesarios
6. Sustituir macros
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 60
Análisis léxico
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 61
Análisis léxico
token
lexema
lexemas (texto caracteres con asociado a cada
del programa) un significado lexema
específico
(componentes
léxicos)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 62
Análisis sintáctico
Funciones de un parser
1. Recibir tokens suministrados por el scanner
2. Agrupar tokens
1. de acuerdo a producciones especificadas por la G2
para reconocer frases
2. determinar si son sintácticamente correctas
3. establecer la estructura subyacente
3. Detectar errores sintácticos
4. Generar árboles sintácticos
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 63
Análisis sintáctico
Proceso de análisis
Tokenizado Árbol
Analizador
léxico
Analizador
sintáctico
Reglas de
producción
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 64
Análisis sintáctico
Árboles de sintaxis
Concreta: sirve para el análisis sintáctico
Abstracta: sirve para el análisis semántico
Sea: S if expr then A endif ;
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 65
Análisis sintáctico
Analizadores recursivos
cada no-terminal tiene asociada una rutina de análisis,
creada a partir de las reglas gramaticales
scan de izquierda a derecha
Estrategias de análisis
DESCENDENTE(Top-Down)
construye el árbol desde la raíz (S) hacia las hojas
problemas con recursividad a izquierda
ASCENDENTE(Bottom-Up)
construye el árbol desde las hojas hacia la raíz (S)
se basa en encontrar una derivación por la derecha
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 66
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 67
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 68
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 69
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 70
Analizador descendente
Sea: {S->xAx, S->λ, A->yAy, A->xBx, B->z}
1 2 3 4 5
xyxxzyx$
xyxxzyx$ 1
x xyxxzyx$
xAx xyxxzyx$ 3
y xyxxzyx$
xyxxzyx$ 4
x xyxxzyx$
xyxxzyx$ 5
z xyxxzyx$
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 71
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 72
Analizadores LL y LR
Sea
Producción:
E E+E | E*E | (E) | E | id
Enunciado:
id + id * id
Derivaciones
- por izquierda
- por derecha
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 73
Analizador ascendente
1 2 3 4 5
E E + E | E * E | (E) | E | id
Pila Árbol Entrada Regla
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 74
Analizador ascendente
1 2 3 4 5
E E + E | E * E | (E) | E | id
Pila Árbol Entrada Regla
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 75
Analizador ascendente
1 2 3 4 5
E E + E | E * E | (E) | E | id
Pila Árbol Entrada Regla
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 76
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 77
Fases de análisis
sup = alto*ancho;
análisis léxico
(id,sup)(asignador)(id,alto)(opMult)(id,ancho)(separador)
análisis sintáctico
(asignador)
(id,sup) (opMult)
(id,alto) (id,ancho)
análisis semántico
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 78
Semánticas
La sintaxis es insuficiente para describir lenguajes
int A; léxica y sintácticamente correcto, pero…
¿ cuál es el significado ?
Utilidad de las semánticas
1. Definir “qué deben hacer” los enunciados de un lenguaje
2. Implementar correctamente el lenguaje
3. Desarrollar técnicas y herramientas de
1. Análisis y optimización, depuración, verificación, etc.
4. Ayudar a “razonar sobre el funcionamiento” de los
programas (recursos usados, corrección, …)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 79
Semántica estática
Se calcula en tiempo de compilación
Ejemplos de aspectos que controla
Correspondencia de la signatura de funciones
Accesos a variables consistentes con su declaración
Que identificadores y expresiones sean evaluables
Que el Left-side sea asignable
Compatibilidad de expresiones y operadores
Accesibilidad de las variables según su alcance
Uso de identificadores únicos
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 80
Semántica dinámica
Ciertos significados se detectan en la ejecución
Punteros con referencias nulas
Valores límites de subíndices de arreglos
Consistencia en el pasaje de argumentos
Otros: x := z / y ¿ qué pasa si y == 0 ?
Errores de “lógica” que cambian la semántica de un enunciado,
NO SON DETECTABLES
x := z / y si lo que se quería escribir era x := z * y
Ejemplo de semántica dinámica en JS
Si z = “45”; entonces z + 5 = 455
Si z = 45; entonces z + 5 = 50
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 81
Especificación de la semántica
Es deseable satisfacer características como:
No ambigüedad: facilitar la creación de descripciones rigurosas
Demostración: permitir la posterior demostración de propiedades de
los programas escritos en el lenguaje especificado
Prototipado: posibilitar obtener prototipos ejecutables de los
lenguajes que se diseñan de forma automática
Modularidad: realizar la especificación de forma incremental
Reusabilidad: facilitar la reutilización de descripciones para diferentes
lenguajes
Legibilidad: ser legibles por personas con formaciones heterogéneas
Flexibilidad: adaptarse a la variedad de lenguajes existentes
Experiencia: ser capaz de describir lenguajes reales, no sólo quellos
sencillos o experimentales
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 82
No ambigua
Modular
reusable
demostrar
prototipar
legible
flexibñe
experiencia
Semántica
Lenguaje natural S S R S S
Operacional S R R R S S
Denotacional S S R S R
Axiomática R S R S
Algebráica S R S S R R R
De estado abstacto S S R R S R S
De acción S S R R S R R
Monádica modular S S S R S
Monádica reutilizable S S S S S S
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________
Diapositiva 83
Tipos de Errores
SINTAXIS SEMÁNTICA ESTÁTICA SEMÁNTICA DINÁMICA
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________