Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Type-Directed Concurrency Deepak Garg, Frank Pfenning {dg+, Carnegie Mellon University.

Similar presentations


Presentation on theme: "1 Type-Directed Concurrency Deepak Garg, Frank Pfenning {dg+, Carnegie Mellon University."— Presentation transcript:

1 1 Type-Directed Concurrency Deepak Garg, Frank Pfenning {dg+, fp+}@cs.cmu.edu Carnegie Mellon University

2 Type-Directed Concurrency. CONCUR 20052 Design Goals Build a language starting from a logic Functional and concurrent features should arise from logical principles Write precise specifications for functions in the types –Functional reduction should be type-safe Concurrent computation should not interfere with functional type-safety

3 Type-Directed Concurrency. CONCUR 20053 Outline Design goals Computation-as-proof reduction, Computation-as-proof search, Computation-as-proof search and reduction Introduction to CLL fCLL: Functional core lCLL: Concurrent core Related Work and Conclusion

4 Type-Directed Concurrency. CONCUR 20054 Computation-as-proof reduction Curry-Howard isomorphism Strong guarantees about values computed by a program (type-safety) Captures behavior of full programs, not their interacting components Works very well for functional programs Unsuited for concurrent languages, and reactive systems in general

5 Type-Directed Concurrency. CONCUR 20055 Computation-as-proof search Logic programming languages (Prolog, …) Programs are sets of logic formulae (Rules, facts and a goal) Computation is proof-search (Proving the goal from the rules and facts) Captures dynamics of concurrent programs (FCP, Concurrent Prolog, …) Hard to capture functional features

6 Type-Directed Concurrency. CONCUR 20056 Computation-as-proof search and reduction Add proof-terms to a logic programming language Interpret proof-terms as programs Synthesize proofs-terms on the fly Alternate proof search with reduction of synthesized proof-terms Captures both concurrent and functional features!

7 Type-Directed Concurrency. CONCUR 20057 W: B?: B Example (N: A!B), (M: A) (V: A!B), (U: A) (V U): B Functional reduction, parallelism Synchronization Functional reduction Proof reduction Proof search Proof reduction FACTS GOAL

8 Type-Directed Concurrency. CONCUR 20058 Where we are … Design goals Computation-as-proof reduction, Computation-as-proof search, Computation-as-proof search and reduction Introduction to CLL fCLL: Functional core of CLL lCLL: Concurrent core of CLL Related Work and Conclusion

9 Type-Directed Concurrency. CONCUR 20059 Introduction to CLL Typed programming language Logical design –Functional features from proof reduction –Concurrent features from proof synthesis Type system based on a variant of intuitionistic linear logic

10 Type-Directed Concurrency. CONCUR 200510 What CLL is and isn’t Foundational/conceptual language –Prototype implementation –Not a full-fledged language yet Functional part: –Type-safety Concurrent part: –Preserves well-typedness of terms –No progress guarantee: Computations may deadlock

11 Type-Directed Concurrency. CONCUR 200511 CLL: Layered design Three layer design fCLL: Functional language lCLL: Concurrent + Functional language –Concurrent computation can call functional computation full-CLL: Concurrent + Functional language –Functional computation can call upon concurrent computation –Omitted from this talk

12 Type-Directed Concurrency. CONCUR 200512 Underlying Logic Intuitionistic –captures functional specifications Linear –captures concurrency in lCLL Equipped with a monad –captures effects (deadlocks) in full-CLL –used in communication First-order (dependent types) –precise functional specifications –model communication channels, process ids, etc. in lCLL

13 Type-Directed Concurrency. CONCUR 200513 Where we are … Design Goals Computation-as-proof reduction, Computation-as-proof search, Computation-as-proof search and reduction Introduction to CLL fCLL: Functional core of CLL lCLL: Concurrent core of CLL Related Work and Conclusion

14 Type-Directed Concurrency. CONCUR 200514 fCLL: Type Syntax

15 Type-Directed Concurrency. CONCUR 200515 fCLL: Program Syntax Programs (P) divided into syntactic classes

16 Type-Directed Concurrency. CONCUR 200516 fCLL: Semantics Call-by-value reduction semantics Typing judgments: Non-linear variables: Linear variables:

17 Type-Directed Concurrency. CONCUR 200517 fCLL: Type-Safety Type-preservation: If P : T and P reduces to P’, then P’ : T. Progress: If P : T, then P is a value or P reduces.

18 Type-Directed Concurrency. CONCUR 200518 Where we are … Design Goals Computation-as-proof reduction, Computation-as-proof search, Computation-as-proof search and reduction Introduction to CLL fCLL: Functional core of CLL lCLL: Concurrent core of CLL Related Work and Conclusion

19 Type-Directed Concurrency. CONCUR 200519 lCLL: Concurrent Core of CLL Computation-as-proof search and reduction Functional part: –Includes all of fCLL directly Concurrent part: –Arises from proof-synthesis –Resembles asynchronous  calculus in communication primitives CHAM presentation

20 Type-Directed Concurrency. CONCUR 200520 lCLL: Syntax fCLL values with types fCLL programs with types ReplicableLinear

21 Type-Directed Concurrency. CONCUR 200521 Type Constructs in lCLL Each construct has an intuitive meaning

22 Type-Directed Concurrency. CONCUR 200522 Interaction Example Server: Listens on channel k Computes factorials Client: Listens on channel k’ k Compute factorial(6) = 720 k’ Return 720 and terminate Objective: compute factorial(6)

23 Type-Directed Concurrency. CONCUR 200523 Modeling messages in lCLL Channels k, k’,… modeled as index terms mess int : type constructor of arity 1 ( mess int k) is the type of integer messages on channel k

24 Type-Directed Concurrency. CONCUR 200524 Server Process 1. Wait for message “ y ” on channel k 2. Extract content of y and compute its factorial 3. Send computed result on channel k’

25 Type-Directed Concurrency. CONCUR 200525 Client Process Send message 6 on channel k Wait for message “ x ” on channel k’, and return content of x Parallel composition

26 Type-Directed Concurrency. CONCUR 200526 lCLL: Semantics Type-directed rewrite semantics Three alternating rewrite phases: 1.fCLL’s functional reduction (proof-term reduction) 2.Structural decomposition 3.Synchronization (proof-term synthesis)

27 Type-Directed Concurrency. CONCUR 200527 1. Functional reduction Applies to all non-values in a configuration If P : T, then P’ : T by fCLL’s type-preservation theorem!

28 Type-Directed Concurrency. CONCUR 200528 2. Structural decomposition Resemble  -calculus structural decomposition

29 Type-Directed Concurrency. CONCUR 200529 3. Synchronization Takes several values in a configuration and links them to form a larger program Site of all communication Directed by types Three golden rules: –Applies to asynchronous types only –Applies to values only –Result must have type {S}

30 Type-Directed Concurrency. CONCUR 200530 Synchronization examples

31 Type-Directed Concurrency. CONCUR 200531 Incorrect Synchronizations Not of type {S} Not a value

32 Type-Directed Concurrency. CONCUR 200532 Why have a monad {…} Atomicity - {…} determines how far each synchronization will go

33 Type-Directed Concurrency. CONCUR 200533 Interaction Example Server: Listens on channel k Computes factorials Client: Listens on channel k’ k Compute factorial(6) = 720 k’ Return 720 and terminate Objective: compute factorial(6)

34 Type-Directed Concurrency. CONCUR 200534 Example: Execution in lCLL

35 Type-Directed Concurrency. CONCUR 200535 Example: Execution in lCLL

36 Type-Directed Concurrency. CONCUR 200536 Are the rewrite rules ad-hoc? No! Rewrite rules obtained from a proof search procedure by adding proof-terms See paper for details

37 Type-Directed Concurrency. CONCUR 200537 What does lCLL give us? A “well-typedness” preservation result: If every program in a lCLL configuration is well-typed with the type indicated, then after any number of rewrite steps, the same property still holds. Concurrent computation does not interfere with functional type-safety!

38 Type-Directed Concurrency. CONCUR 200538 What lCLL lacks … Concurrent computations in lCLL may deadlock Reason: Linear logic is not expressive enough

39 Type-Directed Concurrency. CONCUR 200539 Where we are … Design Goals Computation-as-proof reduction, Computation-as-proof search, Computation-as-proof search and reduction Introduction to CLL fCLL: Functional core of CLL lCLL: Concurrent core of CLL Related Work and Conclusion

40 Type-Directed Concurrency. CONCUR 200540 Closely Related Work Facile, CML, Concurrent Haskell, JOCaml –Combine functional and concurrent prog. Type Systems for  -calculus [Kobayashi ’03], [Igarashi, Kobayashi ’03], [Yoshida ’04], [Kobayashi, Pierce, Turner ’95], … –Properties like type-safety, deadlock freedom Computational Interpretations of Linear Logic [Abramsky ’93] –Classical linear logic and concurrency

41 Type-Directed Concurrency. CONCUR 200541 Closely Related Work MSR Framework [Cervesato ’04] –Rewriting as logical rules CLF [Cervesato, Pfenning, Walker, Watkins ’03], LolliMon [ Lopez, Pfenning, Polakow, Watkins’05] –Share the same underlying logic Lots more …

42 Type-Directed Concurrency. CONCUR 200542 Future Work A realistic implementation Challenges –Low level of concurrency in CLL –Linear functional programming –Type inference Reasoning about deadlock freedom and program correctness

43 Type-Directed Concurrency. CONCUR 200543 Conclusion CLL –Built from a logic –Functional part arises from proof reduction –Concurrent part arises from proof search –Type-safety for functional reduction Concurrency does not interfere with functional type-safety

44 Type-Directed Concurrency. CONCUR 200544 In the paper … Multi-sorted index terms Existential types –Creating channel names Encoding the asynchronous  -calculus A three phase classification of fCLL programs –Terms, expressions and monadic terms

45 Type-Directed Concurrency. CONCUR 200545 Why have a monad? Result of synchronization must have type {S} The monad {…} determines where synchronization ends

46 Type-Directed Concurrency. CONCUR 200546 Synchronization Exactly one rule

47 Type-Directed Concurrency. CONCUR 200547 A proof-search procedure on types


Download ppt "1 Type-Directed Concurrency Deepak Garg, Frank Pfenning {dg+, Carnegie Mellon University."

Similar presentations


Ads by Google