Está en la página 1de 33

TRADUCTORES E

INTERPRETADORES

Clase 1: Lenguajes Regulares y


Expresiones Regulares

Profs. Carlos Pérez y Ricardo Monascal


Agenda
• Definición formal de frase.
• Operaciones básicas sobre lenguajes.
• Lenguajes Regulares.
• Expresiones Regulares.
• Semántica de Expresiones Regulares.

Profs. Carlos Pérez y Ricardo Monascal


Definición formal de frase
Recordando…

Profs. Carlos Pérez y Ricardo Monascal


Profs. Carlos Pérez y Ricardo Monascal
Definición formal de frase
Recordando…
• Frases: Secuencia de símbolos, todos
pertenecientes a algún alfabeto Σ

Profs. Carlos Pérez y Ricardo Monascal


Definición formal de frase
Recordando…
• Frases: Secuencia de símbolos, todos
pertenecientes a algún alfabeto Σ
Formalmente:
• λ es una frase. (Frase vacía.)

Profs. Carlos Pérez y Ricardo Monascal


Definición formal de frase
Recordando…
• Frases: Secuencia de símbolos, todos
pertenecientes a algún alfabeto Σ
Formalmente:
• λ es una frase. (Frase vacía.)
• a es una frase, si a  

Profs. Carlos Pérez y Ricardo Monascal


Definición formal de frase
Recordando…
• Frases: Secuencia de símbolos, todos
pertenecientes a algún alfabeto Σ
Formalmente:
• λ es una frase. (Frase vacía.)
• a es una frase, si a  
• x  y es una frase si x es una frase e y es una frase.
(Concatenación.)

Profs. Carlos Pérez y Ricardo Monascal


Operaciones básicas sobre lenguajes

Los lenguajes, al ser conjuntos, se tienen las


mismas operaciones de estos últimos:
• Unión
• Intersección
• Diferencia
• Complemento (¿Con respecto a quién?)
Pero, además, se tienen operaciones
adicionales, de entre ellas destacamos dos…
Profs. Carlos Pérez y Ricardo Monascal
Operaciones básicas sobre lenguajes

• Concatenación de lenguajes: dados dos


lenguajes L y S, se define la concatenación de la
siguiente forma:
L  S  {l  s l  L  s  S}

Profs. Carlos Pérez y Ricardo Monascal


Operaciones básicas sobre lenguajes

• Concatenación de lenguajes: dados dos


lenguajes L y S, se define la concatenación de la
siguiente forma:
L  S  {l  s l  L  s  S}
• Clausura de Kleene: dado un lenguaje L, su
clausura de Kleene, L*, es dada por las siguientes
ecuaciones:

L*  {}  { x  l x  L*  l  L}

Profs. Carlos Pérez y Ricardo Monascal


Operaciones básicas sobre lenguajes

• Concatenación de lenguajes: dados dos


lenguajes L y S, se define la concatenación de la
siguiente forma:
L  S  {l  s l  L  s  S}
• Clausura de Kleene: dado un lenguaje L, su
clausura de Kleene, L*, es dada por las siguientes
ecuaciones:
  L*
(x, l : x  L*  l  L : x  l  L* )
Profs. Carlos Pérez y Ricardo Monascal
Operaciones básicas sobre lenguajes

• ¿Si se aplicase la clausura de Kleene sobre un


alfabeto Σ, qué se obtiene?

Profs. Carlos Pérez y Ricardo Monascal


Operaciones básicas sobre lenguajes

• ¿Si se aplicase la clausura de Kleene sobre un


alfabeto Σ, qué se obtiene?
• Sí, se obtiene el lenguaje que contiene a todas
las posibles frases sobre el alfabeto Σ.

Profs. Carlos Pérez y Ricardo Monascal


Operaciones básicas sobre lenguajes

• ¿Si se aplicase la clausura de Kleene sobre un


alfabeto Σ, qué se obtiene?
• Sí, se obtiene el lenguaje que contiene a todas
las posibles frases sobre el alfabeto Σ.
– A este lenguaje lo llamaremos Σ*.

Profs. Carlos Pérez y Ricardo Monascal


Operaciones básicas sobre lenguajes

• ¿Si se aplicase la clausura de Kleene sobre un


alfabeto Σ, qué se obtiene?
• Sí, se obtiene el lenguaje que contiene a todas
las posibles frases sobre el alfabeto Σ.
– A este lenguaje lo llamaremos Σ*.
– Y cualquier otro lenguaje sobre
Σ es subconjunto de Σ*.

Profs. Carlos Pérez y Ricardo Monascal


Operaciones básicas sobre lenguajes

