Compiling Self-Adjusting Programs with Continuations
|
|
- Theodore Griffin
- 5 years ago
- Views:
Transcription
1 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,
2 2 Dealin with Input Changes
3 Dealin with Input Changes talk.tex 2
4 Dealin with Input Changes talk.tex First run must process the entire source file 2
5 Dealin with Input Changes talk.tex First run must process the entire source file 2
6 Dealin with Input Changes talk.tex First run must process the entire source file 2
7 Dealing with Input Changes talk.tex First run must process the entire source file 2
8 Dealing with Input Changes talk.tex First run must process the entire source file Second run only has to process the affected frame...but latex processes the entire file again 2
9 Self-Adjusting Computation Self-Adjusting Computation (SAC) = Recompute affected outputs + Reuse unaffected outputs Modes of execution From scratch Update: reuse work from previous runs Track computation that depends on input changes 3
10 Example: Sum of Squares from scratch run: sumofsquares(3,2) same 3 2 change data
11 Example: Sum of Squares from scratch run: sumofsquares(3,2) reuse same change data computation data flow
12 Example: Sum of Squares from scratch run: sumofsquares(3,2) reuse same change recompute data computation data flow control flow
13 Example: Sum of Squares from scratch run: sumofsquares(3,2) same 3 reuse 9 reuse change recompute data computation data flow control flow
14 Example: Sum of Squares from scratch run: update run: sumofsquares(3,2) sumofsquares(3, 2) same 3 reuse 9 reuse change recompute data computation data flow control flow
15 Example: Sum of Squares from scratch run: update run: sumofsquares(3,2) sumofsquares(3, 2) same 3 reuse 9 reuse change recompute data computation data flow control flow
16 Example: Sum of Squares from scratch run: update run: sumofsquares(3,2) sumofsquares(3, 2) same 3 reuse 9 reuse change recompute data computation data flow control flow
17 Example: Sum of Squares from scratch run: update run: sumofsquares(3,2) sumofsquares(3, 2) same 3 reuse 9 reuse change recompute data computation data flow control flow
18 Applications Algorithms (computational geometry, dynamic algorithms) Machine learning (Bayesian inference) Robotics Software verification (dynamic invariant checking) Hardware design (reconfigurable hardware) 5
19 Tracking Dependencies Previous approach: Manually track dependencies monadic destination-passing primitives manual hashing, equality, memoization fun sumofsquares (x, y) = let x2 = read(x, fn m => write(m * m)) y2 = read(y, fn n => write(n * n)) in memo (x2,y2) (fn (x2,y2) => read(x2, fn n2 => read(y2, fn m2 => write(n2 + m2)))) end 6
20 Tracking Dependencies Previous approach: Manually track dependencies monadic destination-passing primitives manual hashing, equality, memoization fun sumofsquares (x, y) = let x2 = read(x, fn m => write(m * m)) y2 = read(y, fn n => write(n * n)) in memo (x2,y2) (fn (x2,y2) => read(x2, fn n2 => read(y2, fn m2 => write(n2 + m2)))) end 6 New approach: Automatically infer dependencies Language support: direct-style annotations Compiler support: infer dependencies from annotations fun sumofsquares (box m, box n) = box(unbox (box(m * m)) + unbox(box (n * n)))
21 Compilation Outline source λ-calculus + SAC annotations compilation target CPS λ-calculus + SAC primitives 7
22 Source Language Pure λ-calculus with SAC annotations Use boxes to mark changeable data τ ::= τ box e ::= box e create unbox e dereference 8
23 Source Language Pure λ-calculus with SAC annotations Use boxes to mark changeable data τ ::= τ box e ::= box e create unbox e dereference datatype a list = nil :: of a * a list map : ( a -> b) -> a list -> b list fun map f ( nil) = nil map f ( (h::t)) = (f h :: map f t) 8
24 Source Language Pure λ-calculus with SAC annotations Use boxes to mark changeable data τ ::= τ box e ::= box e create unbox e dereference datatype a list = nil :: of a * a list box map : ( a -> b) -> a list box -> b list box fun map f (box nil) = box nil map f (box (h::t)) = box (f h :: map f t) 8
25 Challenges of Compilation same e change recompute How to identify control dependencies? + memo 13 9
26 Challenges of Compilation same e change + memo 13 recompute How to identify control dependencies? Use the continuation! = the rest of the computation 9
27 Challenges of Compilation same e change + memo 13 recompute How to identify control dependencies? Use the continuation! = the rest of the computation But continuation is an overapproximation 9
28 Challenges of Compilation same e change + memo 13 recompute How to identify control dependencies? Use the continuation! = the rest of the computation But continuation is an overapproximation Use memoization 9
29 Challenges of Compilation same e change + memo 13 recompute How to identify control dependencies? Use the continuation! = the rest of the computation But continuation is an overapproximation Use memoization How to combine memoization and continuations? 9
30 Target Language Pure CPS λ-calculus with SAC primitives e ::= fun f.x.k.e explicit continuation v f v x v k boxk v v k unboxk v v k memo e attempt reuse Intrinsic support for self-adjusting computation 10
31 Dynamic Semantics for Evaluation and Replay expression evaluation σ; e σ ; v ; T state value trace replay σ; T σ ; v ; T trace 11
32 Dynamic Semantics for Evaluation and Replay expression evaluation σ; e σ ; v ; T state value trace replay σ; T σ ; v ; T trace from scratch evaluation-only 11
33 Dynamic Semantics for Evaluation and Replay expression evaluation σ; e σ ; v ; T state value trace replay σ; T σ ; v ; T trace from scratch evaluation-only update interleaving replay when possible evaluate when necessary 11
34 Dynamic Semantics for Evaluation and Replay evaluation expression σ; e σ ; v ; T state value trace replay σ; T σ ; v ; T trace Correctness: from scratch update evaluation-only interleaving replay when possible evaluate when necessary 11
35 Alternating between Evaluation and Replay a memo can adapt a similar execution previous run {}}{ σ ; e ; ; T σ; T σ ; v ; T σ; memo e σ ; v ; T 12
36 Alternating between Evaluation and Replay a memo can adapt a similar execution previous run {}}{ σ ; e ; ; T σ; T σ ; v ; T σ; memo e σ ; v ; T an invalid unboxk must be reevaluated σ(l) = v v σ; v k v σ ; v ; T σ; unboxk l v v k }{{} record result T σ ; v ; unboxk l v v k T 12
37 Adaptive CPS Translation e src v tgt k = e tgt compile term e with continuation v k box translation: straightforward fun translation: subtle box e v k = e (λy.boxk y v k ) unbox e v k = e (λy.unboxk y v k ) fun f.x.e v k =??? e 1 e 2 v k = e 1 (λy f. e 2 (λy x.y f y x v k )) 13
38 Function Compilation: standard translation 1 m 1 k 1 a 2 m 2 k 2 b 3 m 3 k 3 c fun f.x.e v k = v k (fun f.x.k. ( e k )) 1
39 Function Compilation: standard translation 1 m 1 k 1 a m 2 k 2 b 3 m 3 k 3 c fun f.x.e v k = v k (fun f.x.k. ( e k )) 1
40 Function Compilation: standard translation redo 1 m 1 k 1 How to reuse work? a m k d 3 m 3 k 3 c fun f.x.e v k = v k (fun f.x.k. ( e k )) 1
41 Function Compilation: memo d call 1 memo fn m 1 k 1 a How to reuse work? Memo the function call m 2 k 2 b 3 m 3 k 3 c fun f.x.e v k = v k (fun f.x.k. memo ( e k )) memo body 1
42 Function Compilation: memo d call 1 m 1 reuse m redo k 1 k a d How to reuse work? Memo the function call How to memo despite continuation? 3 m 3 k 3 c fun f.x.e v k = v k (fun f.x.k. memo ( e k )) memo body 1
43 Function Compilation: memo d call + boxed cont 1 m 1 m 2 box cont k 1 k 2 k 1 k 2 a b How to reuse work? Memo the function call How to memo despite continuation? Box the continuation 3 m 3 k 3 k 3 c 1 fun f.x.e v k = v k (fun f.x.k. let y k = boxk k in box cont let k = λy r.unboxk y k (λk.k y r ) in unbox cont memo ( e k )) memo body
44 Function Compilation: memo d call + boxed cont 1 3 m 1 reuse k 1 m redo k m 3 reuse k 3 k 1 a redo k d k 3 c How to reuse work? Memo the function call How to memo despite continuation? Box the continuation How to avoid reexecuting continuation? 1 fun f.x.e v k = v k (fun f.x.k. let y k = boxk k in box cont let k = λy r.unboxk y k (λk.k y r ) in unbox cont memo ( e k )) memo body
45 Function Compilation: memo d call/cont + boxed cont 1 3 m 1 m 2 m 3 memo cont k 1 k 2 k 3 k 1 k 2 k 3 a b c How to reuse work? Memo the function call How to memo despite continuation? Box the continuation How to avoid reexecuting continuation? Memoizing continuations fun f.x.e v k = v k (fun f.x.k. let k m = λy r.memo (k y r ) in memo cont let y k = boxk k m in box cont let k = λy r.unboxk y k (λk.k y r ) in unbox cont memo ( e k )) memo body 1
46 Function Compilation: memo d call/cont + boxed cont 1 3 m 1 memo k 1 m redo k m 3 reuse k 3 reuse k 1 a redo k d k 3 c How to reuse work? Memo the function call How to memo despite continuation? Box the continuation How to avoid reexecuting continuation? Memoizing continuations Uses existing primitives! fun f.x.e v k = v k (fun f.x.k. let k m = λy r.memo (k y r ) in memo cont let y k = boxk k m in box cont let k = λy r.unboxk y k (λk.k y r ) in unbox cont memo ( e k )) memo body 1
47 Summary Adaptive CPS for compiling self-adjusting programs Boxes = track dependencies + isolate continuations Memoization = identify reuse + optimize continuations More natural programming style SML implementation in MLton Selective CPS Reconcile memoization with allocation Interacting with self-adjusting subprograms Experimental evaluation Efficient update Competitive against manual approach See paper! 15
48 Thanks! pl/sa-sml 16
49 Future Work Reasoning principles for asymptotic performance Automate annotations Combine with effects (imperative references, I/O,...) Larger applications Self-adjusting latex? 17
A Cost Semantics for Self-Adjusting Computation
A Cost Semantics for Self-Adjusting Computation Ruy Ley-Wild Carnegie Mellon University rleywild@cs.cmu.edu Umut A. Acar Matthew Fluet Toyota Technological Institute at Chicago {acar,fluet}@tti-c.org Abstract
More informationImplicit Self-Adjusting Computation for Purely Functional Programs
Implicit Self-Adjustg Computation for Purely Functional Programs Yan Chen Joshua Dunfield Matthew A. Hammer Umut A. Acar MPI-SWS September 19, 2011 Incremental/Dynamic Problems Input: 3, 5, 8, 2, 10, 4,
More informationAbstractions and Decision Procedures for Effective Software Model Checking
Abstractions and Decision Procedures for Effective Software Model Checking Prof. Natasha Sharygina The University of Lugano, Carnegie Mellon University Microsoft Summer School, Moscow, July 2011 Lecture
More informationContinuations, Processes, and Sharing. Paul Downen, Luke Maurer, Zena M. Ariola, Daniele Varacca. September 8, 2014
Continuations, Processes, and Sharing Paul Downen, Luke Maurer, Zena M. Ariola, Daniele Varacca University of Oregon, Université Paris Diderot September 8, 2014 The plethora of semantic artifacts Many
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 informationDynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics
Dynamic Semantics Operational Semantics Denotational Semantic Dynamic Semantics Operational Semantics Operational Semantics Describe meaning by executing program on machine Machine can be actual or simulated
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 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 informationBicubical Directed Type Theory
Bicubical Directed Type Theory Matthew Weaver General Examination May 7th, 2018 Advised by Andrew Appel and Dan Licata Bicubical Directed Type Theory Bicubical directed type theory is a constructive model
More informationPrinciples of Program Analysis: A Sampler of Approaches
Principles of Program Analysis: A Sampler of Approaches Transparencies based on Chapter 1 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis Springer Verlag
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 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 informationVerified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017
Verified Characteristic Formulae for CakeML Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017 CakeML Has: references, modules, datatypes, exceptions, a FFI,... Doesn t have:
More informationA Denotational Approach to Measuring Complexity in Functional Programs
A Denotational Approach to Measuring Complexity in Functional Programs Kathryn Van Stone June 2003 CMU-CS-03-150 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Thesis Committee:
More informationA Quantum Computing Approach to the Verification and Validation of Complex Cyber-Physical Systems
A Quantum Computing Approach to the Verification and Validation of Complex Cyber-Physical Systems Achieving Quality and Cost Control in the Development of Enormous Systems Safe and Secure Systems and Software
More informationReconciling Situation Calculus and Fluent Calculus
Reconciling Situation Calculus and Fluent Calculus Stephan Schiffel and Michael Thielscher Department of Computer Science Dresden University of Technology {stephan.schiffel,mit}@inf.tu-dresden.de Abstract
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 informationAutomated Equational Reasoning in Nondeterministic λ-calculi Modulo Theories H
1 Automated Equational Reasoning in Nondeterministic λ-calculi Modulo Theories H Fritz Obermeyer Department of Mathematics Carnegie Mellon University 2009:03:22 Motivation 2 to semi-automatically build
More informationCall by Effect. Kevin Ellis. Catlin Gabel
Call by Effect Kevin Ellis Catlin Gabel Abstract. Evaluation strategies specify rules for evaluation of terms in a programming language. That the choice of evaluation strategy affects the expressiveness
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 informationA Humble Introduction to DIJKSTRA S A A DISCIPLINE OF PROGRAMMING
A Humble Introduction to DIJKSTRA S A A DISCIPLINE OF PROGRAMMING Do-Hyung Kim School of Computer Science and Engineering Sungshin Women s s University CONTENTS Bibliographic Information and Organization
More informationCode Generation for a Simple First-Order Prover
Code Generation for a Simple First-Order Prover Jørgen Villadsen, Anders Schlichtkrull, and Andreas Halkjær From DTU Compute, Technical University of Denmark, 2800 Kongens Lyngby, Denmark Abstract. We
More informationBounded Retransmission in Event-B CSP: a Case Study
Available online at www.sciencedirect.com Electronic Notes in Theoretical Computer Science 280 (2011) 69 80 www.elsevier.com/locate/entcs Bounded Retransmission in Event-B CSP: a Case Study Steve Schneider
More informationAutomatic Resource Bound Analysis and Linear Optimization. Jan Hoffmann
Automatic Resource Bound Analysis and Linear Optimization Jan Hoffmann Beyond worst-case analysis Beyond worst-case analysis of algorithms Beyond worst-case analysis of algorithms Resource bound analysis
More informationLecture Notes on Intuitionistic Kripke Semantics
Lecture Notes on Intuitionistic Kripke Semantics 15-816: Modal Logic Frank Pfenning Lecture 15 March 18, 2010 1 Introduction In this lecture we present an intuitionistic approach to describing a multipleworld
More informationDeductive Verification
Deductive Verification Mooly Sagiv Slides from Zvonimir Rakamaric First-Order Logic A formal notation for mathematics, with expressions involving Propositional symbols Predicates Functions and constant
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 informationCOP4020 Programming Languages. Introduction to Axiomatic Semantics Prof. Robert van Engelen
COP4020 Programming Languages Introduction to Axiomatic Semantics Prof. Robert van Engelen Assertions and Preconditions Assertions are used by programmers to verify run-time execution An assertion is a
More informationNICTA Advanced Course. Theorem Proving Principles, Techniques, Applications. Gerwin Klein Formal Methods
NICTA Advanced Course Theorem Proving Principles, Techniques, Applications Gerwin Klein Formal Methods 1 ORGANISATORIALS When Mon 14:00 15:30 Wed 10:30 12:00 7 weeks ends Mon, 20.9.2004 Exceptions Mon
More informationEmbedded probabilistic programming
Embedded probabilistic programming Oleg Kiselyov FNMOC oleg@pobox.com Chung-chieh Shan Rutgers University ccshan@cs.rutgers.edu 17 July 2009 Probabilistic inference Model (what) Pr(Reality) Pr(Obs j Reality)
More informationEDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach
EDA045F: Program Analysis LECTURE 10: TYPES 1 Christoph Reichenbach In the last lecture... Performance Counters Challenges in Dynamic Performance Analysis Taint Analysis Binary Instrumentation 2 / 44 Types
More informationReasoning About Imperative Programs. COS 441 Slides 10b
Reasoning About Imperative Programs COS 441 Slides 10b Last time Hoare Logic: { P } C { Q } Agenda If P is true in the initial state s. And C in state s evaluates to s. Then Q must be true in s. Program
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 informationA Verified ODE solver and Smale s 14th Problem
A Verified ODE solver and Smale s 14th Problem Fabian Immler Big Proof @ Isaac Newton Institute Jul 6, 2017 = Isabelle λ β α Smale s 14th Problem A computer-assisted proof involving ODEs. Motivation for
More informationMeta-reasoning in the concurrent logical framework CLF
Meta-reasoning in the concurrent logical framework CLF Jorge Luis Sacchini (joint work with Iliano Cervesato) Carnegie Mellon University Qatar campus Nagoya University, 27 June 2014 Jorge Luis Sacchini
More informationJug: Executing Parallel Tasks in Python
Jug: Executing Parallel Tasks in Python Luis Pedro Coelho EMBL 21 May 2013 Luis Pedro Coelho (EMBL) Jug 21 May 2013 (1 / 24) Jug: Coarse Parallel Tasks in Python Parallel Python code Memoization Luis Pedro
More informationLecture Notes on Software Model Checking
15-414: Bug Catching: Automated Program Verification Lecture Notes on Software Model Checking Matt Fredrikson André Platzer Carnegie Mellon University Lecture 19 1 Introduction So far we ve focused on
More informationInteractive Theorem Provers
Interactive Theorem Provers from the perspective of Isabelle/Isar Makarius Wenzel Univ. Paris-Sud, LRI July 2014 = Isabelle λ β Isar α 1 Introduction Notable ITP systems LISP based: ACL2 http://www.cs.utexas.edu/users/moore/acl2
More informationLimitations of OCAML records
Limitations of OCAML records The record types must be declared before they are used; a label e can belong to only one record type (otherwise fun x x.e) would have several incompatible types; we cannot
More informationFormal Verification of Mathematical Algorithms
Formal Verification of Mathematical Algorithms 1 Formal Verification of Mathematical Algorithms John Harrison Intel Corporation The cost of bugs Formal verification Levels of verification HOL Light Formalizing
More informationSmtlink 2.0. Yan Peng 1 Mark R. Greenstreet 1. November 6th University of British Columbia. 1 Department of Computer Science
Smtlink 20 Yan Peng 1 Mark R Greenstreet 1 1 Department of Computer Science University of British Columbia November 6th 2018 Peng & Greenstreet (UBC) Smtlink 20 ACL2 Workshop 2018 1 / 21 1 Why Smtlink
More informationStructure. Background. them to their higher order equivalents. functionals in Standard ML source code and converts
Introduction 3 Background functionals factor out common behaviour map applies a function to every element of a list fun map [ ] = [ ] map f ( x : : xs ) = f x : : map f xs filter keeps only those elements
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 informationFormal Verification of Systems-on-Chip
Formal Verification of Systems-on-Chip Wolfgang Kunz Department of Electrical & Computer Engineering University of Kaiserslautern, Germany Slide 1 Industrial Experiences Formal verification of Systems-on-Chip
More information1 st Semester 2007/2008
Chapter 17: System Departamento de Engenharia Informática Instituto Superior Técnico 1 st Semester 2007/2008 Slides baseados nos slides oficiais do livro Database System c Silberschatz, Korth and Sudarshan.
More informationProof-producing decompilation and compilation
Proof-producing decompilation and compilation Magnus Myreen May 2008 Introduction This talk concerns verification of functional correctness of machine code for commercial processors (ARM, PowerPC, x86...
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 informationImplicit Self-Adjusting Computation for Purely Functional Programs
Implicit elf-adjusting omputation for Purely Functional Programs Yan hen Joshua Dunfield Matthew A. Hammer Umut A. Acar Max Planck Institute for oftware ystems {chenyan, joshua, hammer, umut}@mpi-sws.org
More informationProofs of Correctness: Introduction to Axiomatic Verification
Proofs of Correctness: Introduction to Axiomatic Verification Introduction Weak correctness predicate Assignment statements Sequencing Selection statements Iteration 1 Introduction What is Axiomatic Verification?
More informationDifferential Privacy and Verification. Marco Gaboardi University at Buffalo, SUNY
Differential Privacy and Verification Marco Gaboardi University at Buffalo, SUNY Given a program P, is it differentially private? P Verification Tool yes? no? Proof P Verification Tool yes? no? Given a
More informationInformation Flow Inference for ML
POPL 02 INRIA Rocquencourt Projet Cristal Francois.Pottier@inria.fr http://cristal.inria.fr/~fpottier/ Vincent.Simonet@inria.fr http://cristal.inria.fr/~simonet/ Information flow analysis account number
More informationQuantum Functional Programming Language & Its Denotational Semantics
Quantum Functional Programming Language & Its Denotational Semantics Ichiro Hasuo Dept. Computer Science University of Tokyo Naohiko Hoshino Research Inst. for Math. Sci. Kyoto University Talk based on:
More informationMulticore Semantics and Programming
Multicore Semantics and Programming Peter Sewell Tim Harris University of Cambridge Oracle October November, 2015 p. 1 These Lectures Part 1: Multicore Semantics: the concurrency of multiprocessors and
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 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 informationLecture Notes on Combinatory Modal Logic
Lecture Notes on Combinatory Modal Logic 15-816: Modal Logic Frank Pfenning Lecture 9 February 16, 2010 1 Introduction The connection between proofs and program so far has been through a proof term assignment
More informationLecture Notes on Subject Reduction and Normal Forms
Lecture Notes on Subject Reduction and Normal Forms 15-814: Types and Programming Languages Frank Pfenning Lecture 4 September 13, 2018 1 Introduction In the last lecture we proved some key aspect of a
More informationProgram verification. Hoare triples. Assertional semantics (cont) Example: Semantics of assignment. Assertional semantics of a program
Program verification Assertional semantics of a program Meaning of a program: relation between its inputs and outputs; specified by input assertions (pre-conditions) and output assertions (post-conditions)
More informationCSED233: Data Structures (2017F) Lecture4: Analysis of Algorithms
(2017F) Lecture4: Analysis of Algorithms Daijin Kim CSE, POSTECH dkim@postech.ac.kr Running Time Most algorithms transform input objects into output objects. The running time of an algorithm typically
More informationAgent-Based HOL Reasoning 1
Agent-Based HOL Reasoning 1 Alexander Steen Max Wisniewski Christoph Benzmüller Freie Universität Berlin 5th International Congress on Mathematical Software (ICMS 2016) 1 This work has been supported by
More informationAbstract Machine for Software Process Models
Abstract Machine for Software Process Models Finite State Machine for SPM Waterfall Incremental Spiral Extreme Programming (XP) Scrum Generalized Abstract Machine for SPM Problem set: objectives with colors
More informationTowards a Practical Secure Concurrent Language
Towards a Practical Secure Concurrent Language Stefan Muller and Stephen Chong TR-05-12 Computer Science Group Harvard University Cambridge, Massachusetts Towards a Practical Secure Concurrent Language
More informationLecture Notes on Programs with Arrays
15-414: Bug Catching: Automated Program Verification Lecture Notes on Programs with Arrays Matt Fredrikson Ruben Martins Carnegie Mellon University Lecture 6 1 Introduction The previous lecture focused
More informationAdjoint Logic and Its Concurrent Semantics
Adjoint Logic and Its Concurrent Semantics Frank Pfenning ABCD Meeting, Edinburgh, December 18-19, 2017 Joint work with Klaas Pruiksma and William Chargin Outline Proofs as programs Linear sequent proofs
More informationRecent Advances in Bayesian Inference Techniques
Recent Advances in Bayesian Inference Techniques Christopher M. Bishop Microsoft Research, Cambridge, U.K. research.microsoft.com/~cmbishop SIAM Conference on Data Mining, April 2004 Abstract Bayesian
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 information2 Results I: Lifting Computer Science
Ben Greenman December 12, 2015 Call-By-Name, Call-By-Value, and the λ Calculus Abstract Plotkin s 1975 paper is strictly business. There are many theorems packed in the space of 35 pages, with little room
More informationSTCE. Mixed Integer Programming for Call Tree Reversal. J. Lotz, U. Naumann, S. Mitra
Mixed Integer Programming or J. Lotz, U. Naumann, S. Mitra LuFG Inormatik 12: Sotware and Tools or Computational Engineering () RWTH Aacen University and Cemical Engineering, Carnegie Mellon University
More informationCOMP 2600: Formal Methods for Software Engineeing
COMP 2600: Formal Methods for Software Engineeing Dirk Pattinson Semester 2, 2013 What do we mean by FORMAL? Oxford Dictionary in accordance with convention or etiquette or denoting a style of writing
More informationProgramming Languages and Compilers (CS 421)
Programming Languages and Compilers (CS 421) Sasa Misailovic 4110 SC, UIUC https://courses.engr.illinois.edu/cs421/fa2017/cs421a Based in part on slides by Mattox Beckman, as updated by Vikram Adve, Gul
More informationEnabling ENVI. ArcGIS for Server
Enabling ENVI throughh ArcGIS for Server 1 Imagery: A Unique and Valuable Source of Data Imagery is not just a base map, but a layer of rich information that can address problems faced by GIS users. >
More informationProof-Carrying Code in a Session-Typed Process Calculus
Proof-Carrying Code in a Session-Typed Process Calculus Frank Pfenning with Luís Caires and Bernardo Toninho Department of Computer Science Carnegie Mellon University 1st International Conference on Certified
More informationAn Informal introduction to Formal Verification
An Informal introduction to Formal Verification Osman Hasan National University of Sciences and Technology (NUST), Islamabad, Pakistan O. Hasan Formal Verification 2 Agenda q Formal Verification Methods,
More informationData Structures and Algorithms Running time and growth functions January 18, 2018
Data Structures and Algorithms Running time and growth functions January 18, 2018 Measuring Running Time of Algorithms One way to measure the running time of an algorithm is to implement it and then study
More informationHoare Logic I. Introduction to Deductive Program Verification. Simple Imperative Programming Language. Hoare Logic. Meaning of Hoare Triples
Hoare Logic I Introduction to Deductive Program Verification Işıl Dillig Program Spec Deductive verifier FOL formula Theorem prover valid contingent Example specs: safety (no crashes), absence of arithmetic
More informationLecture 05: High-Level Design with SysML. An Introduction to SysML. Where are we? What is a model? The Unified Modeling Language (UML)
Where are we? Systeme hoher Sicherheit und Qualität Universität Bremen, WS 2017/2018 Lecture 05: High-Level Design with SysML Christoph Lüth, Dieter Hutter, Jan Peleska 01: Concepts of Quality 02: Legal
More informationLecture Notes on Certifying Theorem Provers
Lecture Notes on Certifying Theorem Provers 15-317: Constructive Logic Frank Pfenning Lecture 13 October 17, 2017 1 Introduction How do we trust a theorem prover or decision procedure for a logic? Ideally,
More informationHoare Logic (I): Axiomatic Semantics and Program Correctness
Hoare Logic (I): Axiomatic Semantics and Program Correctness (Based on [Apt and Olderog 1991; Gries 1981; Hoare 1969; Kleymann 1999; Sethi 199]) Yih-Kuen Tsay Dept. of Information Management National Taiwan
More informationVerifying Concurrent Memory Reclamation Algorithms with Grace
Verifying Concurrent Memory Reclamation Algorithms with Grace Alexey Gotsman, Noam Rinetzky, and Hongseok Yang 1 IMDEA Software Institute 2 Tel-Aviv University 3 University of Oxford Abstract. Memory management
More informationLogic Programming Techniques for Reasoning with Probabilistic Ontologies
Logic Programming Techniques for Reasoning with Probabilistic Ontologies Riccardo Zese, Elena Bellodi, Evelina Lamma and Fabrizio Riguzzi University of Ferrara, Italy riccardo.zese@unife.it Zese, Bellodi,
More informationErly Marsh - a Model-Based Testing tool. Johan Blom, PhD
Erly Marsh - a Model-Based Testing tool Johan Blom, PhD 1 Motivation Mobile Arts Develops server software for mobile telecom operators (Location server, SMSC etc.) Implementations rather big and complicated
More informationOn Compensation Primitives as Adaptable Processes
On Compensation Primitives as Adaptable Processes Jovana Dedeić University of Novi Sad Jovanka Pantović (Novi Sad) and Jorge A. Pérez (Groningen) LAP 2015 - Dubrovnik, September 24, 2015 Outline 1 Context
More informationNATIONAL RADIO ASTRONOMY OBSERVATORY MEMORANDUM
NATIONAL RADIO ASTRONOMY OBSERVATORY MEMORANDUM DATE: September 16, 1996 TO: M. Clark, B. Garwood, D. Hogg, H. Liszt FROM: Ron Maddalena SUBJECT: GBT and Aips++ requirements for traditional, all-sky pointing
More informationMeta-Reasoning in a Concurrent Logical Framework
Meta-Reasoning in a Concurrent Logical Framework Iliano Cervesato and Jorge Luis Sacchini Carnegie Mellon University Chalmers University, 16 Oct 2013 Iliano Cervesato and Jorge Luis Sacchini Meta-Reasoning
More informationSubtyping and Intersection Types Revisited
Subtyping and Intersection Types Revisited Frank Pfenning Carnegie Mellon University International Conference on Functional Programming (ICFP 07) Freiburg, Germany, October 1-3, 2007 Joint work with Rowan
More informationFormal verification of IA-64 division algorithms
Formal verification of IA-64 division algorithms 1 Formal verification of IA-64 division algorithms John Harrison Intel Corporation IA-64 overview HOL Light overview IEEE correctness Division on IA-64
More informationAnalysis of Algorithms
Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Analysis of Algorithms Input Algorithm Analysis
More informationThe LCF Approach to Theorem Proving
The LCF Approach to Theorem Proving 1 The LCF Approach to Theorem Proving John Harrison Intel Corporation Ideas and historical context Key ideas of LCF Equational logic example More about HOL Light Programming
More informationOn the Semantics of Parsing Actions
On the Semantics of Parsing Actions Hayo Thielecke School of Computer Science University of Birmingham Birmingham B15 2TT, United Kingdom Abstract Parsers, whether constructed by hand or automatically
More informationFloyd-Hoare Style Program Verification
Floyd-Hoare Style Program Verification Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. 9 Feb 2017 Outline of this talk 1 Overview 2 Hoare Triples 3
More informationModel Checking. Boris Feigin March 9, University College London
b.feigin@cs.ucl.ac.uk University College London March 9, 2005 Outline 1 2 Techniques Symbolic 3 Software 4 Vs. Deductive Verification Summary Further Reading In a nutshell... Model checking is a collection
More informationCOMS 6100 Class Notes
COMS 6100 Class Notes Daniel Solus September 20, 2016 1 General Remarks The Lecture notes submitted by the class have been very good. Integer division seemed to be a common oversight when working the Fortran
More informationA Polymorphic Type and System for Multi-Staged Exceptions
A Polymorphic Type System for Multi-Staged Exceptions Seoul National University 08/04/2006 This is a joint work with In-Sook Kim and Kwangkeun Yi Outlie 1. Introduction and Examples 2. Operational Semantics
More informationSample Alignment Part
Sample Alignment Part Contents Contents 1. How to set Part conditions...1 1.1 Setting conditions... 1 1.2 Customizing scan conditions and slit conditions... 6 2. Sample alignment sequence...13 2.1 Direct
More informationAutomatic Generation of Polynomial Invariants for System Verification
Automatic Generation of Polynomial Invariants for System Verification Enric Rodríguez-Carbonell Technical University of Catalonia Talk at EPFL Nov. 2006 p.1/60 Plan of the Talk Introduction Need for program
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 informationProgram Slicing. Author: Mark Weiser Published in TSE, Presented by Peeratham (Karn) Techapalokul 10/13/2015
Program Slicing Author: Mark Weiser Published in TSE, 1984 Presented by Peeratham (Karn) Techapalokul 1/13/215 About Mark Weiser a chief scientist at Xerox PARC Widely considered to be the father of ubiquitous
More informationRESISTing Reliability Degradation through Proactive Reconfiguration
RESISTing Reliability Degradation through Proactive Reconfiguration D. Cooray, S. Malek, R. Roshandel, and D. Kilgore Summarized by Haoliang Wang September 28, 2015 Motivation An emerging class of system
More informationAlgebraic Trace Theory
Algebraic Trace Theory EE249 Roberto Passerone Material from: Jerry R. Burch, Trace Theory for Automatic Verification of Real-Time Concurrent Systems, PhD thesis, CMU, August 1992 October 21, 2002 ee249
More informationInformation Flow Inference for ML
Information Flow Inference for ML Vincent Simonet INRIA Rocquencourt Projet Cristal MIMOSA September 27, 2001 Information flow account number bank applet order vendor account H order L bank H vendor L
More information