Continuations, Processes, and Sharing. Paul Downen, Luke Maurer, Zena M. Ariola, Daniele Varacca. September 8, 2014
|
|
- Carol Hampton
- 5 years ago
- Views:
Transcription
1 Continuations, Processes, and Sharing Paul Downen, Luke Maurer, Zena M. Ariola, Daniele Varacca University of Oregon, Université Paris Diderot September 8, 2014
2 The plethora of semantic artifacts Many ways to understand programming languages: small-step semantics big-step semantics (natural semantics) abstract machines continuation-passing style transformations... Different tools; different views High-level reasoning Low-level reasoning Proof development
3 Getting along together Q But which one to choose?
4 Getting along together Q But which one to choose? A All of them!
5 Getting along together Q But which one to choose? A All of them! Q But how do we know that they agree?
6 Getting along together Q But which one to choose? A All of them! Q But how do we know that they agree? A Systematic inter-derivation; correct by construction (Danvy et al.)
7 Processes as a semantic tool Embedding into processes (π-calculus) Computation as communication Strong resemblance to continuation-passing
8 Processes as a semantic tool Embedding into processes (π-calculus) Computation as communication Strong resemblance to continuation-passing
9 What do processes have to offer? Some computations more direct in π- than λ-calculus Concurrency Non-determinism Change over time Simple story for memoization Reveals techniques in implementations of lazy languages Black holes in GHC
10 From continuations to processes
11 Example: function composition Transform the function composition into a process f (g 1)
12 Result-named style Name intermediate results of serious computations: f (g 1) goes to let y = g 1 in f y
13 Continuation-passing style Rewrite into continuations: let y = g 1 in f y goes to g(1, (λy. f (y, ret)))
14 Value-named style Name all serious values: g(1, (λy. f (y, ret))) goes to let k = λy. f (y, ret) in g(1, k)
15 Environment-based CPS Rewrite into explicit environment: let k = λy. f (y, ret) in g(1, k) goes to νk. k := λy. f (y, ret) in g(1, k)
16 Process encoding Rewrite into processes: νk. k := λy. f (y, ret) in g(1, k) goes to νk (!k(y). f y, ret g 1, k )
17 Uniform CPS transform (CBN and CBV) C x λk. x k C λx. M λk. k (λ(x, k ). C M k ) Call-by-name C MN λk. C M (λv. v (λk. C N k, k)) Call-by-value C MN λk. C M (λv. C N (λw. v (λk. k w, k)))
18 Uniform CPS to Uniform π-encoding C x k = x k N C x k = x k P N C x k = x k C λx. M k = k (λ(x, k ). C M k ) N C λx. M k = νf. f := λ(x, k ). N C M k in k f P N C λx. M k = νf (!f (x, k ). P N C M k k f )...
19 Interlude: Of variables and values
20 A mismatch Soundness: steps in source are steps in target (λx. λy. y)z = λy. y This is invalid by CBV transform of application: C (λx. λy. y)z = λk. z (λw. C λy. y k) C λy. y
21 Variables are not values C x λk. x k In CBN we need to execute a computation In CBV we need to lookup or fetch the value Plotkin CBV Restricted CBV Values: V ::= x λx. M V ::= λx. M Evaluation Contexts: E ::= [ ] EM VE E ::= [ ] EM VE (λx. M)V = M{V /x} (β v )
22 Correctness bisimulation
23 Criteria for correctness A transformation should preserve observable results of a program: Termination: the program reaches an answer Divergence: the program loops forever Getting stuck: the program cannot proceed
24 How the proof should go T preserves immediate results If M is an answer then T M is an answer... T preserves reduction M T M N T N
25 How the proof actually goes T preserves immediate results If M is an answer then T M reaches an answer... T preserves reduction M T M N T N
26 How the proof actually goes T preserves immediate results If M is an answer then T M reaches an answer... T preserves reduction? M N T M T N P
27 How the proof actually goes T preserves immediate results If M is an answer then T M reaches an answer... T preserves reduction??? M T M N T N? Q
28 Out-of-synch computations: administration Source: (λx. x)(λy. y) λy. y Target: C (λx. x)(λy. y) ret ret (λ(y, k). (λk. y k ) k) C λy. y ret ret (λ(y, k). (λk. y k ) k)
29 Out-of-synch computations: aliasing Source: (λf. g(f, f ))(λx. x) g((λx. x), (λx. x)) Target: N (λf. g(f, f ))(λx. x) = νi. i := λx. x in (λf. g(f, f )) i νi. i := λx. x in g(i, i) N g((λx. x), (λx. x)) = νi. i := λx. x in νj. j := λx. x in g(i, j)
30 Reasoning up to out-of-synch administration Define an administrative free transform (Danvy and Nielsen TCS 2003) M N T M P ad T N Q ad
31 Reasoning up to out-of-synch administration Reason up to bisimulation M N P Q M P iff T M ret ad P
32 Reasoning up to out-of-synch aliasing Reason up to bisimulation M N P Q M P iff M N 1 P
33 Bisimulation technique Start out similar Keep being similar M T M M N M N P Q P Q End up similar M M N P Q Q
34 One direction suffices The forward direction sufficient if (Leroy): The source language is deterministic; No infinite loop in source terminates in target Dichotomy of source reductions (Danvy and Zerny, PPDP 13) guarantees point 2: Proper reduction must cause work in target Administrative reduction must terminate
35 Sharing
36 Call-by-need evaluation let x = in x x
37 Call-by-need evaluation let x = in x x
38 Call-by-need evaluation let x = in x x
39 Call-by-need evaluation let x = in x x 7 let x = 3 in x x
40 Call-by-need evaluation let x = in x x let x = 3 in x x let x = 3 in 3 x
41 Call-by-need evaluation let x = in x x 7 let x = 3 in x x 7 let x = 3 in 3 x
42 Call-by-need evaluation let x = in x x 7 let x = 3 in x x 7 let x = 3 in 3 x
43 Call-by-need evaluation let x = in x x let x = 3 in x x let x = 3 in 3 x let x = 3 in 3 3
44 Call-by-need evaluation let x = in x x 7 let x = 3 in x x 7 let x = 3 in 3 x 7 let x = 3 in 3 3
45 Call-by-need evaluation let x = in x x let x = 3 in x x let x = 3 in 3 x let x = 3 in 3 3 let x = 3 in 9
46 Call-by-need and stateful CPS Okasaki call-by-need CPS using assignment C x λk. x k C λx. M λk. k (λ(x, k ). C M k ) C MN λk. C M (λv. νx. x := memo x (N) in v(x, k)) memo x (N) λk. C N (λw. x := (λk. k w) in k w)
47 On liveness of variables I First evaluate M, with N assigned to x let x = N in M I When x is forced, evaluate N and x is no longer in scope let x = N in E [x] I When N becomes V, continue in body with V assigned to x let x = V in E [V ]
48 Constructive update Initial binding is ephemeral, disappears on lookup νf. f := 1 memo f (N) in f k νf. memo f (N)k Updated binding is permanent, always available and can never be changed νf. f := V in f k νf. f := V in V k
49 Call-by-need and constructive update CPS Thunking protocol strictly enforced (thunks only evaluated once): C x λk. x k C λx. M λk. k (λ(x, k ). C M k ) C MN λk. C M (λv. νx. x := 1 memo x (N) in v(x, k)) memo x (N) λk. C N (λw. x := (λk. k w) in k w)
50 Constructive update in the π-calculus Permanent assignment: replicated server P x := λy. M in N =!x(y). P M P N Ephemeral assignment: unreplicated server P x := 1 λy. M in N = x(y). P M P N Processes can now responsively change their behavior
51 Constructive update in machines Suspended computations removed on retrieval (Sestoft) Thunks become dead when forced Black holes in GHC Practical implementation techniques reflected by theory
52 Conclusions Program transformation from CPS to processes Unite CBN and CBV with CBNeed Constructive update model of memoization CPS λ-calculus for change over time
53 Conclusions Program transformation from CPS to processes Unite CBN and CBV with CBNeed Constructive update model of memoization CPS λ-calculus for change over time Reminder: Decisions have consequences; live with them
54 Questions?
Lazy Functions as Processes
Lazy Functions as Processes Luke Maurer University of Oregon maurerl@cs.uoregon.edu Abstract CPS transforms have long been important tools in the study of programming languages, especially those related
More informationDiagrams for Meaning Preservation
Diagrams for Meaning Preservation 2003-06-13 Joe Wells Detlef Plump Fairouz Kamareddine Heriot-Watt University University of York www.cee.hw.ac.uk/ultra www.cs.york.ac.uk/ det Diagrams for Meaning Preservation
More informationCS 4110 Programming Languages & Logics. Lecture 16 Programming in the λ-calculus
CS 4110 Programming Languages & Logics Lecture 16 Programming in the λ-calculus 30 September 2016 Review: Church Booleans 2 We can encode TRUE, FALSE, and IF, as: TRUE λx. λy. x FALSE λx. λy. y IF λb.
More informationReview. Principles of Programming Languages. Equality. The Diamond Property. The Church-Rosser Theorem. Corollaries. CSE 230: Winter 2007
CSE 230: Winter 2007 Principles of Programming Languages Lecture 12: The λ-calculus Ranjit Jhala UC San Diego Review The lambda calculus is a calculus of functions: e := x λx. e e 1 e 2 Several evaluation
More informationCBV and CBN. Eduardo Bonelli. TP para LP 2012C1 1/55
CBV and CBN Eduardo Bonelli TP para LP 2012C1 1/55 Reduction Strategies Call-By-Value Call-by-Name Relating CBN and CBV λ-calculus Continuation Passing Style Bibliography 2/55 Reduction Strategies Reduction
More informationCOMP6463: λ-calculus
COMP6463: λ-calculus 1. Basics Michael Norrish Michael.Norrish@nicta.com.au Canberra Research Lab., NICTA Semester 2, 2015 Outline Introduction Lambda Calculus Terms Alpha Equivalence Substitution Dynamics
More informationCS611 Lecture 25 Solving Domain Equations 22 October 2007 Lecturer: Andrew Myers
CS611 Lecture 25 Solving Domain Equations 22 October 2007 Lecturer: Andrew Myers To develop a denotational semantics for a language with recursive types, or to give a denotational semantics for the untyped
More informationInterpreting the Full λ-calculus in the π-calculus
Interpreting the Full λ-calculus in the π-calculus Xiaojuan Cai Joint work with Yuxi Fu BASICS Lab October 12, 2009 Motivation The λ-calculus: sequential model; The π-calculus: concurrent model A deep
More informationA probabilistic lambda calculus - Some preliminary investigations
A probabilistic lambda calculus - Some preliminary investigations Ugo Dal Lago, Margherita Zorzi Università di Bologna, Università di Verona June, 9-11, 2010, Torino Introduction: Λ P We present some results
More informationOn the Correctness of the Krivine Machine
On the Correctness of the Krivine Machine Mitchell Wand Northeastern University 2003-10-03 15:55:00 wand October 3, 2003 Abstract We provide a short proof of the correctness of the Krivine machine by showing
More informationAbstracting Definitional Interpreters. David Van Horn
Abstracting Definitional Interpreters David Van Horn Abstracting Definitional Interpreters David Van Horn Northeastern University Definitional interpreters written in monadic style can express a wide variety
More informationProgramming Languages
CSE 230: Winter 2010 Principles of Programming Languages Lecture 10: Programming in λ-calculusc l l Ranjit Jhala UC San Diego Review The lambda calculus is a calculus of functions: e := x λx. e e 1 e 2
More informationOn the Correctness and Efficiency of the Krivine Machine
On the Correctness and Efficiency of the Krivine Machine Mitchell Wand Northeastern University Daniel P. Friedman Indiana University February 12, 2003 Abstract We provide a short derivation of the Krivine
More informationCSE 505, Fall 2005, Midterm Examination 8 November Please do not turn the page until everyone is ready.
CSE 505, Fall 2005, Midterm Examination 8 November 2005 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one side of one 8.5x11in piece of paper.
More informationType Systems. Lecture 2 Oct. 27th, 2004 Sebastian Maneth.
Type Systems Lecture 2 Oct. 27th, 2004 Sebastian Maneth http://lampwww.epfl.ch/teaching/typesystems/2004 Today 1. What is the Lambda Calculus? 2. Its Syntax and Semantics 3. Church Booleans and Church
More informationCS 6110 Lecture 35 Solving Domain Equations 19 April 2013 Lecturer: Andrew Myers
CS 6110 Lecture 35 Solving Domain Equations 19 April 2013 Lecturer: Andrew Myers To develop a denotational semantics for a language with recursive types, or to give a denotational semantics for the untyped
More informationA Systematic Approach to Delimited Control with Multiple Prompts. Paul Downen, Zena M. Ariola. March 25, University of Oregon
A Systematic Approach to Delimited Control with Multiple Prompts Paul Downen, Zena M. Ariola University of Oregon March 25, 2012 Introduction to control operators Separating a redex from its evaluation
More informationBRICS. Thunks and the λ-calculus. (Extended Version) Basic Research in Computer Science BRICS RS-97-7 Hatcliff & Danvy: Thunks and the λ-calculus
BRICS Basic Research in Computer Science BRICS RS-97-7 Hatcliff & Danvy: Thunks and the λ-calculus Thunks and the λ-calculus (Extended Version) John Hatcliff Olivier Danvy BRICS Report Series RS-97-7 ISSN
More informationGOTO the past / programs choose their own adventure. CSE 505: Programming Languages
GOTO the past / programs choose their own adventure. CSE 505: Programming Languages Lecture 13 Evaluation Contexts First-Class Continuations Continuation-Passing Style Zach Tatlock Fall 2013 Zach Tatlock
More informationVariations on a theme: call-by-value and factorization
Variations on a theme: call-by-value and factorization Beniamino Accattoli INRIA & LIX, Ecole Polytechnique Accattoli (INRIA Parsifal) Variations on a theme: call-by-value and factorization 1 / 31 Outline
More informationA Note on Scope and Infinite Behaviour in CCS-like Calculi p.1/32
A Note on Scope and Infinite Behaviour in CCS-like Calculi GERARDO SCHNEIDER UPPSALA UNIVERSITY DEPARTMENT OF INFORMATION TECHNOLOGY UPPSALA, SWEDEN Joint work with Pablo Giambiagi and Frank Valencia A
More informationDecision Problems with TM s. Lecture 31: Halting Problem. Universe of discourse. Semi-decidable. Look at following sets: CSCI 81 Spring, 2012
Decision Problems with TM s Look at following sets: Lecture 31: Halting Problem CSCI 81 Spring, 2012 Kim Bruce A TM = { M,w M is a TM and w L(M)} H TM = { M,w M is a TM which halts on input w} TOTAL TM
More informationHarvard School of Engineering and Applied Sciences CS 152: Programming Languages
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 17 Tuesday, April 2, 2013 1 There is a strong connection between types in programming languages and propositions
More informationDenotational Semantics of Programs. : SimpleExp N.
Models of Computation, 2010 1 Denotational Semantics of Programs Denotational Semantics of SimpleExp We will define the denotational semantics of simple expressions using a function : SimpleExp N. Denotational
More informationElaborating evaluation-order polymorphism
Elaborating evaluation-order polymorphism Joshua Dunfield University of British Columbia ICFP 2015 1 (prologue) ICFP in Canada for the first time since 2008 2 (prologue) ICFP in Canada for the first time
More informationSafety Analysis versus Type Inference
Information and Computation, 118(1):128 141, 1995. Safety Analysis versus Type Inference Jens Palsberg palsberg@daimi.aau.dk Michael I. Schwartzbach mis@daimi.aau.dk Computer Science Department, Aarhus
More informationCompiling Self-Adjusting Programs with Continuations
Compiling Self-Adjusting Programs with Continuations Ruy Ley-Wild 1 Matthew Fluet 2 Umut Acar 2 1 Carnegie Mellon University 2 Toyota Technological Institute at Chicago September 2, 2008 1 2 Dealin with
More informationLecture Notes on Call-by-Value and Call-by-Name
Lecture Notes on Call-by-Value and Call-by-Name 15-816: Substructural Logics Frank Pfenning Lecture 22 November 16, 2017 In this lecture we consider two different polarization strategies for structural
More informationOn Böhm Trees and Lévy-Longo Trees in π-calculus
On Böhm Trees and Lévy-Longo Trees in π-calculus Xian Xu East China University of Science and Technology (from ongoing work with Davide Sangiorgi) April, 1 Subject Encodings from to λ-calculus (sequential
More informationClassical Program Logics: Hoare Logic, Weakest Liberal Preconditions
Chapter 1 Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions 1.1 The IMP Language IMP is a programming language with an extensible syntax that was developed in the late 1960s. We will
More informationThe Locally Nameless Representation
Noname manuscript No. (will be inserted by the editor) The Locally Nameless Representation Arthur Charguéraud Received: date / Accepted: date Abstract This paper provides an introduction to the locally
More informationThe State Explosion Problem
The State Explosion Problem Martin Kot August 16, 2003 1 Introduction One from main approaches to checking correctness of a concurrent system are state space methods. They are suitable for automatic analysis
More informationClasses and conversions
Classes and conversions Regular expressions Syntax: r = ε a r r r + r r Semantics: The language L r of a regular expression r is inductively defined as follows: L =, L ε = {ε}, L a = a L r r = L r L r
More informationChapter 4: Computation tree logic
INFOF412 Formal verification of computer systems Chapter 4: Computation tree logic Mickael Randour Formal Methods and Verification group Computer Science Department, ULB March 2017 1 CTL: a specification
More information3.2 Equivalence, Evaluation and Reduction Strategies
3.2 Equivalence, Evaluation and Reduction Strategies The λ-calculus can be seen as an equational theory. More precisely, we have rules i.e., α and reductions, for proving that two terms are intensionally
More informationNICTA Advanced Course. Theorem Proving Principles, Techniques, Applications
NICTA Advanced Course Theorem Proving Principles, Techniques, Applications λ 1 CONTENT Intro & motivation, getting started with Isabelle Foundations & Principles Lambda Calculus Higher Order Logic, natural
More informationCall-by-value non-determinism in a linear logic type discipline
Call-by-value non-determinism in a linear logic type discipline Alejandro Díaz-Caro? Giulio Manzonetto Université Paris-Ouest & INRIA LIPN, Université Paris 13 Michele Pagani LIPN, Université Paris 13
More informationStatic Program Analysis
Static Program Analysis Xiangyu Zhang The slides are compiled from Alex Aiken s Michael D. Ernst s Sorin Lerner s A Scary Outline Type-based analysis Data-flow analysis Abstract interpretation Theorem
More informationNormalization by Evaluation
Normalization by Evaluation Andreas Abel Department of Computer Science and Engineering Chalmers and Gothenburg University PhD Seminar in Mathematical Engineering EAFIT University, Medellin, Colombia 9
More informationIntroduction to Temporal Logic. The purpose of temporal logics is to specify properties of dynamic systems. These can be either
Introduction to Temporal Logic The purpose of temporal logics is to specify properties of dynamic systems. These can be either Desired properites. Often liveness properties like In every infinite run action
More informationEquivalence of Algebraic λ -calculi extended abstract
Equivalence of Algebraic λ -calculi extended abstract Alejandro Díaz-Caro LIG, Université de Grenoble, France Alejandro.Diaz-Caro@imag.fr Christine Tasson CEA-LIST, MeASI, France Christine.Tasson@cea.fr
More informationCommunication and Concurrency: CCS
Communication and Concurrency: CCS R. Milner, A Calculus of Communicating Systems, 1980 cours SSDE Master 1 Why calculi? Prove properties on programs and languages Principle: tiny syntax, small semantics,
More informationA Call-by-Name CPS Hierarchy
A Call-by-Name CPS Hierarchy Asami Tanaka and Yukiyoshi Kameyama University of Tsukuba, Japan asami@logic.cs.tsukuba.ac.jp,kameyama@acm.org Abstract. The Continuation-Passing-Style (CPS) translation gives
More informationOperational semantics for disintegration
Operational semantics for disintegration Chung-chieh Shan (Indiana University) Norman Ramsey (Tufts University) Mathematical Foundations of Programming Semantics 2016-05-25 1 What is semantics for? 1.
More informationThe Lambda Calculus. Stephen A. Edwards. Fall Columbia University
The Lambda Calculus Stephen A. Edwards Columbia University Fall 2014 Lambda Expressions Function application written in prefix form. Add four and five is (+ 4 5) Evaluation: select a redex and evaluate
More informationSimply Typed λ-calculus
Simply Typed λ-calculus Lecture 1 Jeremy Dawson The Australian National University Semester 2, 2017 Jeremy Dawson (ANU) COMP4630,Lecture 1 Semester 2, 2017 1 / 23 A Brief History of Type Theory First developed
More informationProbabilistic Applicative Bisimulation and Call-by-Value Lam
Probabilistic Applicative and Call-by-Value Lambda Calculi Joint work with Ugo Dal Lago ENS Lyon February 9, 2014 Probabilistic Applicative and Call-by-Value Lam Introduction Fundamental question: when
More informationElement x is R-minimal in X if y X. R(y, x).
CMSC 22100/32100: Programming Languages Final Exam M. Blume December 11, 2008 1. (Well-founded sets and induction principles) (a) State the mathematical induction principle and justify it informally. 1
More informationParametric Polymorphism and Operational Improvement
Parametric Polymorphism and Operational Improvement JENNIFER HACKETT, University of Nottingham, UK GRAHAM HUTTON, University of Nottingham, UK Parametricity, in both operational and denotational forms,
More informationDynamic Noninterference Analysis Using Context Sensitive Static Analyses. Gurvan Le Guernic July 14, 2007
Dynamic Noninterference Analysis Using Context Sensitive Static Analyses Gurvan Le Guernic July 14, 2007 1 Abstract This report proposes a dynamic noninterference analysis for sequential programs. This
More informationRecitation 2: Binding, Semantics, and Safety : Foundations of Programming Languages
Recitation 2: Binding, Semantics, and Safety 15-312: Foundations of Programming Languages Charles Yuan, Jeanne Luning Prak September 5, 2018 1 Abstract Binding Trees The abstract syntax trees we saw previously
More informationSimply Typed Lambda Calculus
Simply Typed Lambda Calculus Language (ver1) Lambda calculus with boolean values t ::= x variable x : T.t abstraction tt application true false boolean values if ttt conditional expression Values v ::=
More informationDenotational semantics
Denotational semantics Semantics and Application to Program Verification Antoine Miné École normale supérieure, Paris year 2015 2016 Course 4 4 March 2016 Course 4 Denotational semantics Antoine Miné p.
More informationTimed Automata. Semantics, Algorithms and Tools. Zhou Huaiyang
Timed Automata Semantics, Algorithms and Tools Zhou Huaiyang Agenda } Introduction } Timed Automata } Formal Syntax } Operational Semantics } Verification Problems } Symbolic Semantics & Verification }
More informationBusch Complexity Lectures: Turing s Thesis. Costas Busch - LSU 1
Busch Complexity Lectures: Turing s Thesis Costas Busch - LSU 1 Turing s thesis (1930): Any computation carried out by mechanical means can be performed by a Turing Machine Costas Busch - LSU 2 Algorithm:
More informationThe lambda calculus with constructors
The lambda calculus with constructors Categorical semantic and Continuations Barbara Petit Focus - Univ. Bologna CaCos 2012 Barbara Petit (Focus - Univ. Bologna) The lambda calculus with constructors 1
More informationTuring Machines. Wolfgang Schreiner
Turing Machines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang Schreiner
More informationType Systems. Today. 1. What is the Lambda Calculus. 1. What is the Lambda Calculus. Lecture 2 Oct. 27th, 2004 Sebastian Maneth
Today 1. What is the Lambda Calculus? Type Systems 2. Its Syntax and Semantics 3. Church Booleans and Church Numerals 4. Lazy vs. Eager Evaluation (call-by-name vs. call-by-value) Lecture 2 Oct. 27th,
More informationCoinductive big-step semantics and Hoare logics for nontermination
Coinductive big-step semantics and Hoare logics for nontermination Tarmo Uustalu, Inst of Cybernetics, Tallinn joint work with Keiko Nakata COST Rich Models Toolkit meeting, Madrid, 17 18 October 2013
More informationRecursion Theorem. Ziv Scully Ziv Scully Recursion Theorem / 28
Recursion Theorem Ziv Scully 18.504 Ziv Scully Recursion Theorem 18.504 1 / 28 A very λ-calculus appetizer P-p-p-plot twist! λ Ziv Scully Recursion Theorem 18.504 2 / 28 A very λ-calculus appetizer The
More informationSeptember 14. Fall Software Foundations CIS 500
CIS 500 Software Foundations Fall 2005 September 14 CIS 500, September 14 1 Announcements I will be away September 19-October 5. I will be reachable by email. Fastest response cis500@cis.upenn.edu No office
More informationCommunication and Concurrency: CCS. R. Milner, A Calculus of Communicating Systems, 1980
Communication and Concurrency: CCS R. Milner, A Calculus of Communicating Systems, 1980 Why calculi? Prove properties on programs and languages Principle: tiny syntax, small semantics, to be handled on
More informationSemantic Equivalences and the. Verification of Infinite-State Systems 1 c 2004 Richard Mayr
Semantic Equivalences and the Verification of Infinite-State Systems Richard Mayr Department of Computer Science Albert-Ludwigs-University Freiburg Germany Verification of Infinite-State Systems 1 c 2004
More informationEquivalent Computers. Lecture 39: Lambda Calculus. Lambda Calculus. What is Calculus? Real Definition. Why?
#,, - Lecture 39: Lambda Calculus Equivalent Computers z z z... term = variable term term (term) λ variable. term λy. M α λv. (M [y α v]) where v does not occur in M. (λx. M)N β M [ x α N ] Turing Machine
More informationRelational Graph Models, Taylor Expansion and Extensionality
Relational Graph Models, Taylor Expansion and Extensionality Domenico Ruoppolo Giulio Manzonetto Laboratoire d Informatique de Paris Nord Université Paris-Nord Paris 13 (France) MFPS XXX Ithaca, New York
More informationA should be R-closed: R(A) A. We would like this to hold because we would like every element that the rules say should be in A to actually be in A.
CS 6110 S18 Lecture 7 Inductive Definitions and Least Fixed Points 1 Set Operators Last time we considered a set of rule instances of the form X 1 X 2... X n, (1) X where X and the X i are members of some
More informationCommunicating Parallel Processes. Stephen Brookes
Communicating Parallel Processes Stephen Brookes Carnegie Mellon University Deconstructing CSP 1 CSP sequential processes input and output as primitives named parallel composition synchronized communication
More informationAn On-the-fly Tableau Construction for a Real-Time Temporal Logic
#! & F $ F ' F " F % An On-the-fly Tableau Construction for a Real-Time Temporal Logic Marc Geilen and Dennis Dams Faculty of Electrical Engineering, Eindhoven University of Technology P.O.Box 513, 5600
More informationInduction; Operational Semantics. Fall Software Foundations CIS 500
CIS 500 Software Foundations Fall 2005 Induction; Operational Semantics CIS 500, Induction; Operational Semantics 1 Announcements Review recitations start this week. You may go to any recitation section
More informationA Thread Algebra with Multi-level Strategic Interleaving
Theory of Computing Systems manuscript No. (will be inserted by the editor) A Thread Algebra with Multi-level Strategic Interleaving J.A. Bergstra 1,2, C.A. Middelburg 3,1 1 Programming Research Group,
More informationCoinductive big-step operational semantics
Coinductive big-step operational semantics Xavier Leroy a, Hervé Grall b a INRIA Paris-Rocquencourt Domaine de Voluceau, B.P. 105, 78153 Le Chesnay, France b École des Mines de Nantes La Chantrerie, 4,
More informationA Concurrent Logical Framework
A Concurrent Logical Framework Frank Pfenning Carnegie Mellon University Types Workshop Torino, Italy, April 2003 Joint work with Iliano Cervesato, David Walker, and Kevin Watkins Types 03, Torino, April
More informationThe simplex algorithm
The simplex algorithm The simplex algorithm is the classical method for solving linear programs. Its running time is not polynomial in the worst case. It does yield insight into linear programs, however,
More information2. Syntactic Congruences and Monoids
IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Advanced Course on Computational Complexity Lecture 3: Algebra and Languages David Mix Barrington and Alexis Maciel July 19, 2000 1.
More informationThe Permutative λ-calculus
The Permutative λ-calculus Beniamino Accattoli 1 Delia Kesner 2 INRIA and LIX (École Polytechnique) PPS (CNRS and Université Paris-Diderot) 1 / 34 Outline 1 λ-calculus 2 Permutative extension 3 Confluence
More informationEE 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Fall 2016
EE 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Fall 2016 Discrete Event Simulation Stavros Tripakis University of California, Berkeley Stavros Tripakis (UC Berkeley)
More informationAbstract model theory for extensions of modal logic
Abstract model theory for extensions of modal logic Balder ten Cate Stanford, May 13, 2008 Largely based on joint work with Johan van Benthem and Jouko Väänänen Balder ten Cate Abstract model theory for
More informationSpring 2014 Program Analysis and Verification. Lecture 6: Axiomatic Semantics III. Roman Manevich Ben-Gurion University
Spring 2014 Program Analysis and Verification Lecture 6: Axiomatic Semantics III Roman Manevich Ben-Gurion University Syllabus Semantics Static Analysis Abstract Interpretation fundamentals Analysis Techniques
More informationTuring machine. Turing Machine Model. Turing Machines. 1. Turing Machines. Wolfgang Schreiner 2. Recognizing Languages
Turing achines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at 1. Turing achines Wolfgang
More informationA call-by-name lambda-calculus machine
A call-by-name lambda-calculus machine Jean-Louis Krivine University Paris VII, C.N.R.S. 2 place Jussieu 75251 Paris cedex 05 (krivine@pps.jussieu.fr) Introduction We present, in this paper, a particularly
More informationλ S : A Lambda Calculus with Side-effects
L14-1 λ S : A Lambda Calculus with Side-effects delivered by Jacob Schwartz Laboratory for Computer Science M.I.T. Lecture 14 M-Structures and Barriers L14-2 Some problems cannot be expressed functionally
More informationPROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2
PROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2 Neil D. Jones DIKU 2005 12 September, 2005 Some slides today new, some based on logic 2004 (Nils
More informationThe Safe λ-calculus. William Blum. Joint work with C.-H. Luke Ong. Lunch-time meeting, 14 May Oxford University Computing Laboratory
The Safe λ-calculus William Blum Joint work with C.-H. Luke Ong Oxford University Computing Laboratory Lunch-time meeting, 14 May 2007 Overview Safety is originally a syntactic restriction for higher-order
More informationCS20a: Turing Machines (Oct 29, 2002)
CS20a: Turing Machines (Oct 29, 2002) So far: DFA = regular languages PDA = context-free languages Today: Computability 1 Church s thesis The computable functions are the same as the partial recursive
More informationComputational Soundness of a Call by Name Calculus of Recursively-scoped Records. UMM Working Papers Series, Volume 2, Num. 3.
Computational Soundness of a Call by Name Calculus of Recursively-scoped Records. UMM Working Papers Series, Volume 2, Num. 3. Elena Machkasova Contents 1 Introduction and Related Work 1 1.1 Introduction..............................
More informationLogical specification and coinduction
Logical specification and coinduction Robert J. Simmons Carnegie Mellon University, Pittsburgh PA 15213, USA, rjsimmon@cs.cmu.edu, WWW home page: http://www.cs.cmu.edu/ rjsimmon Abstract. The notion of
More informationRefined Environment Classifiers
Refined Environment Classifiers Type- and Scope-safe Code Generation with Mutable Cells Oleg Kiselyov Yukiyoshi Kameyama Yuto Sudo Tohoku University University of Tsukuba APLAS 2016 November 22, 2016 Region
More informationTopology in Denotational Semantics
Journées Topologie et Informatique Thomas Ehrhard Preuves, Programmes et Systèmes (PPS) Université Paris Diderot - Paris 7 and CNRS March 21, 2013 What is denotational semantics? The usual stateful approach
More informationDecidability: Church-Turing Thesis
Decidability: Church-Turing Thesis While there are a countably infinite number of languages that are described by TMs over some alphabet Σ, there are an uncountably infinite number that are not Are there
More informationOperational Semantics Using the Partiality Monad
page.1 Operational Semantics Using the Partiality Monad Nils Anders Danielsson (Göteborg) Shonan Meeting 026: Coinduction for computation structures and programming languages The research leading to these
More informationConcurrency theory. proof-techniques for syncronous and asynchronous pi-calculus. Francesco Zappa Nardelli. INRIA Rocquencourt, MOSCOVA research team
Concurrency theory proof-techniques for syncronous and asynchronous pi-calculus Francesco Zappa Nardelli INRIA Rocquencourt, MOSCOVA research team francesco.zappa nardelli@inria.fr together with Frank
More informationCSE 505, Fall 2009, Midterm Examination 5 November Please do not turn the page until everyone is ready.
CSE 505, Fall 2009, Midterm Examination 5 November 2009 Please do not turn the page until everyone is ready Rules: The exam is closed-book, closed-note, except for one side of one 85x11in piece of paper
More informationCS357: CTL Model Checking (two lectures worth) David Dill
CS357: CTL Model Checking (two lectures worth) David Dill 1 CTL CTL = Computation Tree Logic It is a propositional temporal logic temporal logic extended to properties of events over time. CTL is a branching
More informationIntelligent Agents. Formal Characteristics of Planning. Ute Schmid. Cognitive Systems, Applied Computer Science, Bamberg University
Intelligent Agents Formal Characteristics of Planning Ute Schmid Cognitive Systems, Applied Computer Science, Bamberg University Extensions to the slides for chapter 3 of Dana Nau with contributions by
More informationThe L Machines are very high-level, in two senses:
What is a Computer? State of the machine. CMPSCI 630: Programming Languages An Abstract Machine for Control Spring 2009 (with thanks to Robert Harper) Internal registers, memory, etc. Initial and final
More informationTuring Machines, diagonalization, the halting problem, reducibility
Notes on Computer Theory Last updated: September, 015 Turing Machines, diagonalization, the halting problem, reducibility 1 Turing Machines A Turing machine is a state machine, similar to the ones we have
More informationOperational Semantics
Operational Semantics Semantics and applications to verification Xavier Rival École Normale Supérieure Xavier Rival Operational Semantics 1 / 50 Program of this first lecture Operational semantics Mathematical
More informationAxiomatic Semantics. Lecture 9 CS 565 2/12/08
Axiomatic Semantics Lecture 9 CS 565 2/12/08 Axiomatic Semantics Operational semantics describes the meaning of programs in terms of the execution steps taken by an abstract machine Denotational semantics
More informationAdapton: Composable, Demand-Driven Incremental Computation
Adapton: Composable, Demand-Driven Incremental Computation CS-TR-5027 July 12, 2013 Matthew A. Hammer, Khoo Yit Phang, Mhael Hks, and Jeffrey S. Foster University of Maryland, College Park, USA Abstract
More informationChapter 6: Turing Machines
Chapter 6: Turing Machines 6.1 The Turing Machine Definition A deterministic Turing machine (DTM) M is specified by a sextuple (Q, Σ, Γ, δ, s, f), where Q is a finite set of states; Σ is an alphabet of
More information