TECNOLÓGICO NACIONAL DE MÉXICO
campus LEÓN
QUE PRESENTA:
Carlos Daniel Hernández Hernández
Emanuel Jair Márquez Estrada
Carol Jacqueline Canchola Romo
Miriam de la Luz Medina Medina
Ximena Abigail Pérez Martínez
CARRERA:
Ingeniería en Tecnologías de la Información y Comunicaciones.
León, Guanajuato, Fecha: 23/05/2023
ANTECEDENTES DE LISP
Desde los años 50 la programación funcional ha sido cada vez más utilizada en el campo de la inteligencia
artificial, y esto se debe en gran parte a la aparición de Lisp. Este lenguaje fue creado por John McCarthy,
hoy considerado por muchos como el padre de la Inteligencia Artificial, su idea era optimizar el
funcionamiento y el uso de recursos en los ordenadores de la época y como resultado apareció List Procesor
(LISP).
Este nuevo lenguaje, basado en parte en el ya existente Fortran, utilizaba algunas técnicas innovadoras
como las estructuras de datos de árbol o el uso de la computación simbólica de la cual nacería
posteriormente la programación simbólica. la programación funcional tuvo sus inicios en los años 50,
prácticamente a la vez que Lisp. Este nuevo estilo de programación fue en el que se basaron los ordenadores
científicos IBM700/7000 series.
El funcionamiento de Lisp se basa en el cálculo lambda, el cual es un modelo universal de computación que
puede ser usado para simular cualquier máquina de Turing. Su nombre, debido a la letra griega lambda, se
utiliza en términos de vincular una variable a una función. Este tipo de cálculo es sorprendentemente simple
y potente. Su núcleo se basa en dos fundamentos bastante simples: la abstracción de funciones (sirve para
generalizar expresiones a través de la introducción de variables) y la aplicación de la función, utilizada para
evaluar expresiones dándoles nombres a determinados valores.
Muchos de los lenguajes y algunos de los programas más revolucionarios de la Inteligencia Artificial a lo
largo de la historia están basados en Lisp, de hecho, términos tan habituales como If, Else o Then fueron
inventados por John McCarthy.
Lisp utiliza una estructura distinta a los demás lenguajes de programación, sobre todo en lo que a las
operaciones matemáticas se refiere. Sin embargo, no es un lenguaje que resulte complicado de comprender.
Sus características fundamentales podrían resumirse en:
• Un manejo automático de la memoria que libera el espacio utilizado por los objetos que dejan de
ser necesarios
• La inclusión de un mecanismo simple para utilizar la evaluación perezosa de expresiones
• Lisp no posee un sistema de tipos estáticos y, por tanto, los tipos se asocian a los valores en vez de
a las variables.
• Los cálculos iterativos pueden realizarse en un espacio constante de memoria, aunque se utilice
recursividad para su cálculo
John McCarthy no solo marcó un hito en la historia los lenguajes de programación, sino que, además, creo
un modelo de programación que ha influenciado a otros lenguajes como Smalltalk, Dylan o Perl, por tanto,
sin Lisp y sin la obra de McCarthy muchas de las cosas que hoy hacemos, básicamente, nunca hubiesen
existido.
EJEMPLO SOBRE LA PLATAFORMA
Uso de LISP en [Link]:
(defun factorial (n)
(if (<= n 1)
1
(* n (factorial (- n 1)))))
(print (factorial 5)) ;
Explicación:
defun: Esta función se utiliza para definir nuevas funciones en LISP. En este caso, estamos definiendo una
función llamada factorial que toma un argumento n.
if: Este es un condicional básico en LISP. En este caso, estamos diciendo que si n es menor o igual a 1,
entonces simplemente retornamos 1.
<=: Esta es la función de comparación "menor o igual que". Estamos usando esto para comprobar si n es
menor o igual a 1.
*: Esta es la función de multiplicación en LISP. En este caso, estamos multiplicando n por el resultado de la
llamada recursiva a factorial con n-1 como argumento.
factorial: Esta es una llamada recursiva a la función factorial que acabamos de definir.