Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.