Está en la página 1de 23

INTRODUCCIN

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.

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

19

ORDENADOR

MODELO ABSTRACTO
DE COMPUTO

INFORMACIN

LENGUAJES FORMALES

Smbolos
Alfabetos
Palabras
Lenguajes

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

20

Concepto de lenguaje

Lenguaje
Natural
Lenguaje
Formal

Sistema ms o menos complejo que asocia


contenidos de pensamiento y significacin a
manifestaciones simblicas tanto orales como
escritas
Por extensin:

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, ...)

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

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

Pero el lenguaje natural:

Sinonimia, polisemia y ambigedad


Desarrollo por enriquecimiento progresivo (la teora viene
despus)
Mecanismos imprevistos de ampliacin del lenguaje
Componente semntico muy rico y expresivo
IMPOSIBLE DE FORMALIZAR EN SU TOTALIDAD
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

22

Se desarrollan a partir de una teora establecida


M j que la
Mejor
l semntica
ti no dependa
d
d del
d l contexto
t t
mbito semntico reducido
N se pueden
No
d enriquecer,
i
o lo
l hacen
h
con mtodos
t d
preestablecidos

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

23

La unidad bsica de todo lenguaje ser la palabra o


cadena de smbolos
Las palabras se forman como secuencias ordenadas
de smbolos (o caracteres) a partir de un alfabeto
Un alfabeto siempre es finito y no vaco:
1 = {a,
{a b,
b c,
c ..., z}
2 = {,
{ ,
,
,...,

}
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

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

25

Ejemplos de palabras
Dado el alfabeto = {a, b, c}

, aaba, bbbbbbbbaccbbbbbbbbca, cbbbbbbc, b,


babbba ... son palabras

Dado el alfabeto = {0, 1}

, 0000101, 110, 111111111111, 010, 100, 1,


NO, no es smbolo,
000000101010101010
son palabras

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

26

Todas las palabras sobre un alfabeto

Clausura del alfabeto: *


conjunto de todas las palabras sobre el alfabeto
Ejemplos
l (en
( orden
d lexicogrfico):
l i
fi )
* = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc,
aaa aab,
aaa,
aab aac,
aac aba,
aba abb,
abb abc,
abc aca,
aca acb,
acb acc,
acc ... }
* = {{,, 0,, 1,, 00,, 01,, 10,, 11,, 000,, 001,, 010,, 011,,
100, 101, 110, 111, 0000, 0001, 0010, ... }

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

27

Todas las palabras sobre un alfabeto


salvo la palabra vaca

Clausura positiva del alfabeto: +


conjunto de todas las palabras sobre el alfabeto
excepto
Ejemplos (en orden lexicogrfico):
+ = {a,
{a b,
b c,
c aa,
aa ab,
ab ac,
ac ba,
ba bb,
bb bc,
bc ca,
ca cb,
cb cc,
cc
aaa, aab, aac, aba, abb, abc, aca, acb, acc, ... }
+ = {0, 1, 00, 01, 10, 11, 000, 001, 010, 011,
100, 101, 110, 111, 0000, 0001, 0010, ... }
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

28

Notacin a utilizar

Palabras: u, v, w, x, y, z

Smbolos: s, t

Smbolo i-simo de una palabra: x[i]


x = abbc {a,b,c}*
x[1] a
x[1]=a
x[2]=x[3]=b
[ ]
x[4]=c
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

29

Longitud de una palabra


|x|

(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

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

Longitud de una palabra

(2)

|x|

Definicin inductiva: Sea un alfabeto y x*


w*, s
x = |x| = 0
x = ws |x| = |w|+1

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

31

Concatenacin de dos palabras


xy

Palabra que resulta de colocar los smbolos de y a continuacin de


los de x.
Definicin inductiva: Sean un alfabeto, x, y* w*, s
s
si y = xy
y=x
si y = ws xy = xws =( xw)s
Descripcin algebraica:
Dados alfabeto, x,y*
si x = s1s2s3...sn, con n0 y i (1in si)
si y = t1t2t3...tm, con m0 y j (1jm tj)
entonces xy = s1s2s3...snt1t2t3...tm

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

32

EJERCICIO: define las siguientes


operaciones con palabras

Nmero de apariciones de un smbolo t en x se denota


|x|t es el nmero de veces que aparece el smbolo t en
la palabra
palab a x.
Potencia
P
t
i n-sima
i
de
d x denotada
d
t d por xn y es la
l palabra
l b
que resulta de concatenar x consigo misma n veces
Inversa de x que denotamos xR y es la la palabra que
resulta de tomar los smbolos de x en orden inverso
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

33

Nmero de apariciones de un
smbolo |x|t

Definicin inductiva: Sean un alfabeto, t, x*


w*, s
w
si x = |x|t = 0
si x = ws con s t |x|t =|w|t
si x = wt |x|t =|w|t+1
Descripcin
p
algebraica:
g
Dados alfabeto, t, x*, n0
si x = y0ty1ty2t...yn, i (1in yi*)
pero no es posible x = z0tz1tz2t...zntzn+1, siendo
i (1in+1 zi*)
e
entonces
o ces ||x||t = n
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

34

Potencia de una palabra xn

Definicin inductiva: Sean un alfabeto, x*, n0


si n = 0 xn =
k 1 = xkx
si n = k+1
k
xn = xk+1
Descripcin grfica:

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

35

Inversa de una palabra xR


Definicin inductiva Sean un alfabeto, x*
w*, s
si x = si xR =
si x = ws xR = swR

Descripcin algebraica:
Dados alfabeto,, x*
si x = s1s2s3...sn, con n0 y i (1in si)
entonces xR = snsn-1sn-2...s1

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

36

EJERCICIO: define las siguientes


operaciones con palabras

Primer smbolo de una palabra x se denota primero(x)

ltimo
smbolo de una palabra x se denota ltimo(x)

cola(x) es la palabra que resulta de quitar de x su


primer smbolo
cabeza(x) es la palabra que resulta de quitar de x su
lti
ltimo
smbolo
b l
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

37

Predicados:
funciones con resultado booleano
lgpar?(x) es cierto si la longitud de la palabra x es par

Definicin inductiva: w*, s

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)

Los smbolos de x coinciden con los ltimos smbolos de y


Caracterizacin lgica: Sean un alfabeto, x*, y*
xSy z
z*(y=zx)
(y=zx)
Definicin inductiva: s, t, v*, w*

S true
t
Sws true
vtS false
vtSws t=s vSw
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

46

Prefijo
P
fij d
de una palabra:
l b
xpy prefijo(x,y)

Los smbolos de x coinciden con los primeros smbolos de y


Caracterizacin lgica: Sean un alfabeto, x*, y*
xpy z
z*(y=xz)
(y=xz)
Otra caracterizacin lgica:
x
py xRSy R

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

47

Subpalabra
S
b l b
de
d una palabra
l b
xy subpalabra(x,y)

Los smbolos de x coinciden con una parte de los smbolos de


y
Caracterizacin lgica: alfabeto, x *, y*
xy z,u*(y=zxu)
z u*(y=zxu)
Definicin inductiva: alfabeto, s, t, v*, w*
Sws true
t
vt false
vtws ( t=s vSw) vtw
Otra definicin inductiva: alfabeto, u,v,x,y *
uu
uv uxvy
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

48

Apariciones
Apa
iciones de una
na palabra
palab a en otra
ot a
|x|y

Es el nmero de apariciones de una palabra no vaca y en


otra x como subpalabra
Definicin inductiva: alfabeto, s, t, v, w *
error no est definido
| x | error,
| |ws = 0
t=s wSv |vt|ws =|v|ws+1
(t=s
(
wSv)) ||vt||ws =|v|
| |ws
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

49

LENGUAJE SOBRE UN ALFABETO :


L
Un lenguaje es cualquier conjunto de palabras sobre
ell alfabeto
lf b t
L1 = 0, 1
L2 =
0,
0 1
L3 = 00, 11, 010 0, 1
L4 = x
0,
0 1: |x|
| | mod
d 2 = 0
L5 = {00y: y 0, 1}
L6 = x
0,
0 1: |x|
| |0 |x|
| |1

L7:

i) 00, 1 L7
ii) xL7
L7 x2L7
L7
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

50

Mtodos de definicin de lenguajes

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

Distintas definiciones de un lenguaje


Palabras cuya primera mitad est formada por 0s y la segunda por 1s
Enumeracin de palabras (inapropiada)
{ , 01, 0011, 000111, 00001111, }
Descripcin estructural
{ 0n1n: n0 }
Definicin algebraica
{ x{0,1}* : |x|0= |x|1 |x|10= 0 }
{ x{0,1}* : y,z (x=yz |y| = |z| |y|1= |z|0 = 0

Definicin inductiva

xL 0x1L
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

52

Distintas definiciones de un lenguaje


Palabras cuya primera mitad est formada por 0s y la segunda por 1s

Basndose en lenguajes ms simples


( { 0n: n0 } { 1n: n0 } ) { x{0,1}*: |x|0= |x|1 }

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

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

Unin de lenguajes: L1 L2 = x: xL1 xL2

Interseccin de lenguajes: L1 L2 = x: xL1 xL2

Complementario de un lenguaje:

Diferencia de lenguajes: L1 - L2 = x: xL1 xL2 = L1 L2

L = x: xL

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

54

OTRAS OPERACIONES DE LENGUAJES


Inversin de un lenguaje
LR = xR: xL

Concatenacin de lenguajes
L1 L2 = x: yL1zL2(x
y
( =y
yz)
)

Potencia de un lenguaje
0
L =
n+1
L
= LnL

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

58

OTRAS OPERACIONES DE LENGUAJES

Clausura y clausura positiva de un lenguaje


*
L =n
Ln
0

L*
x L* w L xw L*

n
L+ = n
0 L

w L w L+
x L+ w L xw L+

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

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)

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

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

Propiedades de las palabras


{x{0,1} : |x|0= |x|1 |x|10= 0}
Operaciones sobre lenguajes ms simples
{0} {1} {x{0,1} : |x|0= |x|1}
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

66

Qu es un ordenador?

Procesador

Memoria

Dispositivos I/O

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

Modelos formales de cmputo


Modelo Transductor
Botn de accionamiento

Salida

Entradas

Asocia una salida a cada entrada


Botn de accionamiento

Modelo
M
d l R
Reconocedor
d o
aceptador

Entrada

Salida
True
(acepta la entrada)
False
(rechaza la entrada)

Asocia un booleano a cada entrada


LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

68

Equivalencia de los modelos: Ejemplo

z
con z = x+y
+

Modelo que suma nmeros en binario


Existe algn algoritmo para realizar este clculo usando un modelo aceptador?

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

69

Equivalencia de los modelos: Ejemplo


Botn de accionamiento

Salida

Entrada

x+y=z

True=acepta la
l entrada
d

False=rechaza la entrada

Cmo saber la respuesta a 1000+11= ?


Haciendo comprobaciones
ENTRADAS
SALIDA
1000+11=0
false
1000+11=1
false
1000+11=10
1000+11
10
false
1000+11=1011
true
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

La suma de 1000 y 11
es 1011
70

MODELOS RECONOCEDORES

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

71

OTROS MODELOS DE CMPUTO


Modelo Generador
Produce salidas
Botn de accionamiento

Salida

Cmo saber la respuesta a


1000+11= ?
Comprobando si es salida
SALIDAS
1+1=10, 0+1=1, 0+0=1, 10+11=101,
LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

72

JERARQUA DE CHOMSKY
GRAMTICAS

Generales

TODOS LOS LENGUAJES


LENGUAJES

Independientes
de contexto

RECURSIVAMENTE ENUMERABLES
LENGUAJES

Regulares

INDEPENDIENTES DE CONTEXTO

AUTMATAS
De Turing
Con Pila
Finitos

LENGUAJES
REGULARES

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

73

JERARQUA DE AUTMATAS

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

74

AUTMATA PARA LOS REALES

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

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,:=, ; , ( , )}

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

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?

while no-es-0?(X1) loop


X2:=suc(X2);
end loop
p;
X45:=pred(X3);

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

<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

GRAMTICA DE LOS PROGRAMAS WHILE


<pw>
<comp>
<pw>

<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

LENGUAJES COMPUTACIN Y SISTEMAS INTELIGENTES INTRODUCCIN

78

También podría gustarte