Presentation is loading. Please wait.

Presentation is loading. Please wait.

U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Multilisp: Concurrent Functional Programming Ed Walters and Tim Richards University.

Similar presentations


Presentation on theme: "U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Multilisp: Concurrent Functional Programming Ed Walters and Tim Richards University."— Presentation transcript:

1 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Multilisp: Concurrent Functional Programming Ed Walters and Tim Richards University of Massachusetts Amherst

2 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 2 Overview What is Multilisp? Overview of Scheme Features of Multilisp Where is Multilisp Now?

3 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 3 Overview What is Multilisp? Overview of Scheme Features of Multilisp Where is Multilisp Now?

4 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 4 What is Multilisp? Dialect of Scheme language Functional Programming Limited Side-effects Garbage Collection Extensions for Concurrency Parallel Function Application Futures Reference: R. Halstead, TOPLAS, Vol. 7, No. 4, 1985.

5 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 5 Goal of Multilisp Explicit Constructs for Concurrency Adhere to Scheme Philosophy No Additional Syntax Minimal Additional Semantics Maximum Flexibility Granularity Backwards-compatibility

6 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 6 Overview What is Multilisp? Overview of Scheme Features of Multilisp Where is Multilisp Now?

7 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 7 The Scheme Language Descendent of Lisp (LISt Processing) Created by Steele and Sussman (1975) Important Features: Extended Lambda Calculus Lexical Scoping Functions are first-class

8 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 8 Important Terms Expression: Basic unit of Scheme code (e.g., List or integer) Evaluation: Scheme expressions evaluate to a value upon execution Application: Function call on a list, i.e. apply first element to rest of list (f a b c) => f(a, b, c)

9 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 9 Brief Scheme Syntax Function definition (define f (lambda (x) … )) Function application (f x) Conditionals (if x y z) Symbols and Atomic Elements ‘x, 3

10 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 10 Scheme Example: Fib (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (fib (- x 1)) (fib (- x 2))))))) (fib 10) => 89

11 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 11 Scheme Example: Fib (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (fib (- x 1)) (fib (- x 2))))))) (fib 10) => 89

12 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 12 Scheme Example: Fib (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (fib (- x 1)) (fib (- x 2))))))) (fib 10) => 89

13 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 13 Scheme Example: Fib (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (fib (- x 1)) (fib (- x 2))))))) (fib 10) => 89

14 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 14 Scheme Example: Fib (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (fib (- x 1)) (fib (- x 2))))))) (fib 10) => 89

15 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 15 Scheme Example: Fib (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (fib (- x 1)) (fib (- x 2))))))) (fib 10) => 89

16 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 16 Scheme Example: Fib (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (fib (- x 1)) (fib (- x 2))))))) (fib 10) => 89

17 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 17 Overview What is Multilisp? Overview of Scheme Features of Multilisp Where is Multilisp Now?

18 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 18 Parallel Calls pcall : Parallel function application Syntax: (pcall F A B C) Semantics: Evaluate F, A, B, C in parallel Apply F to A, B, C (F A B C)

19 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 19 Parallel Calls: Example (define div-and-conq (lambda (x) (if (base-case x) x (pcall combine-results (div-and-conq (- x 1)) (div-and-conq (- x 5))))))

20 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 20 Parallel Calls: Example (define div-and-conq (lambda (x) (if (base-case x) x (pcall combine-results (div-and-conq (- x 1)) (div-and-conq (- x 5))))))

21 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 21 Parallel Calls: Example (define div-and-conq (lambda (x) (if (base-case x) x (pcall combine-results (div-and-conq (- x 1)) (div-and-conq (- x 5))))))

22 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 22 Parallel Calls: Example (define div-and-conq (lambda (x) (if (base-case x) x (pcall combine-results (div-and-conq (- x 1)) (div-and-conq (- x 5))))))

23 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 23 Parallel Calls: Example (define div-and-conq (lambda (x) (if (base-case x) x (pcall combine-results (div-and-conq (- x 1)) (div-and-conq (- x 5))))))

24 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 24 Futures future: contract to deliver parallel computation Syntax: (future ) Semantics: Evaluate concurrently with calling program Return reference to future immediately Block if value of is required

25 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 25 Futures: Example (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (future (fib (- x 1))) (future (fib (- x 2)))) )))) (fib 10) => 89

26 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 26 Futures: Example (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (future (fib (- x 1))) (future (fib (- x 2)))) )))) (fib 10) => 89

27 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 27 Futures: Example (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (future (fib (- x 1))) (future (fib (- x 2)))) )))) (fib 10) => 89

28 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 28 Futures: Example (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (future (fib (- x 1))) (future (fib (- x 2)))) )))) (fib 10) => 89

29 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 29 Futures: Example (define fib (lambda (x) (if (= x 1) 1 (if (= x 2) 2 (+ (future (fib (- x 1))) (future (fib (- x 2)))) )))) (fib 10) => 89

30 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 30 More Details pcall can be implemented using future Facilitates multiple concurrent programming paradigms: Cilk-style Message Passing Futures somewhat resemble Lazy Evaluation Evaluation delayed but guaranteed No infinite data structures

31 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 31 Implementation Notes Each future / pcall element is a thread pcall fork/join parallelism future asynchronous thread block on read

32 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 32 Overview What is Multilisp? Overview of Scheme Features of Multilisp Where is Multilisp Now?

33 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 33 Where is Multilisp Now? No current Scheme compilers implement futures We had to implement our own interpreter! However: THEY LIVE on in Java! Transparent Proxies for Java Futures, Pratikakis, Spacco, and Hicks, OOPSLA 2004. Safe Futures for Java, Welc, Jagannathan, and Hosking, OOPSLA 2005.

34 U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science 34 Conclusion Like much of the Scheme World: Elegant, Flexible Solution Deader than a Doornail Not Java


Download ppt "U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Multilisp: Concurrent Functional Programming Ed Walters and Tim Richards University."

Similar presentations


Ads by Google