PDF de programación - LanPro

Imágen de pdf LanPro

LanPrográfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 20 de Octubre del 2017)
701 visualizaciones desde el 20 de Octubre del 2017
110,2 KB
15 paginas
Creado hace 10a (04/07/2013)
LanPro

Edgar Uriel Domínguez Espinoza

4 de julio de 2013

Resumen

Este documento presenta un primer diseño de LanPro (LANguage PROcessing), un lenguaje for-
mal cuyo objetivo es el de describir lenguas humanas, útil en cualquier nivel de análisis y fácil de
aprender.

1.

Introducción

En 1956 John McCarthy (1927-2011) crea el concepto lógico-matemático de Inteligencia Artificial,
y años más tarde propone la utilización de de expresiones simbólicas y el primer diseño del lenguaje
formal LISP. A partir de entonces el concepto de Inteligencia Artificial se comercializa y grandes avances
científicos se dan a conocer, las computadoras hablan, juegan ajedrez, pero estarán siempre limitadas por
ser máquinas, aunque sean más rápidas que el cerebro humano nunca podrán mover el corazón, respirar,
escribir, ver, oír, sentir y pensar al mismo tiempo; la computadora esta destinada a la personalización no
a la imitación.

Sin embargo, si podemos procesar el lenguaje de forma efectiva. Con esta visión, los ingenieros
en computación toma la información generada por los lingüistas pero al desconocer los fenómenos de
ésta ciencia crean muchas herramientas que si bien muestran el resultado esperado, son ineficientes y el
conocimiento lingüístico se pierde: sus códigos no reflejan lo que el análisis lingüístico muestra y los
lingüistas se ven incapaces de corregirlos porque no saben leer esos códigos. De este modo, la ciencia ha
sido detenida porque los lingüistas han sido incapaces de crear una notación clara que permita comunicar
su conocimiento con otros científicos. Los modelos matemáticos, las ecuaciones químicas y los diagramas
de flujo, utilizados en numerosas ciencias permiten modelar fenómenos científicos aprendiendo tan solo
unas cuantas reglas y a partir de las estructuras más sencillas se describen los sistemas más complejos.

Es momento entonces de crear un modelo flexible que permita describir fenómenos lingüísticos sin
importar el punto de vista teórico del lingüista1, que permita por primera vez, distinguir entre lo lineal y
lo no lineal, lo relacional y lo jerárquico, lo cuantitativo y lo cualitativo. En este breve trabajo retoma la

1A principios del siglo XX, se crea la física cuántica, que daría un giro total de la visión que se tenía de ésta ciencia hasta

el momento, sin embargo Max Planck nunca tuvo que cambiar los modelos matemáticos.

1

idea de McCarthy2 y basados en dos tipos de datos y dos estructuras se propone crear una herramienta
que permita explicar fenómenos lingüísticos y hacerlos comprencibles para otros científicos interesados.
Cualquier lingüista puede aprender LanPro en un día, existen dos tipos de datos: átomos y símbolos;
existen dos tipos de estructuras: pares de celda y listas. A partir de estos se pueden expresar y procesar
fenómenos en diferentes niveles de análisis lingüístico usando una sola notación. Aún más allá, abre las
puertas para hacer nuevos tipos de análisis, dejar las estructuras gráficas arbóreas binarias por estructuras
que son más prometedoras como los gráficos ponderados, algunos análisis cualitativos lentos con métodos
cuantitativos más eficaces3, porque cuando usan los criterios correctos el análisis se sostiene por si mismo.
Hasta el momento LanPro es un dialecto de LISP, una virtualización del lenguaje, por lo que puede
representar cualquier lengua de forma idealizada, este es un primer ensayo, hasta no estar completo se
debe aclarar al lector que esto es solamente teoría.

2. Unidades fundamentales

2.1. Elementos de Descripción

2.1.1. Átomos

Un átomo es una combinación de los símbolos básicos del Alfabeto Fonético Internacional en conjun-
to con los modificadores de los mismos. Los números también son átomos y la combinación de números y
letras pero esta combinación no puede iniciar con un dígito. Tampoco son átomos aquellas combinaciones
que comienzan con modificadores.

Son ejemplos de átomos:

(1) L5

(2)

(3)

2343

hola

k9'B2hkh

(4)
(5) >týyfs

Son ejemplos de no átomos:

(6)

(7)

* 54dg
Inicia con un dígito

* 'kasas
Inicia con un modificadores

2Idea que en aquellos años se gestaba entre los científicos del MIT, podemos relacionar fácilmente a Chomsky con Mc-

Carthy, aunque no puedo afirmar que uno haya leído al otro.

3Los criterios cualitativos que Porto Dapena señala en su Manual de Técnica Lexicográfica son equivalentes al Criterio de

Costos de Michael P. Oakes.

2

(8)

* ola mundo
Existe un espacio en medio

Al usar LinPro distinguiremos varios tipos de átomos dependiendo del nivel de análisis lingüístico y
el fenómeno que nos ocupe en ese momento, así tendremos átomos fonémicos, silábicos, morfémicos,
léxicos, etc. Para realizar análisis desde el punto de vista cuantitativo como puede suceder en el terreno
fonético se usan los átomos numéricos. Sin embargo siempre tendremos a nuestra disposición algunos
tipos de átomos:

