Alfabeto Cadenes y Lenguajes

7
1 I.1 Alfabeto 2 I.2 Cadena 3 I.3 Lenguajes 4 I.4 Tipos de Lenguajes 5 I.5 Herramientas computacionales ligadas con lenguajes 6 I.6 Estructura de un traductor 7 I.7 Fases de un compilador 7.1 I Introduccion a la teoria de Lenguajes Formales LENGUAJES Y AUTOMATAS I I Introducción a la teoría de Lenguajes Formales I.1 ALFABETOS ( ) Un alfabeto es un conjunto no vació y finito de símbolos. En el caso del alfabeto ingles, la colección definida es el conjunto de las letras del alfabeto junto con los símbolos que se usan para construir palabras en ingles (tales como el guión, el apostrofe y otros por el estilo). Cada símbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vacía, la cual se denota por el símbolo ε óλ, es una palabra sobre cualquier alfabeto. 1.1 .1 PROPIEDADES DE LAS CADENAS O “STRINGS” Una cadena (o palabra) es una secuencia finita de símbolo. Por ejemplo: a, b y c son símbolos y abcd es una cadena. Cadena Vacía La cadena vacía, denotada por λ o ε, es la cadena que consiste en cero símbolos. Por tanto, tiene longitud ε = 0.

description

l

Transcript of Alfabeto Cadenes y Lenguajes

1 I.1 Alfabeto2 I.2 Cadena3 I.3 Lenguajes4 I.4 Tipos de Lenguajes5 I.5 Herramientas computacionales ligadas con lenguajes6 I.6 Estructura de un traductor7 I.7 Fases de un compilador7.1 I Introduccion a la teoria de Lenguajes FormalesLENGUAJES Y AUTOMATAS I

I Introduccin a la teora de Lenguajes Formales

I.1 ALFABETOS ( ) Un alfabeto es un conjunto no vaci y finito de smbolos. En el caso del alfabeto ingles, la coleccin definida es el conjunto de las letras del alfabeto junto con los smbolos que se usan para construir palabras en ingles (tales como el guin, el apostrofe y otros por el estilo).

Cada smbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vaca, la cual se denota por el smbolo , es una palabra sobre cualquier alfabeto.

1.1 .1 PROPIEDADES DE LAS CADENAS O STRINGS

Una cadena (o palabra) es una secuencia finita de smbolo. Por ejemplo: a, b y c son smbolos y abcd es una cadena.

Cadena Vaca

La cadena vaca, denotada por o , es la cadena que consiste en cero smbolos. Por tanto, tiene longitud = 0.

Longitud

Si w es una cadena sobre cualquier alfabeto, su longitud se denota como w . La longitud de w es el nmero de smbolos que tiene la cadena. Por ejemplo: abcd tiene longitud w = 4.

Concatenacin

La concatenacin de dos cadenas es la cadena que se forma al escribir la primera seguida de la segunda, sin que haya espacio entre ellas. Por ejemplo: si w=banana y z=rama, la concatenacin de w con z es la cadena bananarama. La concatenacin de las cadenas w y z se denota como wz o w.z. La cadena vaca es la identidad para el operador de concatenacin. Es decir, = w ||= z x= para cada cadena x=casa z= w = roja .

xzw = casa roja xw = casaroja

Potencia La nocin de potencia de una cadena sobre un alfabeto es dada por la notacin w que denota la concatenacin de k copias de la cadena w.k

Por tanto, si W=122 sobre el alfabeto ={1,2}, se tiene:0

W = o 1

W = 1222

W = 1221223

W = 122122122

Igualdad de Cadenas Si w y z con cadenas, se dice que w es igual a z, si tienen la misma longitud y los mismos smbolos en la misma posicin. Se denota mediante w = z.

Prefijo Los prefijos de un cadena esta formados por los primeros smbolos de esta. Por ejemplo, la cadena 121 sus prefijos son: o , 1, 12, y 121 con lo que toda palabra puede considerarse prefijo de si misma. Un prefijo de una cadena que no sea la misma cadena es u prefijo propio.

Sufijo Los sufijos de una cadena estn formados por los ltimos smbolos de esta. Por ejemplo, la cadena abc sus sufijos son: o , c, bc, abc. Un sufijo de una cadena que no sea la misma cadena es un sufijo propio.

Subcadena. Una cadena w es una subcadena o subpalabra de otra cadena z si existen las cadena x e y para las cuales z = xwy.

Transpuestas

