Friday, February 3, 2017

LISP - Quick Guide

LISP - Overview

John McCarthy invented LISP in 1958, shortly after the development of FORTRAN. It was first implement by Steve Russell on an IBM 704 computer.
It is particularly suitable for Artificial Intelligence programs, as it processes symbolic information effectively.

Common Lisp originated, during the 1980s and 1990s, in an attempt to unify the work of several implementation groups, which were successors to Maclisp like ZetaLisp and NIL (New Implementation of Lisp) etc.
It serves as a common language, which can be easily extended for specific implementation.
Programs written in Common LISP do not depend on machine-specific characteristics, such as word length etc.

Features of Common LISP

  • It is machine-independent
  • It uses iterative design methodology, and easy extensibility.
  • It allows updating the programs dynamically.
  • It provides high level debugging.
  • It provides advanced object-oriented programming.
  • It provides convenient macro system.
  • It provides wide-ranging data types like, objects, structures, lists, vectors, adjustable arrays, hash-tables, and symbols.
  • It is expression-based.
  • It provides an object-oriented condition system.
  • It provides complete I/O library.
  • It provides extensive control structures.

Applications Built in LISP

Large successful applications built in Lisp.
  • Emacs
  • G2
  • AutoCad
  • Igor Engraver
  • Yahoo Store

LISP - Environment

CLISP is the GNU Common LISP multi-architechtural compiler used for setting up LISP in Windows. The windows version emulates a unix environment using MingW under windows. The installer takes care of this and automatically adds clisp to the windows PATH variable.
You can get the latest CLISP for Windows from here - http://sourceforge.net/projects/clisp/files/latest/download
List Environment Setup It creates a shortcut in the Start Menu by default, for the line-by-line interpreter.

How to use CLISP

During installation, clisp is automatically added to your PATH variable if you select the option (RECOMMENDED) This means that you can simply open a new Command Prompt window and type “clisp” to bring up the compiler.
To run a *.lisp or *.lsp file, simply use -
clisp hello.lisp

LISP - Program Structure

LISP expressions are called symbolic expressions or s-expressions. The s-expressions are composed of three valid objects, atoms, lists and strings.
Any s-expression is a valid program.
LISP programs run either on an interpreter or as compiled code.
The interpreter checks the source code in a repeated loop, which is also called the read-evaluate-print loop (REPL). It reads the program code, evaluates it, and prints the values returned by the program.

A Simple Program

Let us write an s-expression to find the sum of three numbers 7, 9 and 11. To do this, we can type at the interpreter prompt.
(+ 7 9 11)
LISP returns the result:
27
If you would like to run the same program as a compiled code, then create a LISP source code file named myprog.lisp and type the following code in it.
(write (+ 7 9 11))

When you click the Execute button, or type Ctrl+E, LISP executes it immediately and the result returned is:
27

LISP Uses Prefix Notation

You might have noted that LISP uses prefix notation.
In the above program the + symbol works as the function name for the process of summation of the numbers.
In prefix notation, operators are written before their operands. For example, the expression,
a * ( b + c ) / d
will be written as:
(/ (* a (+ b c) ) d)
Let us take another example, let us write code for converting Fahrenheit temp of 60o F to the centigrade scale:
The mathematical expression for this conversion will be:
(60 * 9 / 5) + 32
Create a source code file named main.lisp and type the following code in it.
(write(+ (* (/ 9 5) 60) 32))

When you click the Execute button, or type Ctrl+E, MATLAB executes it immediately and the result returned is:
140

No comments:

Post a Comment