Introducción al latín. LINGUISTICA LENGUAJE LEXICO HISTORIA MORFOLOGIA SINTAXIS SEMANTICA
Sintaxis y Semantica de Lenguajes
Transcript of Sintaxis y Semantica de Lenguajes
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 1
UTN - FRM: Fundamentos de sintaxis y semántica 1
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 2
Introducción Lenguajes de programación◦ Programas◦ Lenguajes de alto nivel y de máquina◦ Traductores Especificaciones gramaticales y semánticas
Lenguajes formales◦ Alfabeto◦ Palabras
Sintaxis◦ Reglas de formación de palabras
Semántica◦ Significado de las palabras
UTN - FRM: Fundamentos de sintaxis y semántica 2
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 3
Reconocimiento del código fuente de un programa
UTN - FRM: Fundamentos de sintaxis y semántica 3
Texto del programa(caracteres)
Lenguaje de máquina
Léxico
Sintáctico
Semántico
tokens
(palabras)
árboles
(frases)
Análisis
alfabeto
gramática
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 4
Conceptos sobre lenguajes
SímbolosAlfabeto: = {a, b, c, ...}
Cadenas o palabrasn con n >= 0
0 = {} (vacío , , , )
* = 0 1 2 ...
+ = 1 2 ... = * - {}
Universo de un alfabeto W()Todas las palabras formadas con símbolos de
Lenguaje sobre un alfabeto L() W()
UTN - FRM: Fundamentos de sintaxis y semántica 4
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 5
Conceptos sobre lenguajes
Operaciones con palabrasConcatenación: X.Y
Potencia: Xi
Reflexión: X, X‐1
Operaciones con lenguajesUnión: L1 L2 Intersección: L1 L2
Resta:L1 – L2 Concatenación: L1 L2
Potencia: Li Clausura: L+ = U∞i=1 Li
Cierre: L* = L+ U {} Reflexión: L‐1
UTN - FRM: Fundamentos de sintaxis y semántica 5
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 6
Conceptos sobre lenguajes
Derivación◦ Regla de producción: x y : x, y *
◦ Derivación directa: v w
◦ Derivación: v v1 v2 … w
◦ Derivación por izquierda y por derecha
◦ Ejemplo:
01 11
00 10
¿Derivaciones para la palabra?
00011
◦ Regla compresora: x y si |y| < |x|
UTN - FRM: Fundamentos de sintaxis y semántica 6
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 7
Gramáticas formales
DefiniciónG = {t, n, S, P}t: conjunto de símbolos terminalesn: conjunto de no-terminales (=t n y t n=)S: axioma : S nP: reglas de producción
Lenguaje generadoL(G) es el conjunto de todas las palabras o cadenas generadas
por la gramática.
EquivalenciaL(G1) = L(G2)
UTN - FRM: Fundamentos de sintaxis y semántica 7
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 8
Gramáticas formales Sea P = { S -> a S b, S -> a S b b, S -> b }
¿ t = ? ¿ n = ? ¿ S = ? ¿Qué genera?
UTN - FRM: Fundamentos de sintaxis y semántica 8
Sea G = ({A}, {a, b, c}, P, S) ¿ conjunto P que genera L1 = {wcw / w E {a, b}*} ?
Sea ∑ = {a, b} y la palabra “aaba” ¿ dos reglas para obtener “aaab” por derecha ?
Sea ∑t = {a, b} ¿ gramática que genera { ar b / r > 0 } ?
Sea ∑t={a,b,c} ¿ gramática que genera { ar b cr/r≥0 } ?
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 9
Jerarquía de ChomskyTipo 0 (sin restricciones) u v
u = x A yu (∑n ∑t)+
v, x, y (∑n ∑t)*
A ∑n
Tipo 1(sensible al contexto)x A y x v y
x, y (∑n ∑t)*
v (∑n ∑t)+
A ∑nS λ (regla compresora)
UTN - FRM: Fundamentos de sintaxis y semántica 9
0
1
2
3
Tipo 2 (independiente del contexto)A v
A ∑nv (∑n ∑t)*
Notación BNF, Pascal
Tipo 3 (regular a dcha. o izq.)A aBA aA λ
A, B ∑na ∑t
Expresiones regulares
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 10
G3 (regulares)
Regular x derechaS 1A
A 1A | 0B | 0
B 0B | 0
UTN - FRM: Fundamentos de sintaxis y semántica 10
Regular x izquierdaS C0
C C0 | D1 | 1
D D1 | 1
Ambas generan11000
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 11
G2 (independientes de contexto)
UTN - FRM: Fundamentos de sintaxis y semántica 11
G1 (no estricta)S AB
A 0A1 | λ
B 2B | λ
G2 (estricta)S AB | A | B | λ
A 0A1 | 01
B 2B | 2
G1 no es estricta ya que incluye reglas nulas asociadas a símbolos que no son el axioma
Ambas generan0n1n2m con n, m ≥ 0
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 12
Árbol de derivación Sea G = { t, n, S, P }t: { 0, 1, [, ], +, * }n: { E }S: EP: { E[EE+], E[EE*], E0, E1 }
Para la cadena: [0[01*]+]
UTN - FRM: Fundamentos de sintaxis y semántica 12
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 13
Árbol de derivación: ambigüedad Sea: S S a S | S b S | c
¿ Qué pasa para cbcac ?
Sea: E E+E | E*E | E^E | id | (E)
◦ Necesidad de reglas de precedencia
* (izq a dcha) + (izq a dcha) ^ (dcha a izq)
E E + E | E E E * E | E
E E ^ E | E E id | (E)
Ejemplo en lenguaje Fortran:
x + algo(3, 4)
¿‘algo’ es un arreglo o una función?
UTN - FRM: Fundamentos de sintaxis y semántica 13
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 14
<assign> <id> := <expr><id> A | B | C<expr> <expr> + <expr>
| <expr> * <expr>| ( <expr> )| <id>
Para ? B := B + A * C (ambigua)
Para ? B := B + ( A * C )
Para ? C := (B + C) * (A := B)
UTN - FRM: Fundamentos de sintaxis y semántica 14
Árbol de derivación: ambigüedad
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 15
Notación BNF y EBNF Es un meta-lenguaje Símbolos no terminales (abstractiones BNF) Símbolos terminales (lexemas)
BNF (John Bakus, Peter Naur Normal Form - 1959)Notación <símbolo> ‘a’ ‘+’ ::= ( ) |Ejemplo <dígito> ::= ‘0’ | ‘1’ | … | ‘9’
<número> ::= <dígito> <número>
<número> ::= <dígito>
EBNF (Extended BNF)Notación { }* o {} { }+ [ ]Ejemplo <dígito> ::= ‘0’ | ‘1’ | … | ‘9’
<número> ::= <dígito> {<dígito>}*
UTN - FRM: Fundamentos de sintaxis y semántica 15
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 16
Diagramas sintácticos
UTN - FRM: Fundamentos de sintaxis y semántica 16
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 17
BNF – EBNF – Diagramas BNF:
<expr> ::= <expr> ‘+’ <term> |
<expr> ‘-’ <term> | <term>
EBNF:<expr> ::= <term> { (‘+’ | ‘-’) <term> }
Diagrama sintáctico
UTN - FRM: Fundamentos de sintaxis y semántica 17
expr term
+
-term
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 18
Notaciones para expresiones
UTN - FRM: Fundamentos de sintaxis y semántica 18
Infija Postfija Prefija
a + d * g - h a d g * + h - - + a * d g h
C
a = a + b
PostScript
/a a b add def
Lisp
(setf a (+ a b))
Infija: operadores entre los operandos
Postfija: operadores posteriores a los operandos
Prefija: operadores anteriores a los operandos
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 19
UTN - FRM: Fundamentos de sintaxis y semántica 19
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 20
Autómatas 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
Estado de un autómata◦ en un instante de tiempo dado, sólo puede estar en un estado◦ estado inicial y estados finales
Formas de descripción: gráfica, matricial, funcional Se usan como reconocedores de lenguajes Existen distintos tipos de autómatas
UTN - FRM: Fundamentos de sintaxis y semántica 20
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 21
Máquina de Mealy
M = (e, s, Q, f, g)e: alfabeto de entrada
s: alfabeto de salida
Q: conjunto de estados f: Q x e Q
g: Q x e s
Transiciones x/y donde◦ x es el símbolo de entrada
◦ y es el símbolo de salida
La salida depende del estado actual y de la entrada
UTN - FRM: Fundamentos de sintaxis y semántica 21
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 22
Máquina de Moore
M = (e, s, Q, f, g)e: alfabeto de entrada
s: alfabeto de salida
Q: conjunto de estados f: Q x e Q
g: Q s
La salida depende sólo del estado actual Para el mismo proceso, suelen tener más estados
que las máquinas de Mealy
UTN - FRM: Fundamentos de sintaxis y semántica 22
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 23
Autómata finito determinista
AFD = (, q0, Q, F, f): alfabeto de entrada q0: estado inicial Q
Q: estados F: estados finales Qf: Q x Q Representaciones
UTN - FRM: Fundamentos de sintaxis y semántica 23
Habitualmente sólo se representan las transiciones que conducen al reconocimiento de alguna cadena, considerándose implícito un "estado
de captación global", donde se supone que llegan los arcos omitidos.
Notación funcionalf(1, a) 2f(1, b) 3f(2, a) 2f(3, b) 2f(3, $) 4f(4, $) 4f(4,2) 3
Notación matricial
a b $ 2
1 2 3 - -
2 2 - - -
3 - 2 4 -
4 - - 4 3
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 24
q0
q1
q2 q3
1
0,10
λ,1
λ
Autómata finito no-determinista
AFND = (, q0, Q, F, f): alfabeto de entrada q0: estado inicial Q
Q: estados F: estados finales Qf: Q x ( {}) P(Q)
UTN - FRM: Fundamentos de sintaxis y semántica 24
1 0 1 0 0 …1
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 25
Gramáticas G3 y autómatas 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 regular0.(0.0)*.1.(1|0)
UTN - FRM: Fundamentos de sintaxis y semántica 25
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 26
Expresiones regulares
Introducidas en 1956 por Kleene◦ Describen AEF
Operadores
Unión | V +
Concatenación .
Cierre (Kleene) *
Cierre (positivo) +
Sea a.(b|c*).d ¿cuál es el AEF y la gramática?
UTN - FRM: Fundamentos de sintaxis y semántica 26
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 27
Propiedades de las ER
UTN - FRM: Fundamentos de sintaxis y semántica 27
Sea L = {a, b, c}*¿ Son equivalentes: c*.c | c* = c* ?
1)
2)
3)
4)
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 28
Expresiones regulares y AEF
UTN - FRM: Fundamentos de sintaxis y semántica 28
qi qk qfa ba.bqi qf
a
ba|b
qi qk qf
E E
a
a*
Se pueden transformar aplicando reglas de la forma:
Existen algoritmos formales◦ Algoritmo de McNaughton-Yamada-Thompson
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 29
Algoritmo de transformación
UTN - FRM: Fundamentos de sintaxis y semántica 29
Por ejemplo sea (1 | 0)*1 se obtiene un AFND
luego se lo convierte a
un AFD
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 30
Equivalencia de autómatas
UTN - FRM: Fundamentos de sintaxis y semántica 30
AFND AFD Un AFD es un caso particular de AFND Sean N=(∑, q0, Q, F, f) y D=(∑, {q’0}, Q’, F’, f ’)
◦ N = D / L(D)=L(N)◦ Si se cumple: 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) = { qq’ f(q, a)} / q Q ^ a ∑
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 31
Equivalencia de autómatas Se basa en la construcción de subconjuntos La idea general es que cada estado del AFD
le corresponde un conjunto de estados del AFND
Algoritmo:◦ Para cada estado del AFND y cada símbolo de
entrada, analizar cuáles estados son alcanzables◦ Agrupar esos estados en estados compuestos◦ Hacer lo mismo con los estados compuestos◦ Finalmente, eliminar los estados que no son
alcanzables (menos inicial y final)
UTN - FRM: Fundamentos de sintaxis y semántica 31
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 32
Equivalencia de autómatas
AFND
AFD: estados alcanzables desde {q0}
UTN - FRM: Fundamentos de sintaxis y semántica 32
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 33
Minimización de autómatas
UTN - FRM: Fundamentos de sintaxis y semántica 33
Sean AFD=(∑, q0, Q, F, f) =AFDM=(∑, q’0, Q’, F’, f ’) / L(AFD)=L(AFDM)a) Eliminar los estados no alcanzables desde el estado inicialb) Eliminar los estados desde los que no se alcanza un estado finalAlgoritmo:
1. partición inicial P en dos grupos G’(F), G’’(Q – F)2. G de P (|G| > 1) obtener nueva Pn de modo que:
1. qi, qj Gi <=> ∑ / f(qi, ), f(qj, ) Gi
2. sustituir G en Pn por el nuevo conjunto de subgrupos3. si Pn= P (indistinguibles) entonces Pfinal := P e ir a (5)4. sino P := Pn e ir a (2)5. elegir en cada grupo de Pfinal, un qi como representante del
grupo6. se eliminan estados pasivos (que no son finales y hay transiciones
hacia ellos, pero no desde ellos hacia otros estados)
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 34
Minimización de autómatas
Sea el AFD que reconoce L = (a|b)*abb
Minimización:1. P := G1{Q5} + G2{Q1,Q2,Q3,Q4}
2. Pn := {Q5} y (Q1, Q2, Q3) x b G2 y Q4 x b G1
3. Pn := G1{Q5} + G2{Q1, Q2, Q3} + G3{Q4}
4. si Pn ≠ P entonces P := Pn y repite
5. Pn := {Q5} + {Q4} y {Q1, Q3} x b G2 y Q2 x b G3
6. Pn := G1{Q5} + G2{Q4} + G3{Q1, Q3} + G4{Q2}
7. como Pn ≠ P entonces P := Pn y repite
pero se obtiene la misma P
1. luego Pn = P entonces
Pfinal := P
1. Q1 representa a G3
UTN - FRM: Fundamentos de sintaxis y semántica 34
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 35
Conceptos
UTN - FRM: Fundamentos de sintaxis y semántica 35
Lenguajes regulares
Gramáticas regulares (G3)
Expresiones regulares
Autómatas de estado finito
Lema del bombeoSi Lr∞ => xyz є L / y ≠ λ, xynz є L para n > 0
Exp. Reg. Y AEF
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 36
Casos AEFND AEFD
Minimizar
UTN - FRM: Fundamentos de sintaxis y semántica 36
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 37
Autómatas de pila
UTN - FRM: Fundamentos de sintaxis y semántica 37
Autómata de PilaAP = ( Σ, , Q, a0, q0, F, f ) Σ: alfabeto de entrada: alfabeto de pila q0: estado inicialQ: conjunto de estados F: estados finalesa0: símbolo inicial pila f: Q ({ε}) Q
Controlpila
cinta
Para cada gramática G independiente del contexto, existe un autómata de pila M tal que L(G)=L(M)
Los símbolos en la pila se ordenan en sentido cima base (convención)
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 38
Gramáticas G2 y AP
UTN - FRM: Fundamentos de sintaxis y semántica 38
Descripción instantánea: terna (q, h / w) donde: q = estado actualh = símbolo leído de la cima de la pilaw = símbolo escrito en la pila
Gramática libre de contexto
T = {a, b} N = {S}
P = { S -> aSb| λ }
L1 = {anbn / n >= 0}
Autómata de Pila
Σ: {a, b} q0: e0
: {#, $} F: {e3}
Q: {e0,e1,e2,e3} a0:
q0 q2q1 q3,
a, a
b, a
b, a
, $ $
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 39
Autómatas de pila Descripción funcional
f: e0 x ε x ε e1 x $e1 x ε x ε e2 x εe1 x 0 x ε e1 x #e2 x ε x $ e3 x εe2 x 1 x # e2 x ε
Descripción tabular
UTN - FRM: Fundamentos de sintaxis y semántica 39
Estado Entrada Pila Transición
e0 ε ε e1,$
e1 ε ε e2,ε
e1 0 ε e1,#
e2 ε $ e3,ε
e2 1 # e2,ε
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 40
Autómatas de pila
Reconocimiento por vaciado de pilaLvp(M)= {w Σ* / (q0, w, a0) (p, ε, ε), p Q}
Reconocimiento por estado finalLef(M)={w Σ*/ (q0, w, a0) (p, ε, h), p F, h *}
Lvp puede ser diferente de Lef
UTN - FRM: Fundamentos de sintaxis y semántica 40
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 41
Autómatas de pila Es determinista si cumple
(q Q A Γ ) si |f(q, ε, A)|>0 a Σ, f(q, a, A)=(q Q A Γ a Σ {ε} ), |f(q, a, A)|<2
Construcción de un AP (Σ, Γ, Q, a0, q0, f, F)
◦ Dados: ∑={a, b, c}, ={#, $, ε }, a0 = #, q0=X, Q={X, Y, Z}, F= {Z}
◦ ¿ f ? para reconocer: L = { an b cn+1 / n > 0 }
AP <=> G2
UTN - FRM: Fundamentos de sintaxis y semántica 41
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 42
Autómatas de pila y gramáticas
Representar G2 con AP◦ AP ( Σ, , Q, a0, q0, F, f ) entonces construir
APND=(Σ, Σ N, {q}, S, q, fi, f) sea A→w P entonces (q, w) f(q, ε, A) sea a Σ entonces (q, ε) f(q, a, a)◦ El reconocimiento es por vaciado de pila◦ Sea P = { S→0S1, S→c } entonces f(q, ε, A)= {(q, 0S1), (q, c)}
f(q, 0, 0)= f(q,1,1)= f(q, c, c)= {(q, ε)}
UTN - FRM: Fundamentos de sintaxis y semántica 42
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 43
Algoritmo para convertir G2 en AP
UTN - FRM: Fundamentos de sintaxis y semántica 43
Dada una gramática G independiente del contexto, se construye un autómata de pila M de la siguiente forma:
1. Designar el alfabeto de M como los símbolos terminales de G; y los símbolos de pila de M como los símbolos terminales y no terminales de G, junto con # (si # no es un símbolo terminal o no terminal a G)
2. Designar los estados de M como i, p, q y fi; donde i es el estado inicial y fi es el único estado de aceptación
3. Agregar la transición (i, ,; p, #)
4. Agregar una transición (p, ,; q, S) donde S es el símbolo inicial de G
5. Agregar una transición de la forma (q, ,N; q,w) para cada regla de reescritura Nw en G, donde w puede ser una cadena de cero o mas símbolos, incluyendo terminales y no terminales
6. Agregar una transición de la forma (q, x, x; q, ) para cada terminal x de G (para cada símbolo del alfabeto de M)
7. Agregar la transición (q, , #; fi, )
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 44
Algoritmo para convertir G2 en AP
SzMNzMaMaMzNbNbNz
UTN - FRM: Fundamentos de sintaxis y semántica 44
Σ = {a, b, z} = {a, b, z, S, M, N, #}Q = {i, p, q, fi}a0 = #q0 = iF = fi
G2: AP:
Comportamiento
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 45
Autómata Linealmente AcotadoALA= (Q, ∑, , , e0, b, F) donde b = blanco
longitudcinta = longitudcadena
Q: conjunto finito estados∑ : alfabeto de entrada; ∑ (input) : ∑ {b} otros símbolos, b ∑ (output)
: Q x Q x x {D, I, N}e0: estado inicial QF: estados finales Q
UTN - FRM: Fundamentos de sintaxis y semántica 45
cinta
Controlestados
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 46
Máquinas de TuringAP = (, Σ, b, Q, q0, F, f)Σ: alfabeto de entrada Σc: alfabeto de la cintab: blanco Σc, ΣeQ: conjunto de estadosq0: estado inicial QF: estados finales Qf: Q x Σc Q x Σc x {I, D, P}
UTN - FRM: Fundamentos de sintaxis y semántica 46
cinta
Controlestados
… …
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 47
Máquinas de Turing
Los movimientos se repiten hasta que:◦ llega al estado final (se detiene aceptando la entrada)◦ intenta acceder a la celda a la izquierda de la celda
inicial (se detiene rechazando la entrada)◦ entra en una situación para la que no hay definido
movimiento (se detiene rechazando la entrada)◦ ante determinada entrada, la máquina siga realizando
movimientos indefinidamente sin aceptar ni rechazar dicha entrada
Palabra y lenguaje aceptado◦ x L(M) q0x 1q2 : 1,2 , q F◦ L(M) = { x * | q0x 1q2 : 1,2 , q F }
UTN - FRM: Fundamentos de sintaxis y semántica 47
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 48
Máquinas de Turing
Máquina que acepta el lenguaje de palabras sobre {0, 1} que comienzan y terminan con el mismo símbolo
UTN - FRM: Fundamentos de sintaxis y semántica 48
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 49
Máquinas de Turing
UTN - FRM: Fundamentos de sintaxis y semántica 49
0q 1q 2q
3q
R,1$
L,1
L,
R$,1 L,11 R,11
R,
Concatenador
Duplicador
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 50
Gramáticas y autómatas
UTN - FRM: Fundamentos de sintaxis y semántica 50
3: lenguajes regulares
autómatas finitos
2: lenguajes independientes del contexto autómatas de pila1: lenguajes sensibles al contexto
autómatas linealmente acotados
0: lenguajes irrestrictos máquinas de Turing
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 51
UTN - FRM: Fundamentos de sintaxis y semántica 51
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 52
Análisis léxico Scanner◦ agrupar caracteres de entrada en tokens◦ detectar algunos significados y errores a veces debe realizar una doble función: identificar el token y
“evaluar” el token
◦ introducir información adicional algunos tokens requieren algo más que su propia identificación constantes: su valor, identificadores: el string, etc.
◦ eliminar separadores innecesarios ◦ sustituir macros
UTN - FRM: Fundamentos de sintaxis y semántica 52
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 53
Análisis léxico
UTN - FRM: Fundamentos de sintaxis y semántica 53
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 54
Análisis léxico
UTN - FRM: Fundamentos de sintaxis y semántica 54
lexema
• secuencia de caracteres, que se asocia a un token
token
• nombre de cada componente léxico
patrón
• conjunto de lexemas
Enunciado
index = 2 * count + 17
Lexemasindex=2*count+17;
Tokensidentifierequal_signint_literalmult_opidentifierplus_opint_literalsemicolon
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 55
Análisis sintáctico Parser◦ agrupar los tokens suministrados por el scanner
para reconocer frases determinar si son sintácticamente correctas establecer la estructura subyacente
◦ recibir tokens y agruparlos de acuerdo a producciones especificadas por la G3◦ detectar errores sintácticos◦ generar árboles sintácticos
UTN - FRM: Fundamentos de sintaxis y semántica 55
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 56
Análisis sintáctico
UTN - FRM: Fundamentos de sintaxis y semántica 56
Proceso de análisis
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 57
Análisis sintáctico
UTN - FRM: Fundamentos de sintaxis y semántica 57
Á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 ;
Concreta Abstracta (AST)
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 58
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
UTN - FRM: Fundamentos de sintaxis y semántica 58
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 59
Analizador por izquierda (a)
UTN - FRM: Fundamentos de sintaxis y semántica 59
Sea la gramática G = (N, T, S, P) con◦ N = {A, S}, T = {a, b, c},◦ P = {S → aAc, A →Ab | λ }◦ L = {a bn c / n > 0}.
Se quiere reconocer: abbc
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 60
Analizador por izquierda (b)
UTN - FRM: Fundamentos de sintaxis y semántica 60
Sea la gramática G = (N, T, S, P) con◦ N = {A, S}, T = {a, b, c},◦ P = {S → aAc, A → λ | Ab}◦ L = {a bn c / n>=0}.
Se quiere reconocer: abbc
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 61
Recursividad a izquierda
Analizador top-down no puede procesarla RI Inmediata
A A |
Para eliminarla◦ Se trabaja con el término (que no es RI)
A BB B |
UTN - FRM: Fundamentos de sintaxis y semántica 61
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 62
Eliminación recursividad izq. Sea
S Aa | b
A Ac | Sd | f
◦ Reemplazar: A Sd por A Aad | bd
◦ Queda: A Ac | Aad | bd | f
◦ Eliminar recursividad inmediata:
A bdA’ | fA’
A’ cA’ | adA’ | ◦ Finalmente:
S Aa | b
A bdA’ | fA’
A’ cA’ | adA’ |
UTN - FRM: Fundamentos de sintaxis y semántica 62
Resolver:S a B | cB B a | c
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 63
Analizador descendente Problema del retroceso, sea: G = (N, T, S, P)N = {<PROGRAMA>, <DECLARACIONES>, <PROCEDIMIENTOS> }
T = {module, d, p, ;, end}
S = <PROGRAMA>
P = {
<PROGRAMA> ::= module <DECLARACIONES>; <PROCEDIMIENTOS> end
<DECLARACIONES> ::= d | d; <DECLARACIONES>
<PROCEDIMIENTOS> ::= p | p; <PROCEDIMIENTOS> }
Analizar aplicando derivaciones Leftmost module d ; d ; p ; p end
UTN - FRM: Fundamentos de sintaxis y semántica 63
_
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 64
Análisis sintáctico Gramáticas LL(k) y analizadores◦ subconjunto de las gramáticas libres de contexto◦ permiten un análisis descendente sin retroceso◦ L = reconocimiento de la cadena de entrada de
izquierda a derecha ◦ L = toman las derivaciones más hacia la izquierda
("Leftmost") con sólo mirar los k tokens situados a continuación de donde se halla si k=1 se habla de gramáticas LL(1)◦ permiten construir un analizador determinista
descendente sólo examinan en cada momento el símbolo actual de la
cadena de entrada para saber que producción aplicar
UTN - FRM: Fundamentos de sintaxis y semántica 64
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 65
Análisis sintáctico
Gramáticas LR(k) y analizadores◦ Analizadores LR L = lee entrada de izquierda a derecha (Left-to-right) R = analiza aplicando derivaciones más a la derecha
en sentido inverso (Rightmost) k = número de símbolos de entrada por delante
(lookaheads) que lee el analizador (gramática LR(k)) eficiente análisis ascendente sin retroceso detectan errores sintácticos rápidamente pueden construirse para la mayoría de las G2 complicados de construir
UTN - FRM: Fundamentos de sintaxis y semántica 65
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 66
Analizador ascendente Sean◦ Producción: E→E+E | E*E | (E) | -E | id◦ Enunciado: id+id*id◦ Derivaciones:
UTN - FRM: Fundamentos de sintaxis y semántica 66
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 67
Analizador ascendente
Esquema del algoritmo
UTN - FRM: Fundamentos de sintaxis y semántica 67
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 68
Analizador ascendente
UTN - FRM: Fundamentos de sintaxis y semántica 68
Pila Árbol Entrada Regla
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 69
UTN - FRM: Fundamentos de sintaxis y semántica 69
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 70
análisis léxico
UTN - FRM: Fundamentos de sintaxis y semántica 70
sup = alto*ancho;
Fases de análisis
(id,sup)(asignador)(id,alto)(opMult)(id,ancho)(separador)
análisis sintáctico
análisis semántico
(asignador)
(id,sup) (opMult)
(id,alto) (id,ancho)
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 71
Semántica La sintaxis no es suficiente para describir un
lenguaje. La semántica:◦ Define “qué hacen” los enunciados de un lenguaje.◦ Posibilita implementar correctamente el lenguaje.◦ Sirve para desarrollar técnicas y herramientas de: Análisis y Optimización Depuración Verificación Transformación
◦ Ayuda a “razonar sobre el funcionamiento” de un programa (recursos usados, corrección, …)
UTN - FRM: Fundamentos de sintaxis y semántica 71
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 72
Semántica estática Se calcula en tiempo de compilación◦ Tipología de datos De la signatura de funciones Accesos a variables deben coincidir con su declaración Identificadores y expresiones deben ser evaluables Left-side debe ser asignable Expresiones, funciones y operadores compatibles
◦ Flujo de control Accesibilidad de las variables para su uso
◦ Unicidad Uso de identificadores únicos
Ejemplovar A: integer; Significado almacenamiento para A
UTN - FRM: Fundamentos de sintaxis y semántica 72
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 73
Semántica dinámica Ciertos significados se pueden detectar durante
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 ¿si y == 0?
Otros no es posible◦ Errores de “lógica” cambian la semántica de un
enunciado, pero no son estrictamente, errores semánticos de los enunciadosx := z / y si lo que se quería escribir era x := z * y
Ejemplos = “hola”; s = 45.78; “25” + 5 “255”
UTN - FRM: Fundamentos de sintaxis y semántica 73
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 74
Especificación de la semántica La especificación sintáctica, en notación BNF es prácticamente
universal, en tanto que para la semántica, existen diversas técnicas sin que ninguna sea universal.
Es deseable satisfacer características tales 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 en diferentes
lenguajes.◦ Legibilidad: ser legibles por personas con formaciones heterogénea. ◦ Flexibilidad: adaptarse a la variedad de lenguajes existentes.◦ Experiencia: ser capaz de describir lenguajes reales, no sólo sencillos o
experimentales.
UTN - FRM: Fundamentos de sintaxis y semántica 74
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 75
Metodologías para especificar Lenguaje Natural: con restricciones. Operacional: se especifican las transiciones elementales
de un programa mediante reglas de inferencia definidas por inducción sobre su estructura.
Denotacional: se describe modelando los significados mediante entidades matemáticas básicas.
Axiomática: se definen una serie de reglas de inferencia que caracterizan las propiedades de las diferentes construcciones del lenguaje.
Algebraica: permite definir una estructura matemática de forma abstracta junto con las propiedades que debe cumplir.
UTN - FRM: Fundamentos de sintaxis y semántica 75
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 76
Metodologías para especificar
UTN - FRM: Fundamentos de sintaxis y semántica 76
Máquina de Estado Abstracto: se definen algoritmos mediante una abstracción del estado sobre el que se trabaja y una serie de reglas de transición entre elementos de dicho estado.
Semántica de Acción: se definen acciones, que expresan computaciones.
Monádica Modular: se definen mónadas y transformadores de ellas (una mónada separa una computación del valor devuelto por la misma).
Monádica Reutilizable: añade conceptos de programación genérica a la anterior.
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 77
Resumen de características
UTN - FRM: Fundamentos de sintaxis y semántica 77
NAM MOD REU DEM PRO LEG FLE EXP
Nat. S S Reg S S
Oper. S Reg Reg Reg S S
Deno. S S Reg S Reg
Axio. Reg S Reg S
Alge. S Reg S S Reg Reg R
Estad. S S Reg Reg S Reg S
Acc. S S Reg Reg S Reg Reg
Modu. S S S Reg S
Reuti. S S S S S S
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________
UTN – FRM: Sintaxis y Semántica de Lenguajes Diapositiva 78
Implementación de la semántica
UTN - FRM: Fundamentos de sintaxis y semántica 78
Hardware
Lenguaje de máquina
Lenguaje ensamblador o pseudolenguajes
Implementación de la semántica
Atr
ibut
os
Ope
raci
onal
Den
otat
iva
Axi
omát
ica
...
Nat
uralEspecificaciones
semánticas
Estructuras de datos + algoritmos
Construircompilador(traductor)
Construirenlazador o intérprete
Intérprete en hardware
C, C++, Java, Ruby, JS, PHP, Ada, Pascal, Cobol, Fortran, …
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
____________________________________________________________