05 lenguajes regulares - edgardo a. francolenguajes regulares compiladores (análisis léxico ii...

25
Clase 05: Lenguajes regulares Solicitado: Ejercicios 03: Lenguajes regulares 1 M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom [email protected]

Upload: others

Post on 04-Apr-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Clase 05: Lenguajes regulares

Solicitado: Ejercicios 03: Lenguajes regulares

1M. en C. Edgardo Adrián Franco Martínez

http://computacion.cs.cinvestav.mx/~efranco

@efranco_escom

[email protected]

Contenido

• Lenguajes regulares

• Definición formal de lenguaje regular

• Expresiones regulares

• Propiedades algebraicas de las expresiones

regulares

• Precedencia de las operaciones con las

expresiones regulares

• Ejemplos

• Ejercicios 03: Lenguajes regulares2

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Lenguajes regulares

Compiladores (Análisis Léxico II - Edgardo A. Franco)

• Un lenguaje es un conjunto de palabras (cadenas)

de un determinado alfabeto �.

• Los lenguajes más sencillos que formalmente se

consideran son los lenguajes regulares.

• Un lenguaje regular se puede generar a partir de

lenguajes básicos, con la aplicación de las

operaciones de unión, concatenación y * de Kleene

un número finito de veces.

3

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Compiladores (Análisis Léxico II - Edgardo A. Franco)

• Los lenguajes regulares se llaman así porque sus

palabras contienen “regularidades” o repeticiones

de los mismos componentes.

• P.g.

• L1 = {ab, abab, ababab, abababab, . . .}

• En este ejemplo se aprecia que las palabras de L1 son

simplemente repeticiones de “ab” cualquier número de

veces. Aquí la “regularidad” consiste en que las palabras

contienen “ab” algún número de veces.

4

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Compiladores (Análisis Léxico II - Edgardo A. Franco)

• Un lenguaje regular es un tipo de lenguaje formal quesatisface las siguientes propiedades:

• Puede ser reconocido por:

• Un autómata finito determinista

• Un autómata finito no determinista

• Un autómata de pila

• Un autómata finito alterno

• Una máquina de Turing de solo lectura

• Es generado por:

• Una gramática regular

• Una gramática de prefijos

• Es descrito por:

• Una expresión regular5

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Compiladores (Análisis Léxico II - Edgardo A. Franco)

• P.g.

• L2 ={abc, cc, abab, abccc, ababc, . . .}

• La regularidad en L2 consiste en que sus palabrascomienzan con 0 o más repeticiones de “ab”, seguidasde repeticiones de 0 o más “c”.

• Similarmente es posible definir muchos otroslenguajes basados en la idea de repetir esquemassimples.

• Adicionalmente a las repeticiones de esquemassimples, vamos a considerar que los lenguajesfinitos son también regulares por definición. Porejemplo, el lenguaje L3 = {anita, lava, la, tina} esregular.

6

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Compiladores (Análisis Léxico II - Edgardo A. Franco)

• Finalmente, al combinar lenguajes regulares

uniéndolos o concatenándolos, también se obtiene

un lenguaje regular.

• P.g.

L1 ∪ L3 = {anita, lava, la, tina, ab, abab, ababab, abababab, . . .}

• También es regular una concatenación como L3L3 =

{anitaanita,anitalava, anitala, anitatina, lavaanita,

lavalava, lavala, lavatina, . . .}

7

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Definición formal de lenguaje regular

• Un lenguaje regular sobre un alfabeto Σ dado se define

recursivamente como:

• El lenguaje vacío Ф es un lenguaje regular

• El lenguaje cadena vacía {ε} es un lenguaje regular

• Para todo símbolo a ∈ Σ {a} es un lenguaje regular

• Si A y B son lenguajes regulares entonces A ∪ B (unión), AB

(concatenación) y A* (cerradura de Kleene) son lenguajes

regulares

• Si A es un lenguaje regular entonces (A) es el mismo lenguaje

regular

• No existen más lenguajes regulares sobre Σ

8

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• Definición: Un lenguaje L es regular si y solo si secumple al menos una de las condicionessiguientes:

i. L es finito (Estos son lenguajes obviamente regulares y uno podría

crear expresiones regulares que serían la unión de todas las palabras dellenguaje que definirían dicho lenguaje.)

ii. L es la unión o la concatenación de otros lenguajesregulares R1 y R2, L = R1 ∪ R2 o L = R1R2 respectivamente

iii. L es la cerradura de Kleene de algún lenguaje regular,L=R*

9

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• Todo lenguaje formal finito constituye un lenguaje

regular.

• Un lenguaje formal infinito puede ser regular o no regular.

El lenguaje L = {an, n > 0} es regular porque puede ser

representado, por ejemplo, mediante la expresión regular

a+.

• El lenguaje L= {an bn, n > 0} es un lenguaje no regular dado

que no es reconocido por ninguna de las formas de

representación anteriormente enumeradas.

10

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Expresiones regulares• Una expresión regular es una forma abreviada de

representar cadenas de caracteres que se ajustana un determinado patrón. Al conjunto de cadenasrepresentado por la expresión r se lo llamalenguaje generado por la expresión regular r y seescribe L(r).

• Una expresión regular se define sobre un alfabetoΣ y es una cadena formada por caracteres dedicho alfabeto y por una serie de operadorestambién llamadas metacaracteres.

11

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Compiladores (Análisis Léxico II - Edgardo A. Franco)

• Las expresiones regulares se introducen paradescribir los lenguajes regulares, entonces lasexpresiones regulares serán metalenguajes i.e. lasexpresiones regulares son un metalenguaje paradescribir los lenguajes regulares.

• Una expresión regular, a menudo es llamada

también patrón, y es una expresión que describe un

conjunto de cadenas sin enumerar sus elementos.

• P.g., el grupo formado por las cadenas Handel, Händel y

Haendel se describe mediante el patrón : H(a|ä|ae)ndel.

*Metalenguaje: Lenguaje para hablar de otro lenguaje.

12

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• Las expresiones regulares básicas sedefinen de la siguiente forma:

A. El símbolo Ф (conjunto vacío) es una expresión regular yL(Ф)={ }

B. El símbolo λ (palabra vacía) es una expresión regular yL(λ)={λ}

C. Cualquier símbolo a ∈ Σ es una expresión regular yL(a)={a}

13

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• A partir de las expresiones regulares básicaspueden construirse expresiones regulares máscomplejas aplicando las siguientes operaciones:

1. Concatenación (se representa con el

metacarácter ·): Si r y s son expresiones regulares,

entonces r.s también es una expresión regular y

L(r·s)=L(r)·L(s).

• El operador "·" puede omitirse de modo que rs también representa

la concatenación.

14

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• La concatenación de dos lenguajes L1 y L2, seobtiene concatenando cada cadena de L1 contodas las cadenas de L2.

• P.g. 1• Σ={0,1}

• L1={00,1}

• L2={11,0,10}

• L1L2={0011,000,0010,111,10,110}

• P.g. 2• L(ab)={ab}

15

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

2. Unión (se representa con el metacarácter |): Si r

y s son expresiones regulares, entonces r|s

también es una expresión regular y L(r|s) = L(r) ∪L(s).

• P.g.• El leguaje generado por la expresión regular ab|c es

L(ab|c)={ab,c}

16

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

3. Cierre o clausura estrella (cerradura deKleene) (se representa con el metacarácter *): Sir es una expresión regular, entonces r* también

es una expresiones regular y L(r*)=L(r) *.

�∗ ����

��Donde Li es igual a la concatenación de L consigomismo i veces y L0 =λ.

17

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• Si a es una expresión regular, entoncesa* es una expresión regular quedenota {a}* i.e.

L(a*)={λ, a,aa,aaa,…,aaaaaa…a}

• P.g.• El leguaje generado por la expresión regular

a*ba* es L(a*ba*)={b,ab,ba,aba,aab,…}

18

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

4. Cierre positivo (se representa con elmetacarácter +): Si r es una expresión regular,entonces r+ también es una expresiones regular yL(r+)=L(r) +.

�� ����

� Donde Li es igual a la concatenación de L consigomismo i veces y no se incluye a L0 =λ.

19

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• Si a es una expresión regular, entonces a+

es una expresión regular que denota {a}+

i.e.

L(a+)={a,aa,aaa,…,aaaaaa…a}

• P.g.• El leguaje generado por la expresión regular

a+ba+ es L(a+ba+)={aba,aaba,aabaa,aaaba,…}

20

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

• La concatenación es asociativa (rs)t=r(st)

• La concatenación se distribuye sobre: r(s|t)=rs|rt y

(s|t)r=sr|tr

• La unión es conmutativa: r|s = s|r

• La unión es asociativa: (r|s)|t=r|(s|t)

• λ es el elemento identidad para la concatenación λ r=r λ=r

• La relación entre λ y * es: r*=(r| λ)*

• r* es idempotente r**=r*21

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Propiedades algebraicas de las expresiones regulares

• Se permite el uso de paréntesis para indicar la

precedencia de las operaciones, pero cuando no se

utilizan paréntesis para evaluar una expresión

regular, hay que tener en cuenta el siguiente orden

de precedencia:

1. Uso de paréntesis

2. Operación cierre y cierre positivo

3. Operación concatenación

4. Operación unión o alternativa

Precedencia de las operaciones con las expresiones regulares

22

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

EjemplosEjemplo 1• ∑ ={a, b}

i. a|b denota el lenguaje L(a|b)={a, b}.

ii. (a|b)(a|b) denota a L((a|b)(a|b))={aa, ab, ba, bb},el lenguaje de todas las cadenas de longitud dossobre el alfabeto∑.

iii. (a|b)(a|b) =aa|ab|ba|bb

iv. L(a*)={ λ, a, aa, aaa, …}, todas las cadenas decero o más a 's.

23

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Ejemplo 2

• (a)|((b)*(c)) = a|b*c• Descripción:

• Conjunto de cadenas que son una sola a o cero o

más b'sseguidas por una c.

• Algunas cadenas del lenguaje:

• L(a|b*c)={a,c,bc,bbc,bbbc,bbbbc,…}

24

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Ejercicios 03: Lenguajes regularesDescriba los lenguajes generados por las siguientesexpresiones regulares y enumere al menos 20cadenas de cada lenguaje. ∑ ={a, b, c, d, e, …,z}

1. (ab)|(cz)|d*

2. a+b+c | b+d z

3. (abc)*z

4. (a|b)*+|a

5. (ab)+ (bc)+

*Se entregarán antes del día Miércoles 28 de Agosto de 2013 (23:59:59 hora limite) .

*Incluir la redacción de cada ejercicio

*Portada y encabezados de pagina.25

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

5:

Len

gu

aje

s re

gu

lare

s

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z