Você está na página 1de 5

Alumno: Casas Valdez Gustavo Adolfo

Materia: Lenguajes de Programacin


Grupo: 1
LISP Pgina 1

LISP.
El Lisp fue inventado por John McCarthy en 1958 mientras estaba en el Instituto
Tecnolgico de Massachusetts (MIT). McCarthy public su diseo en 1960 en un artculo
de Communications of the ACM titulado "funciones recurrentes de expresiones simblicas
y su cmputo por la mquina, parte I" (la "parte II" nunca fue publicada). All mostr que
con algunos operadores simples y una notacin para las funciones, uno puede construir un
lenguaje turing completo para los algoritmos.
Desde 1955 1956, el Information Processing Language fue el primer lenguaje de AI, y ya
haba incluido muchos de los conceptos, tales como proceso por lista y recurrencia, que
vinieron a ser usados en el Lisp.
La notacin original de McCarthy usaba "expresiones M" en corchetes que seran
traducidas a expresiones S. Como un ejemplo, la expresin M car[cons[A,B]] es equivalente
a la expresin S (car (cons A B)). Una vez el Lisp fue implementado, los programadores
rpidamente eligieron usar expresiones S, y las expresiones M fueron abandonadas. las
expresiones M emergieron otra vez con los intentos efmeros del MLISP de Horace Enea y
el CGOL de Vaughan Pratt.
El Lisp fue implementado primero por Steve Russel en un computador IBM 704. Russell
haba ledo el artculo de McCarthy, y se dio cuenta (para la sorpresa de McCarthy) que la
funcin eval del Lisp poda ser implementada en cdigo de mquina. El resultado fue
un intrprete de Lisp funcional que poda ser usado para correr programas Lisp, o ms
correctamente, "evaluar expresiones Lisp".
Dos rutinas de lenguaje ensamblador para el IBM 704 se convirtieron en las operaciones
primitivas para descomponer listas: car (contenido del registro de direccin) y cdr
(contenido del registro del decremento). Los dialectos del Lisp todava usan el car y cdr
(pronunciado /kr/ y /kdr/) para las operaciones que retornan el primer elemento y el
resto de la lista respectivamente.
El primer compilador completo de Lisp, escrito en Lisp, fue implementado en 1962 por Tim
Hart y Mike Levin en el MIT.3 Este compilador introdujo el modelo Lisp de compilacin
incremental, en el cual las funciones compiladas e interpretadas pueden entremezclarse
libremente. El lenguaje en los memos de Hart y Levin es mucho ms cercano al estilo
moderno del Lisp que el anterior cdigo de McCarthy.
Alumno: Casas Valdez Gustavo Adolfo
Materia: Lenguajes de Programacin
Grupo: 1
LISP Pgina 2

CARACTERISTICAS:
El LISP es un lenguaje funcional que se apoya en la utilizacin de funciones matemticas
para el control de los datos. Pero el elemento fundamental en el LISP es la lista. Y desde el
punto de vista ms amplio del trmino. Cada funcin del LISP y cada programa que
generemos con l vienen dado en forma de lista. Por esta razn los datos no se pueden
diferenciarse sintcticamente de los programas.
A este tipo de lenguaje se les denomina aplicativos o funcionales porque se basan en la
aplicacin de funciones a los datos. El LISP diferencia dos tipos de elementos bsicos: El
tomo, datos elementales de varios tipos como nmeros, smbolos, caracteres y cadenas
de caracteres. Y las Listas, entre las que podemos nombrar a un en especial. La lista nil,
que es una lista nula que no tiene ningn elemento.
El LISP trata a los elementos o paramentos que le introducimos de manera no destructiva,
de forma que la mayora de las funciones nos devuelven una lista que es el resultado de
alguna transformacin de otra que recibi, pero sin cambiar a esta (la que recibi).
Una de las razones por las que el LISP est especialmente dotado para la programacin en
inteligencia artificial (IA), es precisamente, porque su cdigo y todos los datos tienen la
misma estructura, en forma de lista. El LISP fue uno de los primeros lenguajes en manejar
las excepciones con los comandos catch y throw.
Lisp es 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.



Alumno: Casas Valdez Gustavo Adolfo
Materia: Lenguajes de Programacin
Grupo: 1
LISP Pgina 3





VENTAJAS:
Se puede razonar matemticamente.
Su compatibilidad con todos los sistemas operativos.
Que es multiparadigma.
Programacin corta y sencilla.

DESVENTAJAS.
La ejecucin de los programas es ms lenta, pues el intrprete tiene que gestionar
la memoria y las pilas de recursin, cosa que lo hace bastante ms lento que los
lenguajes estructurados.
Cdigo difcil de comprender, sobretodo en programas de tamao considerable en
grupo.
Dificultad para depurarlo.






Alumno: Casas Valdez Gustavo Adolfo
Materia: Lenguajes de Programacin
Grupo: 1
LISP Pgina 4


APLICACIONES:
Desde su inicio, el Lisp estaba estrechamente relacionado con la comunidad de
investigacin de la inteligencia artificial, especialmente en sistemas PDP-10. El Lisp fue
usado como la implementacin del lenguaje de programacin Micro Planner que fue la
fundacin para el famoso sistema de AI SHRDLU. En los aos 1970, a medida que la
investigacin del AI engendr descendientes comerciales, el desempeo de los sistemas
Lisp existentes se convirti en un problema creciente.
El Lisp era un sistema difcil de implementar con las tcnicas de compilador y hardware
comn de los aos 1970. Las rutinas de recoleccin de basura, desarrolladas por el
entonces estudiante graduado del MIT, Daniel Edwards, hicieron prctico correr Lisp en
sistemas de computacin de propsito general, pero la eficacia todava segua siendo un
problema. Esto llev a la creacin de las mquinas Lisp: hardware dedicado para correr
ambientes y programas Lisp. En 1994, la ANSI public el estndar del Common Lisp, "ANSI
X3.226-1994 Information Technology Programming Language Common Lisp". En aquel
momento el mercado mundial para el Lisp era mucho ms pequeo de lo que es hoy.
EJEMPLO: CASOS DE TRABAJAR CON LISTAS.
Definicin de la funcin:

(defun vacia (l)
(cond ((null l) 1) ; si la lista esta vacia devuelve 1
(t 0))) ; en otro caso (lista llena) devuelve 0

Llamada a la funcin:

(vacia '(1 3 4)) ; La lista no esta vacia, devolvera 0
(vacia '()) ; La lista esta vacia, devolvera 1




Alumno: Casas Valdez Gustavo Adolfo
Materia: Lenguajes de Programacin
Grupo: 1
LISP Pgina 5


REFERENCIAS:
http://es.wikipedia.org/wiki/Lisp
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_LISP#Caracter.C3.ADsticas_
del_lenguaje
http://www.ecured.cu/index.php/Lisp
http://www.slideshare.net/charlyra/lisp-25805610

Você também pode gostar