41
************************The BlitzKrieg************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Embed Size (px)

Citation preview

Page 1: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

************************The BlitzKrieg************************

Steven ChengKalin Zaluzec

Alex ArroyoJimmy Huang

Eric Wang

Page 2: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

History of Lisp

Page 3: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisps Development

The idea for Lisp started in 1956 as a language for programming Artificial Intelligence.

Originally using FORTRAN, John McCarthy created Lisp because of the inadequacies of FORTRAN for symbolic computation.

McCarthy began officially working on the List Processing language in 1958 when he worked at Massachusetts Institute of Technology.

Page 4: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisps Development cont.

McCarthy and his colleagues began by working in the assembly language to create the right environment for Lisp.

The syntax for Lisp was modeled after FORTRAN. Lisp was different from FORTRAN in that it had functions for symbolic computation.

Page 5: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisps Development cont.

The Lisp language was complete with garbage collection, conditionals, recursions, and programs were composed of trees of expressions.

Lisp was unique in that you could program features that you didn’t have in Lisp.

Page 6: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisp Development cont.

From Lisp 1.0 to 1.5 the first compiler was invented by Timothy Hart and Michael Levin. The compiler was written in the Lisp language.

The language became popular and was modified often but with very small changes.

Other languages developed from Lisp such as MacLisp, PDP-1, PDP-6, and many others.

Page 7: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisps Development cont.

Around the 1970’s the most common form of Lisp came about known as “common Lisp”.

Two hardware implementations known as “tagged architecture” as well as “microprogramming” greatly increased the speed of Lisp

Common Lisp is the successor of MacLisp

Page 8: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Survival of Lisp

Currently Lisp is considered possibly on of the most powerful programming languages compared to C.

Survival of the language was because of way it used symbolic expressions, programming features, and uniqueness of the theory behind it.

The language is still being used today mostly in Artificial Intelligence and other computer types of research.

Page 9: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

JOHN MCCARTHY THE INVENTOR OF LISP

•Sept 4, 1927 – Oct 24, 2011•Boston, Massachusetts•Graduate from : •Belmont High School•Cal Tech University•Professor at Stanford University

Page 10: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisp

Lisp = LISt Processing Lisp criteria from John McCarthy

view: computing with symbolic expressions

rather than numbers representation of symbolic expressions

and other information by list structure in the memory of a computer

a small set of selector and constructor operations expressed as functions

Page 11: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang
Page 12: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lambda calculus

describes a formal system which focuses on the computability of functions of recursive type

Recursive functions  are procedure or subroutine, implemented in a programming language

The λ-calculus provides simple semantics for computation, enabling properties of computation to be studied formally.

Page 13: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lambda calculus

0 := λf.λx.x1 := λf.λx.f x2 := λf.λx.f (f x)3 :=λf.λx.f (f (f x))

0 := λfx.x1 := λfx.f x2 := λfx.f (f x)3 := λfx.f (f (f x))

Alonzo Church lambda calculus

John McCarthy LISP lambda calculus

I(x) = xIdentity function

anonymous form as x ↦ x

sqsum(x, y) = x*x + y*yx ↦ (y ↦ x*x + y*y)

Square – sum function

Page 14: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Accomplishments by McCarthy Garbage collection to solve problems in

Lisp motivate the creation of Project MAC At Stanford wrote a computer program

used to play a series of chess games with counterparts in the Soviet Union

Developed early form of time sharing known as servers

Set up Stanford Artificial Intelligence Laboratory

Page 15: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

•Turning Award from association for computing machinery in 1971•Kyoto Prize 1988 •National Medal of Science in Mathematics, Statistical, and Computational Science in 1990•Benjamin Franklin Medal •Recognized in computer history museum 1999•iEEE Intelligent Systems AI’s Hall of Fame 2011

Awards

Page 16: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

DESIGN CRITERIA&CREATION RATIONAL

Page 17: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisp Machines

Lisp was a difficult system to use with the stock hardware and compiler techniques of the 1970s.

The garbage collection feature made it practical to run on a general-purpose computer, however it still wasn’t as efficient as desired.

The Lisp machine was the solution to the problem. It was a machine that was designed to develop and run AI programs in conjunction with the Lisp language.

Page 18: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisp Machines cont.

In 1973, Thomas Knight and Richard Greenblatt would make the first Lisp Machine.

The first Lisp Machine named CONS after the list construction operator in Lisp.

About 25 prototypes of the second Lisp Machine, CADR, were made and sold for high prices.

At a conference at MIT in 1978, DARPA would take interest and begin to fund the machine’s development.

Page 19: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisp Machines cont.

Russell Noftsker & Richard Greenblatt would soon join to form a company to maximize the profits of the Lisp language and machine.

Not long after joining, would opinions clash and the company would be split in two.

The two each had their own companies and became giants of the Lisp machine business Greenblatt had Lisp Machines Inc. (LMI) Noftsker had Symbolics

Page 20: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

End of Lisp Machines

With the “PC revolution”, cheaper desktops became available that had the capacity to run Lisp even faster than the Lisp machines.

Almost every company that made the Lisp machines went bankrupt. Only one company, Symbolics, still sells Lisp machines.

Page 21: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Design Rationale

John McCarthy said he would study the relation of language to intelligence by comparing natural and logical languages.

