Este documento define conceptos básicos de los lenguajes formales como alfabetos, palabras, gramáticas y tipos de lenguajes. Explica que un lenguaje formal es un conjunto de cadenas de símbolos, y que un alfabeto es un conjunto finito de símbolos. También describe las expresiones regulares que permiten expresar lenguajes regulares de forma compacta.
2. Un lenguaje formal es un conjunto (finito o infinito) de
cadenas finitas de símbolos primitivos
Ej: El lenguaje “Número” es simplemente el conjunto infinito
de cadenas finitas formadas con los dígitos
0, 1, 2, 3, 4, 5, 6, 7, 8 y 9
Alfabeto
Gramática
Un alfabeto es un conjunto finito no vacío cuyos elementos se llaman símbolos.
Denotamos un alfabeto arbitrario con la letra Σ.
La gramática es un conjunto finito de reglas para formar
cadenas finitas juntando símbolos del alfabeto
3. Una palabra o cadena sobre un alfabeto Σ es cualquier sucesión finita de
elementos de Σ. Admitimos la existencia de una única palabra que no tiene
símbolos, la cual se denomina palabra vacía y se denota con λ.
La palabra vacía desempeña, en la teoría de lenguajes formales, un
papel similar al que desempeña el conjunto vacío ∅ en la teoría de
conjuntos.
Ejemplo Sea Σ = {a,b} el alfabeto que
consta de los dos símbolos a y b. Las
siguientes son palabras sobre Σ:
Aba
Ababaaa
Aaaab
Obsérvese que aba 6= aab. El orden de los símbolos en una
palabra es significativo ya que las palabras se definen como
sucesiones, es decir, conjuntos secuencial-mente ordenados.
4. El conjunto de todas las palabras sobre un alfabeto Σ,
incluyendo la palabra vacía, se denota por Σ∗.
Ejemplo:
Sea Σ = {a,b,c},
entonces
Σ∗ = {λ,a,b,c,aa,ab,ac,ba,bb,bc,ca,cb,cc,aaa,aab,abc,baa,...}.
5. Tipo 0: Gramáticas libres que generan lenguajes sin ningún tipo
de restricción
Tipo 1: Gramáticas contextuales que generan lenguajes
contextuales
Tipo 2: Gramáticas incontextuales que generan lenguajes
incontextuales
Tipo 3: Gramáticas regulares que generan lenguajes regulares
6. Un lenguaje regular es un lenguaje formal que tiene estas
características:
Puede ser descrito mediante una expresión regular (expresar de
forma compacta cómo son todas las cadenas de símbolos que le
pertenecen)
Puede ser generado mediante una gramática regular
(obtener todas las cadenas de símbolos que le pertenecen)
Puede ser reconocido mediante un autómata finito
(saber si una cadena de símbolos pertenece a él o no)
7. El conjunto de expresiones regulares sobre un alfabeto A se denomina ER(A) y sólo contiene expresiones
formadas mediante estas reglas:
∅ ∈ ER(A) y denota el lenguaje {}, siendo ∅ el vacío
Λ ∈ ER(A) y denota el lenguaje {λ}, siendo λ la cadena vacía
Si x ∈ A, x ∈ ER(A) y denota el lenguaje {x}
Si H∈ER(A) y K ∈ER(A), con lenguajes denotados LH y LK
(H | K) ∈ ER(A) y denota el lenguaje LH ∪ LK
(Conjunto de todas las cadenas de H o de K)
8. (HK) ∈ER(A) y denota el lenguaje LHK siendo LHK= {hk tal
que h ∈ LH y k ∈ LK}
(Conjunto de todas las concatenaciones posibles de una cadena
de H y otra de K)
H* ∈ ER(A) y denota el lenguaje LH* siendo LH* = {λ}
∪{aαtal que a ∈ LH y α ∈ LH*}
(Conjunto de todas las concatenaciones sucesivas posibles de
cadenas de H)
9. Federico Peinado. (2009). Lenguajes Formales. En Lenguajes Formales, repaso(35). Madrid:
Universidad Complutense de Madrid.
Sergio Balari. (2014). Complejidad Estructural. En TEORÍA DE LENGUAJES FORMALES(106).
Barcelona: Universitat Autònoma de Barcelona.
Rodrigo De Castro Korgi. (Desconocido). Teoría de la Computación. 2015, de Universidad nacional de
Colombia Sitio web: http://www.virtual.unal.edu.co/cursos/ciencias/2001018/docs_curso/contenido.html