History of Lisp - PowerPoint PPT Presentation

About This Presentation
Title:

History of Lisp

Description:

none – PowerPoint PPT presentation

Number of Views:69
Avg rating:3.0/5.0
Slides: 18
Provided by: scotty8
Learn more at: http://cs.roanoke.edu
Category:
Tags: history | lisp | roanoke

less

Transcript and Presenter's Notes

Title: History of Lisp


1
History of Lisp
  • And Functional Programming Languages
  • Scotty Smith

2
Overview
  • Lambda Calculus
  • History of Lisp
  • Key Features of Functional Languages
  • Haskell
  • Why no one uses functional languages

3
Lambda Calculus
  • Developed by Alonzo Church in the 1930s
  • Type Free
  • Deals with recursion, higher-order functions, and
    currying
  • ?x.x1 fun x gt x1

4
The Beginnings of LISP
  • John McCarthy -1956
  • Dartmouth summer research project on Artificial
    Intelligence.
  • IBM 704

5
FLPL FORTRAN List Processing Language
  • Implemented at IBM by Herbert Gelernter and Carl
    Gerberich
  • Written as an extension of FORTRAN

6
Conditional Expressions
  • Developed in 1957 1958 at MIT.
  • XIF(M,N1,N2).
  • Developed a true conditional that evaluated only
    one of its parameters.

7
Innovations Beyond FLPL
  • Recursive functions using conditional expressions
  • Maplist

8
Implementation of LISP
  • Fall of 1958
  • MIT
  • Started by hand compiling functions written in
    M-expressions
  • Prefix notation
  • Contains side effects

9
Turing Machines and LISP
  • The universal LISP function
  • evale,a
  • e The LISP expression
  • a a list of assignments of values to variables

10
The Interpreter
  • Written by S.R. Russell
  • Froze the development of the form of the language.

11
Moving On
  • Lisp 1.5
  • Insertion of elements into lists and deletion
  • Lexical scoping
  • FUNARG device
  • A compiler

12
Other contributions of LISP
  • Garbage collection

13
LISP example
  • (defun factorial (n)
  • (if (lt n 1)
  • 1
  • ( n (factorial (- n 1)))))

14
Key Features of Functional Languages
  • Higher Order functions
  • Curried functions
  • Lazy Evaluation (Non-strict Evaluation)
  • Static typing
  • Pattern Matching
  • Guards
  • fac 0 1
  • fac nngt0 nfac(n-1)

15
Haskell
  • Purely functional language
  • Attempt at a standard functional language
  • Features
  • Higher order functions
  • Lazy evaluation
  • Static polymorphic typing
  • User-defined datatypes
  • Pattern matching
  • List comprehensions
  • New to Haskell
  • I/O system
  • Overloading
  • Array comprehensions

16
Why no one uses functional languages
  • Portability/Availability
  • Training
  • Popularity

17
References
  • Hudak, P. 1989. Conception, evolution, and
    application of functional programming languages.
    ACM Comput. Surv. 21, 3 (Sep. 1989), 359-411.
    DOI http//doi.acm.org/10.1145/72551.72554
  • McCarthy, J. 1978. History of Lisp. In
    Preprints of Proceedings of ACM SIGPLAN History
    of Programming Languages Conference. SIGPLAN
    Notices, Vol. 13, pp. 217-223
  • Wadler, Phillip. Functional Programming Why no
    one uses functional languages SIGPLAN Notices
    33(8)23-27, August 1998.
Write a Comment
User Comments (0)
About PowerShow.com