Lambda Calculus A fairly simple system for representing functions The base of typed functional programming languages such as ML and Haskell.

Slides:



Advertisements
Similar presentations
The Turing Machine A definition of computability by Noah Richards.
Advertisements

1 Scheme and Functional Programming Aaron Bloomfield CS 415 Fall 2005.
Proofs and Programs Wei Hu 11/01/2007. Outline  Motivation  Theory  Lambda calculus  Curry-Howard Isomorphism  Dependent types  Practice  Coq Wei.
School of Engineering & Technology Computer Architecture Pipeline.
Elements of Lambda Calculus Functional Programming Academic Year Alessandro Cimatti
INF 212 ANALYSIS OF PROG. LANGS LAMBDA CALCULUS Instructors: Crista Lopes Copyright © Instructors.
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
6. Introduction to the Lambda Calculus. © O. Nierstrasz PS — Introduction to the Lambda Calculus 6.2 Roadmap  What is Computability? — Church’s Thesis.
1 Scheme Scheme is a functional language. Scheme is based on lambda calculus. lambda abstraction = function definition In Scheme, a function is defined.
0 PROGRAMMING IN HASKELL Chapter 1 - Introduction.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
Comp 205: Comparative Programming Languages Semantics of Functional Languages Term- and Graph-Rewriting The λ-calculus Lecture notes, exercises, etc.,
Programming Language Theory Leif Grönqvist The national Graduate School of Language Technology (GSLT) MSI.
Dr. Muhammed Al-Mulhem ICS An Introduction to Functional Programming.
David Evans CS200: Computer Science University of Virginia Computer Science Class 31: Universal Turing Machines.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
0 PROGRAMMING IN HASKELL An Introduction Based on lecture notes by Graham Hutton The book “Learn You a Haskell for Great Good” (and a few other sources)
1 Extended Introduction to Computer Science 2 Administration סגל הקורס: –מרצים: ד"ר דניאל דויטש, איל כהן –מתרגלת:לבנת ג'רבי –בודק: ינון פלד Book: Structure.
Lambda Calculus And its graphic representation. Brief Explanation of LC  What:  A series of expressions, constants, and variables written in prefix.
Functional Languages. Why? Referential Transparency Functions as first class objects Higher level of abstraction Potential for parallel execution.
Functional Programming in Scheme
1 Functional Programming In Text: Chapter Chapter 2: Evolution of the Major Programming Languages Outline Functional programming (FP) basics A bit.
CSE S. Tanimoto Lambda Calculus 1 Lambda Calculus What is the simplest functional language that is still Turing complete? Where do functional languages.
Lambda Calculus History and Syntax. History The lambda calculus is a formal system designed to investigate function definition, function application and.
1 Concepts of Programming Languages TK 327, Fall 2015 MW 2:00 PM – 3:15 PM STV 104 Instructor:Dr. Chung-Chih Li Home page of the Class.
1 COMP313A Functional Programming (1). 2 Main Differences with Imperative Languages Say more about what is computed as opposed to how Pure functional.
1 Programming Languages and Paradigms Functional Programming.
Fixed Point Illustrations. Simple Examples f : int -> int f(n) = 5 n = 5 is a unique fixed point. f(n) = n^2 – 2 n = 2 and n = -1 are both fixed points.
Chapter Fifteen: Functional Programming Languages Lesson 12.
© Kenneth C. Louden, Chapter 11 - Functional Programming, Part III: Theory Programming Languages: Principles and Practice, 2nd Ed. Kenneth C. Louden.
Overview.  Explores the theoretical foundations of computing  What can and cannot be done by an algorithm  Most of the material predates computers!
TIVDM2Functional Programming Language Concepts 1 Concepts from Functional Programming Languages Peter Gorm Larsen.
COMP313A Functional Programming (1)
Principles of programming languages 9: Lambda calculus Isao Sasano Department of Information Science and Engineering.
Logical and Functional Programming
1-1 An Introduction to Functional Programming Sept
Lambda Calculus CSE 340 – Principles of Programming Languages Fall 2015 Adam Doupé Arizona State University
Λ-Calculus & Intuitionistic Logic Project Aims Cartesian Closed Categories Correspondence between CCC & λ unit, →, × 1© CHUANGJIE XU 2010.
Dr. Philip Cannata 1 Simple Lisp John McCarthy Alonzo Church David Hilbert, Jules Richard, G. G. Berry, Georg Cantor, Bertrand Russell, Kurt Gödel, Alan.
School of Computing and Engineering, University of Huddersfield CHA2545: WEEK 14 – SEMANTICS EXAMPLE LECTURE: SIMPLE EXAMPLE OF SEMANTICS DEFINITION TUTORIAL/PRACTICAL:
Lisp "List Processing". Lisp history John McCarthy developed the basics behind Lisp during the 1956 Dartmouth Summer Research Project on Artificial Intelligence.
SWE 4743 Abstraction Richard Gesick. CSE Abstraction the mechanism and practice of abstraction reduces and factors out details so that one can.
By: Nelson Webster. Algorithm Engineers Algorithm engineers study the effectiveness and efficiency of procedures of solving problems on a computer.
From Lambda Calculus to LISP Functional Programming Academic Year Alessandro Cimatti
Alonzo Church: Mathematician. Philosopher. Computer Scientist? Who is Alonzo Church? Alonzo Church was a man who was very important to the computer science.
Haskell Introduction CSCE 314 Spring CSCE 314 – Programming Studio Historical Background 1930s: Alonzo Church develops the lambda calculus, a simple.
Erik Meijer FP101x - Functional Programming Programming in Haskell - Introduction.
C H A P T E R E I G H T Functional Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
1 PROGRAMMING IN HASKELL An Introduction Based on lecture notes by Graham Hutton The book “Learn You a Haskell for Great Good” (and a few other sources)
Functional Programming
Functional Programming
© T Madas.
What is a Functional Language?
CS 550 Programming Languages Jeremy Johnson
Midterm recap Total was 80 points Distribution range
CS 3304 Comparative Languages
Unit – 3 :LAMBDA CALCULUS AND FUNCTIONAL PROGRAMMING
Lambda Calculus CSE 340 – Principles of Programming Languages
Functional Programming
CS 320 Principles of Programming Languages
Functional Programming in a Nutshell with Haskell and F#
Procedural versus Functional Programming
Square Root.
PROGRAMMING IN HASKELL
L Calculus.
CSE S. Tanimoto Lambda Calculus
Functional Programming and Haskell
Lambda Expressions Cases
Functional Programming and Haskell
Presentation transcript:

Lambda Calculus A fairly simple system for representing functions The base of typed functional programming languages such as ML and Haskell

The theory of lambda calculus was developed by Alonzo Church as a foundation for mathematics in 1930s, years before computers were invented. In 1920s Moses Schonfinkel developed a theory of functions called combinators. In the 1930s Haskell Curry rediscovered Schonfinkel’s theory and showed that it was equivalent to lambda calculus In the 1950s John McCarthy inspired by the lambda calculus invented the programming language Lisp.

During the 1970’s Henderson and Morris wrote some influentional papers discussing the advantages of functional programming for software engineering. In the 1980s several groups started working on architectures to support functional programming.

Example Squaring function in lambda calculus λx.x*x λx means that we take a value x and the rest of the definition says that we multiply x by itself. The λ is called lambda abstraction.

Lambda has one parameter. If we wanted to take two numbers, double the first and add it to the second we would write λx λy.2*x+y