Tuesday, July 3, 2012

LISP




DESCRIPTION


Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized Polish prefixnotation. Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older (by one year). Like Fortran, Lisp has changed a great deal since its early days, and a number of dialects have existed over its history. Today, the most widely known general-purpose Lisp dialects are Common Lisp and Scheme.


It quickly became the favored programming language for Artificial Intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including Tree Data Structures, Automatic Storage Management, Dynamic Typing, and the Self-Hosting Compiler.




HISTORY



LISP was invented by John McCarthy  in 1958 at  Massachusetts Institute of Technology (MIT). 
  • McCarthy published its design in a paper in Communications of the ACM in 1960, entitled "Recursive Functions of Symbolic Expressions and Their Computation by Machine
  • Lisp was first implemented by Steve Russell on an IBM 704 computer. Russell had read McCarthy's paper, and realized (to McCarthy's surprise) that the Lisp eval function could be implemented in machine code. The result was a working Lisp interpreter which could be used to run Lisp programs, or more properly,          evaluate Lisp expressions.'
  • In 1962, the first complete LISP compiler was implemented by Tim Hart and Mike Levin at MIT.
  • in 1970s, LISP became a hard system to implement because of its compiler techniques and stock hardware. Garbage collection, developed by Daniel Edwards  made it practical to run LISP on general purpose computing system. Yet, the efficiency was sacrificed then LISP Machines were created dedicated to run LISP programs.
  • 1980s and 1990s, A great effort was done to unify the Lisp dialects into a single programming language. Common Lisp became compatible with the dialects it replaced. 
  •  In 1994, ANSI (American National Standards Institute) published the Common Lisp standard, "ANSI X3.226-1994 Information Technology Programming Language Common Lisp." 


LISP for Artificial Intelligence

Lisp WAS used in AI until the end of the 1980s. In the 80s, though, Common Lisp was oversold to the business world as the "AI language"; the backlash forced most AI programmers to C++ for a few years. These days, prototypes usually are written in a younger dynamic language (Perl, Python, Ruby, etc) and implementations of successful research is usually in C or C++ (sometimes Java).
If you're curious about the 70's...well, I wasn't there. But I think Lisp was successful in AI research for three reasons (in order of importance):
  1. Lisp is an excellent prototyping tool. It was the best for a very long time. Lisp is still great at tackling a problem you don't know how to solve yet. That description characterises AI perfectly.
  2. Lisp supports symbolic programming well. Old AI was also symbolic. It was also unique in this regard for a long time.
  3. Lisp is very powerful. The code/data distinction is weaker so it feels more extensible than other languages because your functions and macros look like the built-in stuff
(Sanders, 2008)
 

___________________________________________


what do they say about LISP?...


"LISP programmers know the value of everything 
and the cost of nothing".



"We toast the LISP programmer who pens his thoughts within nests of parentheses."



Alan Jay Perlis
American Computer Scientist, 1st recipient of the Turing Award



"I suppose I should learn LISP, but 
it seems so foreign"
-Paul Graham
Co-founder ViaWeb(eventually became Yahoo! Store)
and Y Combinator


"Those who do not know LISP are doomed to reinvent it."

 - Erik Naggum
Norwegian  Computer Programmer



___________________________________________

Some ICS Instructors and Professors say...


- Ailea Kathleen M. Garcera, ICS Instructor

Danilo J. Mercado, ICS Professor


Arian J. Jacildo, ICS Professor

___________________________________________


Some Students say...


"LISP is very complex in nature. 
As a functional programming language
it is hard for an ordinary person to understand it. But What's good about functional programming 
languages is that it is ideal for problem solving which is the 
core objective of any programmer..."


- Gilmar N. San Buenaventura, BSCS Batch '10


"LISP has many flavors that may be more suitable 
for what a modern programmer 
needs. It is suggestible to use some newer and more used flavors 
of scheme like Scheme and Common LISP...."

-Adrian Paul L. Anacay, BSCS Batch '10


"Programming LISP is like a trip in Wonderland."

- Mary Alexis O. Solis, BSCS Batch '10

"In programming LISP you have to think Mathematically and  
Out  of the common"

- Katherine Loren M. Tan, BSCS Batch '10


___________________________________________


Sample LISP Codes






















Sample program that prints "Hello World"
 
 
 


















Sample program in LISP that gets the factorial of an integer 


___________________________________________


References:

http://en.wikipedia.org/wiki/Lisp_(programming_language)
http://progopedia.com/language/lisp/
http://groups.engin.umd.umich.edu/CIS/course.des/cis400/lisp/hworld.html
http://stackoverflow.com/questions/130475/why-is-lisp-used-for-ai
http://www.gigamonkeys.com/book/introduction-why-lisp.html


Group Members:
CMSC 124 T - 4L
Solis, Mary Alexis
Tan, Katherine Loren
San Buenaventura, Gilmar
Olazo, Vianese Jasmine
Anacay, Adrian Paul

No comments:

Post a Comment