3. Lenguajes Regulares
Los lenguajes regulares se llaman ası porque sus palabras
contienen “Regularidades” o repeticiones de los mismos
componentes, como por ejemplo en el lenguaje L1
siguiente:
L1 = {ab, abab, ababab, abababab, . . .}
4. Lenguajes Regulares
Otra Definición
Un lenguaje Regular es aquel que puede ser representado
por un autómata finito no determinista o un autómata
finito determinista.
5. Lenguajes Regulares
A considerar
Todo lenguaje finito se considera regular por definición.
Ejemplo:
L3 = {anita, lava, la, tina}
6. Definición formal de Lenguajes Regulares
Un lenguaje L es regular si y solo si se cumple al menos una
de las condiciones siguientes:
L es finito.
L es la union o la concatenación de otros lenguajes
regulares R1 y R2, L = R1 ∪ R2 o L = R1R2 respectivamente.
L es la cerradura de Kleene de algún lenguaje regular, L =
R∗.
7. Expresiones Regulares
Una expresión regular es una forma de representar a los
lenguajes regulares (finitos o infinitos) y se construye
utilizando caracteres del alfabeto sobre el cual se define el
lenguaje.
8. Expresiones Regulares
Las ER son simplemente formulas cuyo proposito es representar cada una de ellas
un lenguaje. Asi, el significado de una ER es simplemente el lenguaje que ella
representa.
Sea Σ un alfabeto. El conjunto ER de las expresiones regulares sobre Σ contiene
las cadenas en el alfabeto Σ∪ {“∧”, “+”, “•”, “∗”, “(”, “)”, “Φ”} que cumplen con lo
siguiente:
“∧” y “Φ” ∈ ER
Si σ ∈ Σ, entonces σ ∈ ER.
Si E1, E2 ∈ ER, entonces “(”E1“+”E2“)” ∈ ER, “(”E1“•”E2“)” ∈ ER, “(”E1“)∗” ∈
ER.
9. Metodología de diseño de las ER
Al tratar de encontrar una ER para un lenguaje dado,
mientras mas complejo sea el lenguaje es obvio que resulta
mas difícil encontrar por pura intuición dicha ER.
La notación de conjuntos nos permite describir los lenguajes
regulares, pero nosotros quisiéramos una notación en que las
representaciones de los lenguajes fueran simplemente texto
(cadenas de caracteres).
10. Gramática Formal
Conjunto de reglas de formación que definen las cadenas de
caracteres admisibles en un determinado lenguaje.
11. Gramática Regular
La gramática regular es una gramática formal que sólo
puede generar lenguajes formales.
Las reglas de la gramática regular son de la forma A → aB o
bien A → a, donde A y B son variables, y a es un carácter
terminal.
Dos gramáticas regulares que generan el mismo lenguaje
regular se denominan equivalentes. Toda gramática regular
es una gramática libre de contexto y puede ser clasificada
como regular izquierda o regular derecha
12. Gramática Regular
Una gramática regular es un cuádruplo (V, Σ, R, S) en
donde:
V es un alfabeto de variables,
Σ es un alfabeto de constantes,
R, el conjunto de reglas, es un subconjunto finito de V × (ΣV
∪ Σ).
S, el símbolo inicial, es un elemento de V .
13. Gramática Regular
Una gramática regular derecha es aquella cuyas reglas de
producción P son de la siguiente forma:
A→a, donde A es un símbolo no-terminal en N y a uno
terminal en Σ
A→aB, donde A y B pertenecen a N y a pertenece a Σ
A→ε, donde A pertenece a N.
14. Gramática Regular
Análogamente, en una gramática regular izquierda, las
reglas son de la siguiente forma:
A → a, donde A es un símbolo no-terminal en N y a uno
terminal en Σ
A → B a, donde A y B pertenecen a N y a pertenece a Σ
A→ε, donde A pertenece a N.
15. Equivalencia de expresiones regulares y autómatas
finitos
Para cualquier expresión regular existe un autómata finito
equivalente, y viceversa. Esto el Teorema de Kleene.
Teorema de Kleene:
Un lenguaje es regular si y sólo si es aceptado por algún
autómata
16. Conversión de AF a ER finito.
Un procedimiento para convertir consiste en ir eliminando
gradualmente nodos de una GT, que inicialmente es el
AFN que se quiere transformar, hasta que únicamente
queden un nodo inicial y un nodo final.