05-functional-part1 - Functional Programming Big Picture...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon
1 Functional Programming Organization of Programming Languages-Cheng Big Picture What we’ve learned so far: Imperative Programming Languages Variables, binding, scoping, reference environment, etc What’s next: Functional Programming Languages Semantics of Programming Languages Control Flow Data Types Logic Programming Subroutines, Procedures: Control Abstraction Data Abstraction and Object-Orientation Organization of Programming Languages-Cheng Design of Programming Languages Design of imperative languages is based directly on the von Neumann architecture Efficiency is the primary concern, rather than the suitability of the language for software development Other designs: Functional programming languages Based on mathematical functions Logic programming languages Based on formal logic (specifically, predicate calculus)
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 Organization of Programming Languages-Cheng Design View of a Program If we ignore the details of computation (“how” of computation) and focus on the result being computed (“what” of computation) A program becomes a “black box” for obtaining output from input Program Input Output Organization of Programming Languages-Cheng Functional Programming Language Functional programming is a style of programming in which the primary method of computation is the application of functions to arguments f(x) x y Argument or variable Function Output Organization of Programming Languages-Cheng Historical Background 1940s: Alonzo Church and Haskell Curry developed the lambda calculus , a simple but powerful mathematical theory of functions. 6
Background image of page 2
3 Organization of Programming Languages-Cheng Historical Background 1960s: John McCarthy developed Lisp , the first functional language. Some influences from the lambda calculus, but still retained variable assignments. 7 Organization of Programming Languages-Cheng Historical Background 1978: John Backus publishes award winning article on FP , a functional language that emphasizes higher-order functions and calculating with programs . 8 Organization of Programming Languages-Cheng Historical Background Mid 1970s: Robin Milner develops ML , the first of the modern functional languages, which introduced type inference and polymorphic types . 9
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
4 Organization of Programming Languages-Cheng Historical Background Late 1970s - 1980s: David Turner develops a number of lazy functional languages leading up to Miranda , a commercial product. 10 Organization of Programming Languages-Cheng Historical Background 1988: A committee of prominent researchers publishes the first definition of Haskell , a standard lazy functional language. 11
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

Page1 / 17

05-functional-part1 - Functional Programming Big Picture...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online