Cuando hablamos y escribimos, lo hacemos de acuerdo a una serie de reglas ortográficas, sintácticas y semánticas establecidas por la sociedad en la cual nos encontremos embebidos. Una definición común de diccionario sería algo como “un conjunto de palabras y reglas para combinarlas, en uso por una comunidad, nación o grupo étnico”. Y eso, para la mayoría de las personas, nos es suficiente.
¿Pero qué pasa cuando queremos enseñarle a pensar a una máquina? Para esto, primero tenemos que enseñarle este conjunto de reglas, este lenguaje. Y explicarle a una máquina esto con la definición anterior nos mete en más problemas que soluciones. De tal forma que hay que recurrir a una definición que elimine las ambigüedades de la anterior. Una definición matemática.
Sin embargo, pensemos en una lengua como el español. La dificultad de representar matemáticamente las innumerables posibilidades que existen, todas las posibles excepciones a las reglas. Una misma palabra puede significar dos cosas completamente opuestas, según el contexto en que se encuentre. Las posibilidades que hay de que cada hablante pueda decir una frase que nunca antes ha sido dicha y aun así sea entendida por cualquier otro hablante de esta lengua. Este fenómeno pasa en los lenguajes de programación, en menor medida, pero no es posible prever todas las posibles combinaciones de una sentencia programable.
Entonces, queremos enseñarle a una máquina (que tiene una capacidad finita) una serie de símbolos y reglas que forman, posiblemente, un conjunto infinito. Parece difícil. Lo es. Gigantes de la matemática y el cómputo lo han hecho posible. Entre ellos, el gran Turing, Von Neumann y un personaje aun vivo, Chomsky.
De tal forma, ¿cómo formalizamos matemáticamente la ortografía, o mejor dicho, la gramática? Necesitamos definir los bloques de construcción básicos, es decir, las letras o símbolos de nuestra lengua.
Definición 1. Símbolo
Un símbolo es una entidad abstracta indivisible. Por ejemplo, la a, la b; el 1 o el 2. Es claro que estos símbolos dependen de la lengua de que estemos hablando. No son los mismos símbolos entre el español y el chino mandarín.
Alguien podría argumentar que es un sinrazón tratar de definir esto. Pero es tan necesario y complicado como definir el bloque básico de la geometría plana: el punto.
Una vez que tenemos los símbolos definidos, los podemos agrupar en un conjunto que todos conocemos como alfabeto.
Definición 2. Alfabeto
Un alfabeto es un conjunto FINITO de símbolos. Fácil, pero es importante notar que no podemos definir conjuntos infinitos, pues, de nueva cuenta, no podríamos enseñárselo a una máquina.
Una vez que tenemos nuestro alfabeto, podemos empezar a jugar con él. Podemos empezar a mezclar los símbolos, tratar distintos arreglos y combinaciones. A este “juego” se le conoce como el proceso de construir cadenas.
Definición 3. Cadena
Una cadena, en el contexto que nos ocupa, es una sucesión de símbolos, pegados uno a continuación del otro. Estas cadenas las conocemos coloquialmente como palabras y frases.
Ya con esto, tenemos suficiente para poder aventurarnos a construir gramáticas. Pero, siempre es bueno contar con una serie de herramientas para poder trabajar más a gusto.
Definición 4. Longitud de una cadena
La longitud de una cadena w está dada por el número de símbolos de un alfabeto V presentes en la cadena, y se denomina como |w| (dos barras verticales).
En lenguaje matemático decimos que:
Eso lo leemos como que la “longitud de w es igual a k sí y solo sí, w es igual a la cadena formada por los símbolos a1a2…ak, donde cada "a" en la cadena pertenece al alfabeto V”. Sencillo no?
Existe una cadena truculenta: la cadena vacía cuya longitud es igual a cero. Esta cadena se denota regularmente por la letra griega épsilon ε o la letra griega lambda λ. Entonces, por definición , | λ|=0
Algunos ejemplos:
1.- Sea V un alfabeto donde V={a, b, c}. Si "w" es una cadena y "w"=aabcba, entonces |w|=6
2.- Sea S={e,f,g,h} y x = eeeg. Entonces |w|=4
Entonces, ahora sí, podemos definir una regla, basada en cosas finitas, para definir conjuntos infinitos. Por ejemplo, podría definir el conjunto de todas las posibles cadenas finitas sobre un alfabeto. Las cadenas son finitas, pero el conjunto de todas ellas es infinito. ¿Es claro el porqué?
Para crear un lenguaje (que no hemos definido) necesitamos operar con estas cadenas; dotarlas de una serie de reglas. Y ya con los lenguajes, podemos construir gramáticas. Y con esto, podemos construir al idioma español y, con suerte, enseñárselo a una máquina para que “piense en español”.
Pero eso será en otra entrega.
Nota. Este 2012 se está celebrando precisamente el centenario del natalicio del padre de muchas muchas cosas que nos acompañan todos los días: Alan Turing.
Imagen tomada de aquí
The following errors occurred with your submission