Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Los modelos abstractos de cmputo
Palabras y Lenguajes
Palabras
Operadores sobre palabras
Predicados sobre palabras
Lenguajes
Operadores sobre lenguajes
Gramticas
a t cas y Autmatas
ut atas
G
La gramtica de los programas while
El autmata de los nmeros reales
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN
18
INTRODUCCIN: Objetivos
Establecer
bl
algunos
l
convenios necesarios para ell
desarrollo de la asignatura.
Dominar los conceptos bsicos de palabra y
lenguaje, manejando con soltura sus operaciones.
Introducir la necesidad de mecanismos de
especificacin de lenguajes.
Tomar un primer contacto con dos herramientas
importantes: gramtica y autmata.
19
ORDENADOR
MODELO ABSTRACTO
DE COMPUTO
INFORMACIN
LENGUAJES FORMALES
Smbolos
Alfabetos
Palabras
Lenguajes
20
Concepto de lenguaje
Lenguaje
Natural
Lenguaje
Formal
Capacidad
p
humana para
p
comunicarse mediante lenguas
g
Mecanismos de comunicacin no humanos (abejas,
delfines, ...)
C d con fines
Creados
fi
especficos
fi
(programacin,
(
i lgica,
l i
matemticas, ...)
21
Comparten:
conjunto
j t bi
bien definido
d fi id de
d smbolos
b l (alfabeto)
( lf b t )
son (potencialmente) infinitos: no tiene sentido definirlos por
extensin
22
23
}
3 = {
,..., , , ,
4 = {0,
{0 1,
1 2,
2 ..., 9,
9 A,
A ..., F}
5 = {a, b, c}
6 = {0, 1}
7 = ASCII
8 = UTF-8
UTF 8
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN
24
Definicin de palabra
En lenguaje natural: dado un alfabeto :
Palabra
P l b (o
( cadena)
d
) es toda
t d secuencia
i ordenada
d
d y
finita de smbolos de
Para cualquier alfabeto existe la palabra vaca,
vaca que
no contiene ningn smbolo y que denominamos
Definicin formal: dado un alfabeto :
es una palabra
(secuencia de 0 smbolos)
si w es cualquier palabra sobre y s, entonces
ws tambin es una palabra sobre
Definicin
ind cti a
inductiva
25
Ejemplos de palabras
Dado el alfabeto = {a, b, c}
26
27
28
Notacin a utilizar
Palabras: u, v, w, x, y, z
Smbolos: s, t
29
(1)
Es ell nmero
de
d caracteres que contiene
i
(siendo
( i d 0 la
l
longitud de )
D
Descripcin
i i grfica:
fi
Descripcin algebraica:
Dados alfabeto, x
x*,,
si x = s1s2s3...sn, con n>0 y i (1in si)
entonces ||x|| = n
Si x= entonces |x| =0
30
(2)
|x|
31
32
33
Nmero de apariciones de un
smbolo |x|t
34
35
Descripcin algebraica:
Dados alfabeto,, x*
si x = s1s2s3...sn, con n0 y i (1in si)
entonces xR = snsn-1sn-2...s1
36
ltimo
smbolo de una palabra x se denota ltimo(x)
37
Predicados:
funciones con resultado booleano
lgpar?(x) es cierto si la longitud de la palabra x es par
eentonces
to ces lgpar?(x)
gpa ( ) = true
t ue
ssi x =
si x = ws entonces
false
lgpar?(w)
si w =
c.c.
Definicin algebraica:
g
lgpar?(x) |x| mod 2 = 0
Ejercicio: medio1?(x), doblecero?(x)
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN
42
Sufijo
S
fij d
de una palabra
l b
xsy sufijo(x,y)
46
Prefijo
P
fij d
de una palabra:
l b
xpy prefijo(x,y)
47
Subpalabra
S
b l b
de
d una palabra
l b
xy subpalabra(x,y)
48
Apariciones
Apa
iciones de una
na palabra
palab a en otra
ot a
|x|y
49
L7:
i) 00, 1 L7
ii) xL7
L7 x2L7
L7
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN
50
Lenguajes finitos
Por extensin: listando sus palabras
A veces no es razonable o posible
Palabras sobre {0,1} de longitud menor que
60
Lenguajes
g j infinitos
Mtodos similares a los indicados antes
Lenguaje
g j natural
Caracterizacin lgica
Inductiva
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN
51
Definicin inductiva
xL 0x1L
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN
52
53
OPERACIONES CONJUNTISTAS DE
LENGUAJES SOBRE UN ALFABETO
Un lenguaje es cualquier conjunto de palabras sobre el alfabeto
Sean L, L1 y L2 lenguajes cualesquiera sobre un alfabeto
Complementario de un lenguaje:
L = x: xL
54
Concatenacin de lenguajes
L1 L2 = x: yL1zL2(x
y
( =y
yz)
)
Potencia de un lenguaje
0
L =
n+1
L
= LnL
58
L*
x L* w L xw L*
n
L+ = n
0 L
w L w L+
x L+ w L xw L+
62
OPERACIONES DE LENGUAJES
Orden de precedencia de operadores
1) Operaciones unarias
2) Operaciones binarias
Concatenacin
Operaciones conjuntistas
*
L1 L2
*
L1 L2
*
*
L1 L2
*
(L1 L2)
L1 L2
*
L1 L2
*
*
L1 L2
*
(L1 L2)
65
DESCRIPCIN DE LENGUAJES
Lenguaje natural
P l b
Palabras
cuya primera
i
mitad
it d est
t formada
f
d por 0s
0 y la
l segunda
d por 1s
1
Enumeracin de palabras
{ 01,
{,
01 0011,
0011 000111,
000111 00001111
00001111, }}
Descripcin estructural
{0n1n: n0}
INSUFICIENTE
66
Qu es un ordenador?
Procesador
Memoria
Dispositivos I/O
Salida
Entradas
Modelo
M
d l R
Reconocedor
d o
aceptador
Entrada
Salida
True
(acepta la entrada)
False
(rechaza la entrada)
68
z
con z = x+y
+
69
Salida
Entrada
x+y=z
True=acepta la
l entrada
d
False=rechaza la entrada
La suma de 1000 y 11
es 1011
70
MODELOS RECONOCEDORES
71
Salida
72
JERARQUA DE CHOMSKY
GRAMTICAS
Generales
Independientes
de contexto
RECURSIVAMENTE ENUMERABLES
LENGUAJES
Regulares
INDEPENDIENTES DE CONTEXTO
AUTMATAS
De Turing
Con Pila
Finitos
LENGUAJES
REGULARES
73
JERARQUA DE AUTMATAS
74
75
GRAMTICA
DE LOS PROGRAMAS WHILE
Esta gramtica define las expresiones sintcticamente correctas
g
While sobre los naturales.
de los Programas
G=(N, , P,<pw>)
No terminales
N = {<pw>,<asig>,<comp>,<if>,<while>,<var>}
{ p ,
g ,
p ,
,
,
}
Terminales
= {suc,
{suc pred
pred, no
no-es-0?,
es 0? if,
if then
then, while,
while loop,
loop end_if,
end if end_loop,
end loop
X, 0,1,2,3,4,5,6,7,8,9,:=, ; , ( , )}
76
GRAMTICA
DE LOS PROGRAMAS WHILE
Conjunto P de producciones
<pw> <asig>
<pw> <comp>
<pw> <if>
<pw> <while>
<asig>
g <var>:=0;;
<asig> <var>:=suc(<var>);
<asig> <var>:=pred(<var>);
<comp> <pw><pw>
<if> if no
no-es-0?(<var>)
es 0?(<var>) then <pw>end if;
<while> while no-es-0?(<var>) loop <pw>end loop;
Programa correcto?
<var> X0
<var> X1
<
<var>
> X2
<var> X3
<var> X4
<var> X5
<var> X6
<var> X7
<var> X8
<var> X9
<var><var>0
<var><var>1
<var><var>2
<var><var>3
<var><var>4
<var><var>5
<var><var>6
<var><var>7
<var><var>8
<var><var>9
77
<pw>
<while>
while
no-es-0?
<var>
<asig>
loop
X1
<var>
X2
<pw>
<var>
end loop;
:=
pred
<var>
<var>
<asig>
:=
suc
<var>
X3
X4
X2
78