Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lenguajes y Gramticas
Conceptos Bsicos
Uno de los conceptos ms importantes de la materia es el de Lenguaje. Para llegar a este concepto es necesario definir antes otras nociones ms elementales.
Una cadena (o palabra) es una secuencia finita de smbolos yuxtapuestos. Por ejemplo a, b y c son smbolos, y abcb es una cadena. La longitud de una cadena w, que se denota como |w| es la cantidad de letras que contiene, contando las repeticiones.
Subcadenas
Supongamos que tenemos x = uyv de alguna concatenacin, posiblemente vaca, cuyas cadenas son u , y , v . Adems y es una subcadena de x , adems u es prefijo de x, y v es sufijo de x. Una subcadena (prefijo, sufijo) es llamado propia si no coincide con la cadena x . Tenemos x como una cadena de al menos una longitud k , x k 1. La notacin Inik(x) denota el prefijo u de x teniendo como longitud k o longitud inicial k.
Alfabeto
Un alfabeto es un conjunto no vaco de smbolos, es tambin un conjunto finito de elementos llamados smbolos finales o caracteres. As el alfabeto del idioma espaol = {a,b,c,...., z}, es solo uno de tantos alfabetos posibles. En general utilizaremos la notacin para representar un alfabeto. Con los smbolos de un alfabeto es posible formar secuencias o cadenas de caracteres, tales como mxzzptlk , balks , r ,etc
Alfabeto
Cuando escribimos varias palabras o caracteres uno a continuacin de otro, se supone que forman una sola palabra (se concatenan). La notacin usada para denotar la concatenacin de dos cadenas y es . Por ejemplo, si w = abra y v = cada , entonces wvabra es la palabra abracadabra
Alfabeto
La concatenacin de palabras es asociativa, esto es (xy)z = x( yz) , pero no conmutativa en el caso general. La longitud de una concatenacin cumple la propiedad: |uv| = |u| + |v|
Afabeto
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, la concatenacin de perro y casa es perrocasa. La yuxtaposicin se utiliza como el operador de concatenacin. Esto es, si w y x son cadenas, entonces wx es la concatenacin de estas dos cadenas. La cadena vaca es la identidad para el operador de concatenacin. Es decir ew = we = w para cada cadena w. La secuencia {a1,a2, a2,ak} ser nuestro alfabeto con k elementos, el cual tendr una cardinalidad = k .
Lenguaje Formal
Un lenguaje formal es un conjunto de cadenas de smbolos tomados de algn alfabeto. El conjunto vaco , y el conjunto formado por la cadena vaca {} son lenguajes. Ntese que son diferentes: el ultimo tiene elemento, mientras que le primero no. El conjunto de palndromos (cadenas que se leen igual de izquierda a derecha o viceversa) sobre el alfabeto {0,1} es un lenguaje infinito. Algunos elementos de este lenguaje son 0, 1, 00, 11, 010 y 1101011.
Lenguaje Formal
Una palabra v es subcadena de otra w cuando existen cadenas x.y - posiblemente vacas tales que xvy = w . Por ejemplo, bora es subcadena de vibora , y es subcadena de toda palabra. Un lenguaje es un conjunto de cadenas sobre un alfabeto especfico
Oracin
Teniendo un lenguaje L3={ab,ba,aabb,abab,, aaabb,}, las cadenas que pertenezcan a este se les llama oracin o frase. As aabbaL3 es una oracin de L3 , mientras que abbL3 es una cadena incorrecta. La cardinalidad o el tamao de un lenguaje es el nmero de frases que contiene. Si la cardinalidad es finita, al lenguaje tambin se le denomina finito, caso contrario si el nmero de cadenas no tiene lmite al lenguaje se le denominara infinito
Vocabulario
Se puede observar que un lenguaje finito es esencialmente una coleccin de palabras muchas veces llamado vocabulario. Un lenguaje infinito especial es el conjunto vaci o el lenguaje el cual no contiene frase alguna = 0 . Por lo general cuando una lengua tiene un solo elemento se omite las llaves al denotar los elementos abb ={abb} Es conveniente introducir la notacin |X|b, donde b es el nmero de caracteres presentes en una cadena X.
Operaciones
Iteracin, Cierre o Clausura del Lenguaje: El cierre de un lenguaje L (o cerradura de Kleene) se representa por L* y se define como: L*= L L2 L3 = i=1Li Clausura Positiva: Se representa por L+ y se define como: L+= i=1Li Ninguna clausura positiva contiene a , si L
Gramtica
Se define la gramtica mediante la cuaterna siguiente: : vocabulario finito de smbolos Terminales. stos son los smbolos que realmente aparecen en una frase. Nunca aparecern en el lado izquierdo de una produccin. Los smbolos terminales deben ser smbolos vlidos del lenguaje. N : conjunto finito de smbolos No Terminales, los cuales son metasmbolos que deben ser definidos por otras producciones (o reglas gramaticales), es decir, que tambin aparecen en el lado izquierdo de las mismas. Los smbolos No Terminales se pueden definir como variables sintcticas. S : un smbolo No Terminal bsico. Ser el smbolo principal o axioma que describir oraciones enteras (y no subcadenas, como describen los smbolos No Terminales) de un lenguaje natural. P : conjunto, tambin finito, de reglas que nos dicen cmo se pueden generar las oraciones, cmo partiendo del axioma, podemos llegar a la oracin terminal.
Gramtica
El lenguaje L se obtendr aplicando el siguiente procedimiento no algortmico (no garantiza tiempo finito para una gramtica genrica): S es una forma oracional. Si es una forma oracional, y = P, tambin ser forma oracional. Una forma oracional compuesta nicamente por smbolos Terminales, constituir una oracin del lenguaje
Gramtica - ejemplo
Como ejemplo, veamos que el enunciado en espaol: El hombre compr el libro, puede derivarse, basndonos en una pequea gramtica, mediante la siguiente secuencia de producciones: S SintagmaNominal SintagmaVerbal Artculo Nombre SintagmaVerbal El Nombre SintagmaVerbal
Gramtica - ejemplo
El hombre SintagmaVerbal El hombre Verbo SintagmaNominal El hombre compr SintagmaNominal El hombre compr Artculo Nombre El hombre compr el Nombre El hombre compr el libro
Entonces, si abreviamos la frase "El hombre compr el libro" = Ehcel, tenemos que: Ehcel* puede producir todas las combinaciones. Adems, Ehcel ser aceptado por el lenguaje definido por el conjunto de producciones anterior, Ehcel L, ya que Ehcel *.
Gramtica
Ahora, podemos definir entonces un lenguaje L como el conjunto de todas las cadenas de smbolos Terminales que pueden derivarse del smbolo inicial o axioma S: L = { | S es una secuencia de y * } siendo s una cadena de smbolos Terminales