1 / 17

History of Lisp

History of Lisp. And Functional Programming Languages Scotty Smith. Overview. Lambda Calculus History of Lisp Key Features of Functional Languages Haskell Why no one uses functional languages. Lambda Calculus. Developed by Alonzo Church in the 1930’s Type Free

clint
Download Presentation

History of Lisp

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 1930’s • Type Free • Deals with recursion, higher-order functions, and currying λx.x+1 ≡ fun x => x+1

  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 • eval[e,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 (<= 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 n|n>0 = n*fac(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.

More Related