Вы находитесь на странице: 1из 14

Alrededor de 1956 McCarthy entendi el papel central de un lenguaje de programacin para su objetivo cientfico - la inteligencia artificial.

Un trabajo consultor en 1957 le permiti experimentar con una combinacin de notacin algebraica (como esto es usado en el lenguaje FORTRAN para describir el cmputo aritmtico). El experimento era acertado y la idea se hizo para l una base de pensamiento. l analiz lenguajes de programacin existentes ms profundamente (usando el lenguaje FORTRAN como el modelo) y comenz a pedir el nuevo medio de expresin. Antes de septiembre de 1958, McCarthy haba propuesto crear una nueva Lengua Internacional Algortmica

Caractersticas
Interactivo (usualmente) Los datos en LISP son muy restringidos: tomos literales (smbolos) tomos numricos La estructura de datos bsica es la lista. Incluye primitivas para su manipulacin. Los comentarios comienzan por ; Los parmetros de funcin van todos por valor o por referencia segn la clasificacin de la funcin. LISP es interpretado y usa una estructura de gestin de almacenamiento en montculo con recoleccin de basura como almacenamiento primario para datos y programas.

Estructura/Objetos de datos
Tipos de datos primitivos: tomos. Cada tomo tiene una lista de propiedades asociada, accesible a travs del puntero que almacena el nombre del tomo. No se distinguen may-min para identificadores. Tipos de datos estructurado: listas. Tienen asociado un puntero al primer elemento (car) y otro al elemento siguiente (cdr). Una lista vaca apunta a nil. Para la asignacin se utiliza setq(x val). Representacin y almacenamiento. Cada descriptor de un objeto de datos proporciona tipo y atributos. En los datos estructurados (listas) se tienen slo punteros a primero y a siguiente.

Estructura/Control de secuencia
El traductor LISP es una funcin read() que toma el fuente del fichero y lo interpreta. La ejecucin del programa consiste en la evaluacin de las funciones contenidas en el mismo. Operaciones sobre tomos (en preorden): +, -, *, / Operaciones sobre listas: cons, car, cdr, list, replace, null, equal. Entrada y salida: open(), read(), print(). Definicin de funciones: defun, define.

Estructura/ Gestin de subprogramas


Tres clases de funciones:
1. Funcin interpretada, en forma de estructura de listas. Primitivas eval y apply. 2. Funcin compilada, compiladas en un bloque de cdigo mquina que puede ser ejecutado por el interprete del hardware. 3. Macro, se declara con define. Es simplemente una funcin ordinaria en LISP. Puede ser interpretada y compilada.

Estructura/Gestin de almacenamiento
o La memoria se estructura en forma de montculo, que maneja unidades de una palabra de tamao fijo usando una lista de espacios libres y un recolector de basura. o Entorno de referencia: 1. Local, es el que se da en las listas, como asociaciones de tomos relacionados de una determinada manera. 2. Global o comn, se consigue mediante asociacin de un tomo con una propiedad del mismo que contiene un puntero al datos referenciado. Se usa set y setq.

Estructura/Gestin de almacenamiento
Paso de parmetros:
1. Transmisin por valor, consiste en evaluar las expresiones de una lista de parmetros y transmitir los valores resultantes. 2. Transmisin por nombre, transmitir las expresiones de la lista de parmetros sin evaluar, y dejar que la funcin llamada los evalue usando eval.

Funciones en Lisp
Funciones normales, son las implementaciones de LISP que se suelen incluir en las

Funciones de lista, para manipulacin de listas:

car L, devuelve el primer elemento de L. cdr L, devuelve la cola (lista - primero). cons x y, devuelve uan lista formada por x e y. list x y z, devuelve la lista (x y z). quote x, no se evala x.

Predicados
atom x, devuelve True si x es un tomo. numberp x, devuelve True si x es un nmero. greaterp x y, devuelve True si x>y. lessp x y, devuelve True si x<y. null x, devuelve True si x es nulo. and x y, devuelve x and y. or x y, devuelve x or y. not x, devuelve not x. eq x y, devuelve True si x=y.

Funciones aritmticas:
+, -, *, y /. rem x y, devuelve el mdulo x/y (remainder).

Funciones de entrada y salida


load nombrearchivo, lee el archivo a memoria. print x, imprime el elemento x. open nombrearchivo, abre un archivo y devuelve una puntero al mismo. read, lee del terminal un tomo. help, proporciona ayuda. trace, traza la funcin. bye, termina LISP.

EJEMPLO DEL LENGUAJE LISP

EJEMPLO DEL LENGUAJE LISP

CONCLUSION
LISP ha evolucionado durante ms de 30 aos y desarrollado para inteligencia artificial, pero no es adecuado para aplicaciones convencionales. Las versiones compiladas son algo ms eficientes.

Es un lenguaje muy estricto poco convencional en el sentido comercial. Se frecuenta mas a lo cientfico (Inteligencia Artificial)y se deriva de Fortran y su estructura se maneja de un lista inicio o final (cabeza cola)

Вам также может понравиться