0 PROGRAMMING IN HASKELL Chapter 1 - Introduction.

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 14 Functional Programming It is better to.
Advertisements

Lecture 9: Implementation Dr Valentina Plekhanova University of Sunderland, UK.
CSE 3302 Programming Languages Chengkai Li Fall 2007 Functional Programming Language (Introduction and Scheme) Lecture 17 – Functional Programming, Spring.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 18 Program Correctness To treat programming.
13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Summary, Trends, Research...  Summary: functional, logic and object-oriented.
Chapter 15 Other Functional Languages. Copyright © 2007 Addison-Wesley. All rights reserved. Functional Languages Scheme and LISP have a simple syntax.
Programming Language Theory Leif Grönqvist The national Graduate School of Language Technology (GSLT) MSI.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering Introduction to Functional Programming Notes for CSCE 190 Based on Sebesta,
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand the structure of a C-language program. ❏ To write your first C.
Slides 00 1 Advanced Logics Part 1: Lambda Calculus and Type Theory Lecturer: Lim Yohanes Stefanus Part 2: Modal Logic Lecturer: Gregory Wheeler.
Dr. Muhammed Al-Mulhem ICS An Introduction to Functional Programming.
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.
1 CSCE Programming Languages Introduction and Course Administration Dr. Hyunyoung Lee 410B HR Bright
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)
Chapter 10 :: Functional Languages
Haskell Chapter 1, Part I. Highly Recommended  Learn you a Haskell for Great Good. Miran Lipovaca.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
0 PROGRAMMING IN HASKELL Chapter 5 – Introduction, The Hugs System, Types and Classes.
Functional Languages. Why? Referential Transparency Functions as first class objects Higher level of abstraction Potential for parallel execution.
1 Functional Programming In Text: Chapter Chapter 2: Evolution of the Major Programming Languages Outline Functional programming (FP) basics A bit.
Dr. Muhammed Al-MulhemICS Chapter 5 The Algol Family and Haskell.
CSE S. Tanimoto Lambda Calculus 1 Lambda Calculus What is the simplest functional language that is still Turing complete? Where do functional languages.
Functional Programming Languages Chapter 14
Lambda Calculus History and Syntax. History The lambda calculus is a formal system designed to investigate function definition, function application and.
0 REVIEW OF HASKELL A lightening tour in 45 minutes.
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.
Sept 2004 SDP-MSc Slide 1 Section 6 Introduction to Functional Programming.
1 Functional Programming & Standard ML Hossein Hojjat et al.
Functional Programming Universitatea Politehnica Bucuresti Adina Magda Florea
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
COP4020 Programming Languages Functional Programming Prof. Robert van Engelen.
TIVDM2Functional Programming Language Concepts 1 Concepts from Functional Programming Languages Peter Gorm Larsen.
COMP313A Functional Programming (1)
CS5205Introduction1 CS5205: Foundation in Programming Languages Lecture 0 : Overview Lecturer : Chin Wei Ngan Office : COM2.
Lee CSCE 314 TAMU 1 CSCE 314 Programming Languages Haskell 101 Dr. Hyunyoung Lee.
1-1 An Introduction to Functional Programming Sept
Lisp "List Processing". Lisp history John McCarthy developed the basics behind Lisp during the 1956 Dartmouth Summer Research Project on Artificial Intelligence.
0 PROGRAMMING IN HASKELL Chapter 4 - Defining Functions.
CSCE 314 Programming Languages
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 190 Programming Language Paradigms Fall 2014
Functional Programming Part 1. Organization of Programming Languages-Cheng Big Picture u What we’ve learned so far: Imperative Programming Languages 
Copyright © 2009 Elsevier Chapter 10 :: Functional Languages Programming Language Pragmatics Michael L. Scott.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
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.
Lambda Calculus A fairly simple system for representing functions The base of typed functional programming languages such as ML and Haskell.
C H A P T E R E I G H T Functional Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
Miranda Programming Language By Bindu H. Vinay. History of Miranda  Miranda was developed in by David Turner  It is currently being marketed.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
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 Lecture 1 - Introduction Professor Muffy Calder.
Functional Programming
Functional Programming
What is a Functional Language?
Midterm recap Total was 80 points Distribution range
A lightening tour in 45 minutes
Functional Programming
PROGRAMMING IN HASKELL
Programming Languages 2nd edition Tucker and Noonan
FP Foundations, Scheme In Text: Chapter 14.
CSE 3302 Programming Languages
PROGRAMMING IN HASKELL
CSCE 314: Programming Languages Dr. Dylan Shell
Functional Programming and Haskell
PROGRAMMING IN HASKELL
Functional Programming and Haskell
Presentation transcript:

0 PROGRAMMING IN HASKELL Chapter 1 - Introduction

1 The Software Crisis zHow can we cope with the size and complexity of modern computer programs? zHow can we reduce the time and cost of program development? zHow can we increase our confidence that the finished programs work correctly?

2 Programming Languages zAllow programs to be written clearly, concisely, and at a high-level of abstraction; zSupport reusable software components ; zEncourage the use of formal verification; One approach to the software crisis is to design new programming languages that:

zPermit rapid prototyping; zProvide powerful problem-solving tools. Functional languages provide a particularly elegant framework in which to address these goals. 3

4 What is a Functional Language? zFunctional programming is style of programming in which the basic method of computation is the application of functions to arguments; zA functional language is one that supports and encourages the functional style. Opinions differ, and it is difficult to give a precise definition, but generally speaking:

Example Summing the integers 1 to 10 in Java: total = 0; for (i = 1; i  10; ++i) total = total+i; The computation method is variable assignment. 5

Example Summing the integers 1 to 10 in Haskell: sum [1..10] The computation method is function application. 6

7 Historical Background 7

1930s: Alonzo Church develops the lambda calculus, a simple but powerful theory of functions. 8

Historical Background 1950s: John McCarthy develops Lisp, the first functional language, with some influences from the lambda calculus, but retaining variable assignments. 9

Historical Background 1960s: Peter Landin develops ISWIM, the first pure functional language, based strongly on the lambda calculus, with no assignments. 10

Historical Background 1970s: John Backus develops FP, a functional language that emphasizes higher-order functions and reasoning about programs. 11

Historical Background 1970s: Robin Milner and others develop ML, the first modern functional language, which introduced type inference and polymorphic types. 12

Historical Background 1970s s: David Turner develops a number of lazy functional languages, culminating in the Miranda system. 13

Historical Background 1987: An international committee of researchers initiates the development of Haskell, a standard lazy functional language. 14

Historical Background 2003: The committee publishes the Haskell 98 report, defining a stable version of the language. 15

A Taste of Haskell f [] = [] f (x:xs) = f ys ++ [x] ++ f zs where ys = [a | a  xs, a  x] zs = [b | b  xs, b > x] ? 16