La inversa o transpuesta de una cadena w es la imagen refleja de w. Por ejemplo, si w = able entonces su inversa es elba. Para denotar la inversa de w se usa w`.

Ejercicios de Cadena

Z = 8532 Z = 4

Y= Galeria Y = 7

W=Politica W = 8

Ejercicio: Potencia

C=15 V=Hola00

C = V = 11

C = 15 V = Hola22

C = 1515 V = HolaHola33

C = 151515 V = HolaHolaHola

Ejercicio: Prefijos y Sufijos

W= 475 R= Lpez C =@$&

Prefijos

W= , 4, 47, 475R= , l, lo, lop, lope, lopezL= , @, @$, @$%

SufijosW= , 5, 75, 475R= , z, ez, pez, opez, lopezL= ,&, $&, @$%

Ejercicion: Longitud

Z= 8532 y= galeria w =poltica

= 4 = 7 = 8

Ejercicio: Transpuesta

A= anita A = atina

B= roma B = amor

ResumenLa nocin ms primitiva es la de smbolo, que es simplemente una representacin distinguiblede cualquier informacin. Los smbolos pueden ser cualesquiera, como w, 9, #, etc.,pero nosotros vamos a utilizar las letras a,b,c, etc. Un smbolo es una entidad indivisible.Un alfabeto es un conjunto no vaco de smbolos. As, el alfabeto del idioma espaol,E = {a, b, c, . . . , z}, es slo uno de tantos alfabetos posibles. En general utilizaremos lanotacin para representar un alfabeto.Con los smbolos de un alfabeto es posible formar secuencias o cadenas de caracteres, talescomomxzxptlk, balks, r, etc. Las cadenas de caracteres son llamadas tambin palabras.Un caso particular de cadena es la palabra vaca, ", la cual no tiene ninguna letra.La longitud de una palabra es la cantidad de letras que contiene, contando las repeticiones;se denota por |w| para una palabra w. Por ejemplo, |perro| es 5.Cuando escribimos varias palabras o caracteres uno a continuacin de otro, se supone queforman una sola palabra (se concatenan). La notacin usada para denotar la concatenacinde dos cadenas w y v, eswv. Por ejemplo, si w = abra y v = cada, entonces wv es lapalabra abracadabra.La concatenacin de palabras es asociativa, esto es, (xy)z = x(yz), pero no conmutativaen el caso general. La longitud de una concatenacin cumple la propiedad: |uv| = |u|+|v|.Una palabra v es subcadena de otra w cuando existen cadenas x, y posiblemente vacastalesque xvy = w. Por ejemplo, bora es subcadena de vbora, y " es subcadena de todapalabra.El conjunto de todas las palabras que se pueden formar con un alfabeto es denotadoConvencionalmente por *.Por ejemplo, si = {a, b}, * = {, a, aa, aaa, aaaa, . . . , b, bb,. . . , ab, aba, abb, . . .}. El conjunto * es infinito, pero enumerable.

Lenguajes, operaciones con lenguajes

Un lenguaje es simplemente un conjunto de palabras. As, {abracadabra} es un lenguaje(de una sola palabra), {ali, baba, y, sus, cuarenta, ladrones} es otro, * es otro, etc. Puestoque los lenguajes son conjuntos, podemos efectuar con ellos todas las operaciones de los conjuntos (unin, interseccin, diferencia). Definiremos adems la operacin de concatenacinde lenguajes, escrita como L1 L2, como una extensin de la concatenacin de palabras:

L1 L2 = {w|w= xy, x 2 L1, y 2 L2}.

Por ejemplo, dados los lenguajes L1 = {ca,ma} y L2 = {nta, sa}, la concatenacin L1L2sera {canta, casa,manta, masa}. Como se ve en este ejemplo, para calcular la concatenacinde dos lenguajes hay que concatenar cada palabra del primero de ellos con cada una delsegundo.

Una operacin ms complicada es la llamada estrella de Kleene o cerradura de Kleene,en honor al matemtico norteamericano S. C. Kleene, quien la propuso.

Definicion.- Si L es un lenguaje, L*, llamado cerradura de Kleene de L, es el maspequeno conjunto que contiene:

La palabra vaca, " El conjunto L Todas las palabras formadas por la concatenacin de miembros de L*

Por ejemplo, si L = {abra, cadabra}, L*= {, abra, abraabra, abracadabra, cadabraabra,. . .}

Obsrvese que la definicin de la estrella de Kleene es recursiva, pues en la tercera reglaestamos suponiendo que ya hay palabras en L *, las cuales concatenamos para producir unanueva palabra. Esta nocin se puede conceptualizar fcilmente de la siguiente forma: Supongamosque inicialmente L*contiene slo la palabra vaca y los elementos de L. Entonces deah tomamos dos elementos cualesquiera, que no necesitan ser distintos, y los concatenamos,para producir una palabra, la cual aadimos a L*si no estaba ya. Continuando indefinidamente con esta accin, se iran obteniendo todos los elementos de L* .

Esta definicin es congruente con la notacin *que se utiliz para definir el conjunto detodas las palabras sobre un alfabeto, pues de hecho *es la cerradura de Kleene del alfabeto,tomando los smbolos de ste como palabras de una letra