Simbólico: Cuya característica principal es que nunca existirán dos símbolos iguales. Los símbolos sir-
ven para asociar valores y tienen un carácter estrictamente funcional para el sistema descriptivo de
la lengua.

Cadenas: En caso de que se requiera en un átomo un elemento que no lo sea, por ejemplo que tenga un
espacio en blanco, este puede introducirse como cadena. Las cadenas siempre serán escritas entre
comillas dobles “ ”.

t y nil: Estos dos son átomos simbólicos estándar. Sirven para distinguir el final de una lista, como
resultado de los operadores lógicos, en la definición de procesos, entre otras cosas porque tienen la
característica de que siempre se evalúan a si mismos.

2.1.2. Listas

El segundo tipo de dato con el que trabaja LanPro son las listas. Una lista puede ser una secuencia
de átomos separados por un espacio y encerrados entre paréntesis, incluyendo la posibilidad de que una
lista contenga una sublista que cumple con las mismas características.

Definimos como TÉRMINO de una lista a un elemento de la misma, ya sea o no un átomo, por lo que

una lista se define:

(término1 término2 . . . términok)

donde k es el número de elementos de la lista

Son ejemplos de listas:

Lista
(lista)
((esto es) (una lista))
(esto es una lista)

Número de términos Términos

lista
(esto es), (una lista)
esto, es, una, lista

1
2
4

3

2.2. Elementos de Estructura

2.2.1. Apuntadores

Existen solo dos estructuras de datos necesarias y suficientes para el funcionamiento de LanPro, la
primera estructura puede considerarse como un arreglo o una lista de símbolos (desde ahora denomina-
remos diccionario a esta estructura), cada símbolo tiene asociados dos apuntadores V y O.

El primer apuntador V asocia un valor al símbolo y el segundo apuntador O asocia una operación al

símbolo.

2.2.2. Símbolos

Como ya fue mencionado, los símbolos son átomos con carácter funcional. Un símbolo tendrá tres

funciones dentro de LanPro:

1. Evalúa al valor que tiene el apuntador V

2. Si es el primer elemento de una lista, evalúa el valor del apuntador O

3. Si el símbolo es el primer argumento de la operación SETQ el símbolo es usado pero no se evalúa

ningún apuntador.

2.2.3. Par de celda

Un par de celda es la segunda estructura de datos necesaria en LanPro, de ella derivan todas las
operaciones y es la forma básica de organización de información de la lengua que se busca describir. Un
par de celda es como su nombre indica un par de datos, definido de la siguiente manera:

donde fst funcionará como discriminaste para una búsqueda eficiente.

(fst . snd)

Debe ponerse especial atención al espacio que hay entre los elementos y el punto, esta notación
permite diferenciar un par de celda con la notación lingüística estándar de la sílaba que algún análisis
podría requerir. A pesar de que un par de celda por si solo sirve para mantener orden entre pares de
datos simples, lo más frecuente es anidar un par con otro para construir estructuras más complejas como
árboles, los pares se anidan de la siguiente manera:

(a . (b . c))

Si el elemento snd del último par de celda anidado es nil entonces la estructura puede representarse

en forma de lista, es decir:

(a . (b . (c . nil))) = (a b c)

4

2.2.4. Operadores

Un operador es un símbolo que en el diccionario tiene el apuntador O asociado a una estructura de

pares de celda. A continuación un ejemplo básico.

SQUARE V O

num nil

*

nil

num

num nil

Figura 1: Ejemplo de un operador

El operador SQUARE de la figura 1 recibe como argumento un número y lo multiplica por si mismo,

escrito en LanPro, el operador es el siguiente:

(DOP square (num)

"SQUARE recibe un numero y lo multiplica por si mismo"

(* num num))

Un ejemplo de uso es el siguiente:

(SQUARE 5)

25

1

2

3

1

2

Hay varios detalles que deben mencionarse a pesar de la sencillez del ejemplo, el primer detalle es el

uso del operador DOP para definir SQUARE, este primer operador es parte de LanPro.

En la línea 2 de la definición del operador tenemos un comentario que describe el operador que
estamos escribiendo, este comentario es optativo pero útil porque hará que la descripción lingüística sea
auto-documentada, es decir, para entender LanPro solo basta con conocer la estructura básica de este
documento porque cualquier particularidad lingüística o de cualquier otra naturaleza, sin importar la
complejidad de la misma puede ser documentada en el lugar preciso.

Para cerrar los detalles sobre esta función, cabe mencionar que existen estructuras arbóreas asociadas
frecuentemente a LanPro, estos árboles se recorren en preorden (como en gran parte de las teorías lin-
güísticas que se apoyan en árboles) y por lo tanto la notación de escritura, tal como se ve en el ejemplo,
es prefija4. La explicación para la obtención de estos árboles se encuentra en la sección 3. La figura 2

4La evaluación de los operadores se realiza de izquierda a derecha comenzando por las listas más internas de la expresión.

5

muestra la estructura arbórea usada en el operador SQUARE, la estructura es un producto aritmético.

*

num

num

Figura 2: Estructura arbórea utilizada en la
  • Links de descarga
http://lwp-l.com/pdf7229

Comentarios de: LanPro (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad