Written by Sergio Sancho Azcoitia, Security Researcher for ElevenPaths
Today we kick off a new series that will consist in two articles in which we will briefly introduce you to Lisp. We are going to look at its origins and history and then we will teach you how to create a small neural network for yourself using this programming language.
Since the 50’s, functional programming has been increasingly used in the field of artificial intelligence, and this owes a lot to the emergence of Lisp. This “high-level” language was created by John McCarthy, now seen by many as the father of Artificial Intelligence. His idea was to optimize the functioning and use of the resources that the computers of the era had available, and List Processor (Lisp) was born as a result.
This new language, based in part on the already-existing Fortran, used some innovative technique such as data “trees” (a hierarchical data structure), or the use of “symbolic computation” (also known as “computer algebra”), out of which symbolic programming would later been born. As mentioned before, functional programming had its beginnings in the 50’s, more or less at the same time as Lisp. This new programming style was the one that the IBM 700/7000 series computers were based upon.
The way Lisp functions is largely based upon lambda calculus, which is a universal computational model that can be used to simulate any Turing machine. Its name, due to the Greek letter lambda, is used to refer to linking one variable to a function. This type of calculus is surprisingly simple and powerful. Its core foundation is two simple fundamentals: the abstraction of functions (which serves to generalize expressions by introducing variables) and applying a function (used to evaluate an expression by given names to given values).
Lisp didn’t take long before it became the favorite language of the world of Artificial Intelligence. At MIT, for example, it regularly became used in research projects. Unlike other languages, its mathematical base allowed it to solve operations and to test theorems.
Throughout history, many of the most revolutionary languages and programs in the field of Artificial Intelligence have been based on Lisp. In fact, regularly used terms such as If, Else and Then were invested by John McCarthy.
Despite the terms mentioned previously, Lisp uses a different structure of other programming languages, notably in what the mathematical algorithms refer to. However, it is not a complicated language to learn.
To finish this first article, we will briefly explain how a small neural network works. Neural networks are based on a series of small nodes (artificial neurons) that are connected to each other in a series of layers. It attempts to simulate the behavior of a human brain when it solves a problem. As the entry signal moves through the layers, it will go one way or the other based on a number of established parameters until a result is reached. Neural networks have been used over the years to carry out various tasks such as voice recognition and creating expert systems. This technology marked a change in the course of artificial intelligence in the 80’s.