He wanted to make a language that had statements and arguments that correspond to English.

“It therefore seems to be desirable to attempt to construct an artificial language which a computer can be programmed to use on problems and self-reference” – John McCarthy

Page 22: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

The Language of Lisp

Lisp is a very flexible language and indefinitely extensible.

It strives to be compatible with most programs. It no longer needs a computer with specific characteristics to run smoothly.

Over time it has developed into various different languages. A well-known version of Lisp is Common Lisp.

Page 23: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Common Lisp

The power of Common Lisp lies in the small barrier between the data and the user created terms.

It has a compiler that can produce code for numerical computations at a very high speed.

User-level packages are built on top of, rather than into the Common Lisp core as it was previously.

Page 24: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

FEATURES & PROS / CONS

Page 25: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Format

Formatted in the Polish Cambridge Notation Traditional: 5+3 Polish Cambridge: (+ 5 3)

Completely eliminates order of operations

Many programmers are deterred from this language because of the odd format

Page 26: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Syntax

Very simple compared to other computer languages

Makes error checking easy due to the simple coding structure

*Lisp Works Compiler

Page 27: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Stability

One of the oldest languages It was released shortly after Fortran was created

Not currently being developed Programs will not stop working after a new

version of the language is released

Page 28: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Ability to handle large numbers Because of the unique way Lisp deals

with functions, it can compute the exact answers to extremely large numbers that no other computer languages can do

Other computer languages provide approximations rather than exact answers, and have a limit to how large numbers can become.

Page 29: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Dynamic programming language Most programming languages force

the user to adapt their code in order to fit the capabilities of the language

Lisp allows the user to change the language in order to fit the needs of the code Some see this as a disadvantage

because it can make a person’s code impossible to decipher

Page 30: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Usage

Lisp is not a very commonly used language today

People prefer not to deal with the odd syntax of Lisp

Many employers do not permit their programmers to work in Lisp because it is hard to read for anyone except the person who programmed it

Page 31: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

5 Applications of Lisp

Page 32: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Artificial Intelligence

The most popular application of Lisp is used in AI or Artificial Intelligence.

One aspect of Lisp that makes it extremely useful in artificial intelligence is that Lisp is very supportive of symbols and reads them well.

In the 1980’s, artificial intelligence was mostly symbolic thus making Lisp very beneficial to programmers at the time.

Page 33: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Artificial Intelligence cont.

The ability to read symbolic expressions and solve long, difficult problems made Lisp a unique prototyping tool to artificial intelligence.

These abilities also made Lisp a really flexible tool which made it popular in defining data in artificial intelligence applications.

Page 34: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Lisp Machines

Lisp machines, machines that basically used Lisp, carried features that made it prominent in the 80’s.

These features included the “stack cache”, garbage collection support, and instruction emulation.

The application of Lisp machines is based on stacks and the stack cache allows it to cache different elements of the stack and compile it together.

The garbage collection support allows for Lisp machines to manage what is being used and what is not being used in software.

Instruction emulation supports Lisp machines whenever it comes across an instance where it cannot process the instruction any further and thus an emulator is created in order to continue the instructions.

Page 35: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Airline Systems

The application of Lisp can be found in airline systems.

In 1996, MIT graduate Jeremy Wertheimer founded the ITA software.

The ITA software allowed for Wertheimer to use Lisp to come up with algorithms needed for airline systems.

Page 36: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Airline Systems cont.

The most important part of this whole thing is that with Lisp’s flexibility it made the system maintenance less expensive.

With this new system, airline pricing and scheduling became much quicker because of the algorithms created from Lisp.

Eventually the development of this ITA software with Lisp became popular and companies like Orbitz began using this application.

Page 37: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Language Analysis

The fourth application of Lisp is in language analysis.

Language may not seem like something where you would need to use Lisp in, but actually Lisp is pretty helpful in terms of what it can do to help certain systems involving human language.

A research facility known as Sony C.S.L. applies Lisp in their research of language and its origins.

Page 38: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Language Analysis cont.

Sony CSL had an application for language analysis and because many symbols were involved, Lisp was clearly the best tool to use in this case.

As mentioned before Lisp works well with difficult symbols and symbolic expressions, and in this language analysis application, it definitely proved to be helpful.

In turn, by using Lisp, Sony CSL was able to make their jobs easier by revising certain aspects about the origins of human language.

Page 39: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Naughty Dog software

The application of Lisp into video games was definitely groundbreaking.

A game development company known as Naughty Dog software incorporated Lisp into one of their well known video game, which is none other than Crash Bandicoot.

The founder of Naughty Dog software, Andy Gavin, noted that Lisp was the most suitable tool to use when creating these games.

Page 40: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

Naughty Dog cont.

Lisp was primarily used in these games because both games incorporated 3D characters and objects and Lisp was the right program for the job.

Lisp allowed for the development of these features of the game to be quick and reliable.

Programmers wanted the game to have an interactive feel and with the capabilities of Lisp, they were able to achieve it with the characters and actions.

The capabilities of Lisp made it more suitable to deal with such actions and movements in the game, other languages like C, did not work well in these cases.

Page 41: ************************ The BlitzKrieg ************************ Steven Cheng Kalin Zaluzec Alex Arroyo Jimmy Huang Eric Wang

L I S P