• ¿Si se aplicase la clausura de Kleene sobre un


alfabeto Σ, qué se obtiene?
• Sí, se obtiene el lenguaje que contiene a todas
las posibles frases sobre el alfabeto Σ.
– A este lenguaje lo llamaremos Σ*.
– Y cualquier otro lenguaje sobre
Σ es subconjunto de Σ*.
– La operación de complemento
es sobre Σ*.
Profs. Carlos Pérez y Ricardo Monascal
Lenguajes Regulares
• ¿Qué es un lenguaje regular?

Profs. Carlos Pérez y Ricardo Monascal


Lenguajes Regulares
• ¿Qué es un lenguaje regular?
• Los lenguajes regulares, sobre un alfabeto Σ,
son aquellos que pueden ser construidos de la
siguiente manera:
– Ø es un lenguaje regular.
– Para todo a ∈ Σ U {λ}:
{a} es un lenguaje regular.

Profs. Carlos Pérez y Ricardo Monascal


Lenguajes Regulares
• ¿Qué es un lenguaje regular?
• Los lenguajes regulares, sobre un alfabeto Σ,
son aquellos que pueden ser construidos de la
siguiente manera:
– Si L y S son lenguajes regulares, entonces los
siguientes son lenguajes regulares:
LS
LS
L*
Profs. Carlos Pérez y Ricardo Monascal
Lenguajes Regulares
• ¿Qué es un lenguaje regular?
• Los lenguajes regulares, sobre un alfabeto Σ,
son aquellos que pueden ser construidos de la
siguiente manera:
– Ningún otro lenguaje es regular.

Profs. Carlos Pérez y Ricardo Monascal


Expresiones Regulares
• Son usadas para representar lenguajes
regulares…

Profs. Carlos Pérez y Ricardo Monascal


Expresiones Regulares
• Son usadas para representar lenguajes
regulares…
• … ¡y en el fondo de esta presentación hay
expresiones regulares (extendidas)!

Profs. Carlos Pérez y Ricardo Monascal


Expresiones Regulares
• Una expresión regular en Σ está definida por
las siguientes reglas:
– Ø, λ y a (para todo a ∈ Σ) son expresiones
regulares.

Profs. Carlos Pérez y Ricardo Monascal


Expresiones Regulares
• Una expresión regular en Σ está definida por
las siguientes reglas:
– Ø, λ y a (para todo a ∈ Σ) son expresiones
regulares.
– Si u y v son expresiones regulares, entonces las
siguientes son expresiones regulares:
uv
uv
u*
Profs. Carlos Pérez y Ricardo Monascal
Semántica de Expresiones Regulares

• Las expresiones regulares representan


lenguajes regulares... ¿pero cuáles?

Profs. Carlos Pérez y Ricardo Monascal


Semántica de Expresiones Regulares

• Las expresiones regulares representan


lenguajes regulares... ¿pero cuáles?
• Denotemos ER(Σ) como el conjunto de todas
las expresiones regulares en Σ.
• Se define la función de semántica:
sem : ?  ?
que permite definir cuál es el lenguaje regular
asociado a la expresión.
Profs. Carlos Pérez y Ricardo Monascal
Semántica de Expresiones Regulares

• Las expresiones regulares representan


lenguajes regulares... ¿pero cuáles?
• Denotemos ER(Σ) como el conjunto de todas
las expresiones regulares en Σ.
• Se define la función de semántica:
*
sem : ER ()  2
que permite definir cuál es el lenguaje regular
asociado a la expresión.
Profs. Carlos Pérez y Ricardo Monascal
Semántica de Expresiones Regulares

sem(Ø)  Ø
sem( )  {}
(a : a   : sem(a)  {a})
(u, v : u, v  ER () : sem(u  v)  sem(u )  sem(v))
(u, v : u, v  ER () : sem(uv)  sem(u )  sem(v))
(u : u  ER () : sem(u*)  sem(u )* )

Profs. Carlos Pérez y Ricardo Monascal


Semántica de Expresiones Regulares

• En efecto, todas las expresiones regulares


representan algún lenguaje regular.

Profs. Carlos Pérez y Ricardo Monascal


Semántica de Expresiones Regulares

• En efecto, todas las expresiones regulares


representan algún lenguaje regular.
• ¿Y será que todos los lenguajes regulares tienen
una expresión regular que lo represente?

Profs. Carlos Pérez y Ricardo Monascal


… ¿y ahora?

Profs. Carlos Pérez y Ricardo Monascal


… ¿y ahora?

… ¡eso será para la próxima clase!

Profs. Carlos Pérez y Ricardo Monascal

También podría gustarte