Ownership, Encapsulation and the Disjointness of Type and Effect. Dave Clarke Utrecht University Sophia Drossopoulou Imperial College, London

Size: px
Start display at page:

Download "Ownership, Encapsulation and the Disjointness of Type and Effect. Dave Clarke Utrecht University Sophia Drossopoulou Imperial College, London"

Transcription

1 Ownership, Encapsulation and the Disjointness of Type and Effect Dave Clarke Utrecht University Sophia Drossopoulou Imperial College, London

2 Overview Review ownership types Describe a problem reasoning about programs Disjointness of types non-aliasing Disjointness of effects noninterference Contribution: The spatial consequences of ownership types.... and much more.

3 Object Spaghetti Here are two disjoint lists (I swear): List Link Main List Link Data Link Link Data Data Link Link Data Data How do we take arms against a sea of objects? I m not bad, I m just drawn that way.

4 Layering Dominance Each List owns its Links. Objects are inside their owners. Owners are dominators. Main Disallowed Data List Links All access paths from the root to an object contain its owner. No references from outside to inside crossing a boundary.

5 Owners form a tree Every object has an owner and is the owner of other objects. All objects are inside their owner and the root: world. world owner(p) p Tree captures nesting of objects we omit references.

6 The Basics of Ownership Typing Ownership types statically enfore the dominators property. Classes are parameterised by owners. class List<owner,other> { Link<this,other> head;... } The owner of the Link object is this. Link objects are not accessible outside of the List instance. Ownership typing provides discipline to object spaghetti. Object Lasagne?

7 Reasoning about Programs Given code such as: List<p,world> list1; List<q,world> list2; for (i = 0; i < 10; i++) { list1.add(new Data<world>(i)); } for (i = 0; i < 10; i++) { list2.add(new Data<world>(i)); } // exp1 // exp2 We want to answer questions such as: Are list1 and list2 aliases? Do expressions exp1 and exp2 interfere?

8 Ownership Typing Guarantees Two key disjointness relations: t # t objects of type t are disjoint from those of type t. Variables/fields with those types are not aliases. (reads... writes...) # (reads... writes...) Expressions producing those effects do not interfere. These are separation logics see Reynolds, O Hearn and others.

9 Preliminaries Disjointness of Owner p # q says that owners p and q are distinct For owners p and q, p + q p # q For (final) variables x and y, x : t and y : t and t # t x # y Once we have some disjointness, we readily obtain more.

10 Disjointness of Type t # t says that types t and t are disjoint no object has both types. If no object can be an instance of both classes c and c, then: c p i 1..n # c q j 1..m For types c p i 1..n and c q i 1..n, if p i # q i for some i 1..n, then c p i 1..n # c q i 1..n

11 Disjoint Types Restrict Aliasing Assume that p # q. List<p,world> list1; List<q,world> list2; We can deduce that List p, world # List q, world. Hence list1 and list2 are not aliases.

12 Disjoint Types Restrict Aliasing Assume that p # q. List<p,world> list1; List<q,world> list2; We can deduce that List p, world # List q, world. Hence list1 and list2 are not aliases. Furthermore, all of list1.head, list1.head.next, list1.head.next.next, are distinct from list2.head, list2.head.next, list2.head.next.next

13 Computational Effects Effects are based on primitive reads of and writes to object fields. The code x.f produces read effect: reads x The code x.f = y produces write effect: writes x Introduce effect shapes to represent collections of objects. Reasoning about disjointness of effect shapes reasoning about disjointness of effects reasoning about noninterference of expressions.

14 Effect shape: an object Syntactically: p p

15 Effect shape: a band of objects Syntactically: p.2 p

16 Effect shape: inside an object Syntactically: under(p) includes p p

17 Effect shape: inside objects of a band Syntactically: under(p.2) p... and of course the empty shape and the union of effect shapes.

18 Disjointness of Shape We need to know when two shapes are disjoint. If a read or write occurs to two disjoint shapes, then they do not effect the same objects. Of course we permit two reads to same object. noninterference of expressions.

19 Disjointness of Shape Example If p p and q p and p # q, then under(p) # under(q). p p q There are no pictures that are true a priori.

20 Disjoint Effects Restrict Interference Returning to our example... assume p # q, p p, and q p. List<p,world> list1; List<q,world> list2; for (i = 0; i < 10; i++) { list1.add(new Data<world>(i)); } for (i = 0; i < 10; i++) { list2.add(new Data<world>(i)); } // exp1 // exp2 If the effect on the add method is writes under(this), we can deduce that under(list1) # under(list2). Thus exp1 and exp2 do not interfere.

21 Loop Fusion Noninterference between exp1 and exp2 enables the loop fusion: List<p,world> list1; List<q,world> list2; for (i = 0; i < 10; i++) { list1.add(new Data<world>(i)); list2.add(new Data<world>(i)); } // exp1 // exp2 Because ownership types enforces the spatial separation of objects.

22 Related Work Greenhouse and Boyland (ECOOP 1999) Object-oriented effects system Effect shapes are orthogonal to ours: Vertical vs horizontal slicing of objects. Based on uniqueness rather than ownership Marrying the two approaches would be useful Boyapati, Lee, Rinard (OOPSLA 2002) Ownership Types for Safe Programming Nice application: Data race & deadlock prevention Different variant of ownership typing + locks effects Aldrich, Kostadinov, Chambers (OOPSLA 2002) Alias Annotations for Program Understanding Next!

23 Conclusion For an ownership types system, we provide: type disjointness test can determine non-aliasing effect disjointness tests can determine noninterference a visual model for reasoning. Ownership types are the driving force.

24 A taste of what s in the paper

Applications of Ownership Types. Bertinoro Summer School Ownership Types page 1 out of 23

Applications of Ownership Types. Bertinoro Summer School Ownership Types page 1 out of 23 Applications of Ownership Types Bertinoro Summer School Ownership Types page 1 out of 23 Ownership Application 1- restrict aliasing College c; College c ; We can deduce that c.ee and c.dramsoc

More information

A Fundamental Permission Interpretation for Ownership Types

A Fundamental Permission Interpretation for Ownership Types A Fundamental Permission Interpretation for Ownership Types Yang Zhao Nanjing University of Science and Technology 200 Xiao Ling Wei, Nanjing, China yangzhao@mail.njust.edu.cn John Boyland University of

More information

Exceptions in Ownership Type Systems

Exceptions in Ownership Type Systems Exceptions in Ownership Type Systems Werner Dietl and Peter Müller ETH Zürich, Switzerland {werner.dietl,peter.mueller@inf.ethz.ch http://www.sct.inf.ethz.ch/ Abstract. Ownership type systems are used

More information

The Benefits of Putting Objects into Boxes. Sophia Drossopoulou Department of Computing, Imperial College London

The Benefits of Putting Objects into Boxes. Sophia Drossopoulou Department of Computing, Imperial College London The Benefits of Putting Objects into Boxes Sophia Drossopoulou Department of Computing, Imperial College London This room is a mess! No, it is not! Everything is neatly categorised in its box! A common

More information

Ten Years of Ownership Types,

Ten Years of Ownership Types, Ten Years of Ownership Types, or the benefits of Putting Objects into Boxes Sophia Drossopoulou Department of Computing, Imperial College London We would like our surroundings* to be tidy *surroundings

More information

Roles for Owners. Work in Progress. Sophia Drossopoulou. James Noble. Dave Clarke ABSTRACT

Roles for Owners. Work in Progress. Sophia Drossopoulou. James Noble. Dave Clarke ABSTRACT Dave Clarke Katholieke Universiteit Leuven Belgium dave.clarke@cs.kuleuven.be Roles for Owners Work in Progress Sophia Drossopoulou Imperial College London United Kingdom s.drossopoulou@imperial.ac.uk

More information

Capabilities for Uniqueness and Borrowing

Capabilities for Uniqueness and Borrowing Capabilities for Uniqueness and Borrowing Philipp Haller and Martin Odersky EPFL 24 th European Conference on Object Oriented Programming June 24, 2010 Maribor, Slovenia Motivating Example actor { val

More information

Ownership Types for Object Synchronisation

Ownership Types for Object Synchronisation Ownership Types for Object Synchronisation Yi Lu, John Potter, and Jingling Xue Programming Languages and Compilers Group School of Computer Science and Engineering University of New South Wales Sydney,

More information

Defaulting Generic Java to Ownership

Defaulting Generic Java to Ownership Defaulting Generic Java to Ownership Alex Potanin, James Noble, Dave Clarke 1, and Robert Biddle 2 {alex, kjx@mcs.vuw.ac.nz, dave@cwi.nl, and robert biddle@carleton.ca School of Mathematical and Computing

More information

Hoare logic. WHILE p, a language with pointers. Introduction. Syntax of WHILE p. Lecture 5: Introduction to separation logic

Hoare logic. WHILE p, a language with pointers. Introduction. Syntax of WHILE p. Lecture 5: Introduction to separation logic Introduction Hoare logic Lecture 5: Introduction to separation logic In the previous lectures, we have considered a language, WHILE, where mutability only concerned program variables. Jean Pichon-Pharabod

More information

Hoare logic. Lecture 5: Introduction to separation logic. Jean Pichon-Pharabod University of Cambridge. CST Part II 2017/18

Hoare logic. Lecture 5: Introduction to separation logic. Jean Pichon-Pharabod University of Cambridge. CST Part II 2017/18 Hoare logic Lecture 5: Introduction to separation logic Jean Pichon-Pharabod University of Cambridge CST Part II 2017/18 Introduction In the previous lectures, we have considered a language, WHILE, where

More information

Safe Runtime Downcasts With Ownership Types

Safe Runtime Downcasts With Ownership Types Safe Runtime Downcasts With Ownership Types Chandrasekhar Boyapati, Robert Lee, and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology 200 Technology Square, Cambridge,

More information

Ownership Types. Fabian Muehlboeck. April 11, 2012

Ownership Types. Fabian Muehlboeck. April 11, 2012 Ownership Types Fabian Muehlboeck April 11, 2012 Objects encapsule data and are a nice way to structure a stateful, imperative program, enabling us to have what we call separation of concerns. We would

More information

Ownership Downgrading for Ownership Types

Ownership Downgrading for Ownership Types Ownership Downgrading for Ownership Types Yi Lu, John Potter, and Jingling Xue Programming Languages and Compilers Group School of Computer Science and Engineering University of New South Wales, Sydney

More information

QUT Digital Repository:

QUT Digital Repository: QUT Digital Repository: http://eprints.qut.edu.au/ Craik, Andrew J. and Kelly, Wayne A. (2010) Using Ownership to Reason About Inherent Parallelism in Object-Oriented Programs. In: Lecture Notes in Computer

More information

Hoare Logic and Model Checking

Hoare Logic and Model Checking Hoare Logic and Model Checking Kasper Svendsen University of Cambridge CST Part II 2016/17 Acknowledgement: slides heavily based on previous versions by Mike Gordon and Alan Mycroft Pointers Pointers and

More information

Controlling Mutation and Aliases with Fractional Permissions

Controlling Mutation and Aliases with Fractional Permissions Controlling Mutation and Aliases with Fractional Permissions John Boyland University of Wisconsin- Milwaukee ECOOP 12 Outline of Session I. Fractional Permissions II. Applications III. Problems I. Fractional

More information

A Parameterized Type System for Race-Free Java Programs

A Parameterized Type System for Race-Free Java Programs A Parameterized Type System for Race-Free Java Programs Chandrasekhar Boyapati Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology {chandra, rinard@lcs.mit.edu Data races

More information

Why we should not add readonly to Java (yet)

Why we should not add readonly to Java (yet) Why we should not add readonly to Java (yet) John Boyland June 30, 2005 Abstract In this paper, I examine some of reasons that readonly style qualifiers have been proposed for Java, and also the principles

More information

It turns out that races can be eliminated without sacrificing much in terms of performance or expressive power.

It turns out that races can be eliminated without sacrificing much in terms of performance or expressive power. The biggest two problems in multi-threaded programming are races and deadlocks. Races reached new levels with the introduction of relaxed memory processors. It turns out that races can be eliminated without

More information

Static Inference of Universe Types

Static Inference of Universe Types Static Inference of Universe Types Ana Milanova Rensselaer Polytechnic Institute milanova@cs.rpi.edu Abstract The Universe type system is an ownership type system which enforces the owners-as-modifiers

More information

Runtime Universe Type Inference

Runtime Universe Type Inference Runtime Universe Type Inference Werner Dietl ETH Zurich, Switzerland Werner.Dietl@inf.ethz.ch http://www.sct.inf.ethz.ch/ Peter Müller Microsoft Research, USA mueller@microsoft.com Abstract The Universe

More information

Deadlock Freedom Through Object Ownership

Deadlock Freedom Through Object Ownership Deadlock Freedom Through Object Ownership Eric Kerfoot Oxford University Computing Laboratory Wolfson Building, Parks Road Oxford, UK eric.kerfoot@comlab.ox.ac.uk Steve McKeever Oxford University Computing

More information

Object Ownership in Program Verification

Object Ownership in Program Verification Object Ownership in Program Verification Werner Dietl 1 and Peter Müller 2 1 University of Washington wmdietl@cs.washington.edu 2 ETH Zurich peter.mueller@inf.ethz.ch Abstract. Dealing with aliasing is

More information

Static Use-Based Object Confinement. Christian Skalka and Scott Smith The Johns Hopkins University

Static Use-Based Object Confinement. Christian Skalka and Scott Smith The Johns Hopkins University Static Use-Based Object Confinement Christian Skalka and Scott Smith The Johns Hopkins University Object confinement: what is it? Object confinement is concerned with the encapsulation, or protection,

More information

Ownership Transfer in Universe Types

Ownership Transfer in Universe Types Ownership Transfer in Universe Types Peter Müller Microsoft Research, USA mueller@microsoft.com Arsenii Rudich ETH Zurich, Switzerland arsenii.rudich@inf.ethz.ch Abstract Ownership simplifies reasoning

More information

Short Paper: Rusty Types for Solid Safety

Short Paper: Rusty Types for Solid Safety Short Paper: Rusty Types for Solid Safety Sergio Benitez Stanford University 353 Serra Mall Stanford, CA 94305 sbenitez@stanford.edu ABSTRACT Programs operating close to the metal necessarily handle memory

More information

Connecting Effects and Uniqueness with Adoption

Connecting Effects and Uniqueness with Adoption Int l Workshop on Aliasing, Confinement and Ownership in OOP, 2003 Connecting Effects and Uniqueness with Adoption John Tang Boyland University of Wisconsin Milwaukee Abstract. In a previous paper, we

More information

Network Security - ISA 656 Intro to Firewalls

Network Security - ISA 656 Intro to Firewalls Network Security - ISA 656 Intro to s Angelos Stavrou August 20, 2008 What s a Intro to s What s a Why Use s? Traditional s Advantages Philosophies Devices examining traffic making access control decisions

More information

Static Use Based Object Confinement. Christian Skalka and Scott Smith The Johns Hopkins University

Static Use Based Object Confinement. Christian Skalka and Scott Smith The Johns Hopkins University Static Use Based Object Confinement Christian Skalka and Scott Smith The Johns Hopkins University Object confinement: what is it? Object confinement is concerned with the encapsulation, or protection,

More information

Algorithm Analysis Advanced Data Structure. Chung-Ang University, Jaesung Lee

Algorithm Analysis Advanced Data Structure. Chung-Ang University, Jaesung Lee Algorithm Analysis Advanced Data Structure Chung-Ang University, Jaesung Lee Priority Queue, Heap and Heap Sort 2 Max Heap data structure 3 Representation of Heap Tree 4 Representation of Heap Tree 5 Representation

More information

ASaP: Annotations for Safe Parallelism in Clang. Alexandros Tzannes, Vikram Adve, Michael Han, Richard Latham

ASaP: Annotations for Safe Parallelism in Clang. Alexandros Tzannes, Vikram Adve, Michael Han, Richard Latham ASaP: Annotations for Safe Parallelism in Clang Alexandros Tzannes, Vikram Adve, Michael Han, Richard Latham Motivation Debugging parallel code is hard!! Many bugs are hard to reason about & reproduce

More information

Plural and : Protocols in Practice. Jonathan Aldrich Workshop on Behavioral Types April School of Computer Science

Plural and : Protocols in Practice. Jonathan Aldrich Workshop on Behavioral Types April School of Computer Science Plural and : Protocols in Practice Jonathan Aldrich Workshop on Behavioral Types April 2011 School of Computer Science Empirical Study: Protocols in Java Object Protocol [Beckman, Kim, & A to appear in

More information

Ownership Type Systems and Dependent Classes

Ownership Type Systems and Dependent Classes Ownership Type Systems and Dependent Classes Werner Dietl ETH Zurich Werner.Dietl@inf.ethz.ch Peter Müller Microsoft Research mueller@microsoft.com Abstract Ownership type systems structure the heap and

More information

An overview of Mezzo

An overview of Mezzo An overview of Mezzo François Pottier INRIA Bertinoro, June 2015 1 / 91 Acknowledgements Jonathan Protzenko, Thibaut Balabonski, Henri Chataing, Armaël Guéneau, Cyprien Mangin 2 / 91 What is Mezzo? An

More information

Applied Unified Ownership. Capabilities for Sharing Across Threads

Applied Unified Ownership. Capabilities for Sharing Across Threads Applied Unified Ownership or Capabilities for Sharing Across Threads Elias Castegren Tobias Wrigstad DRF transfer parallel programming AppliedUnified Ownership memory management placement in pools (previous

More information

On the Structure of Sharing in Open Concurrent Java Programs

On the Structure of Sharing in Open Concurrent Java Programs On the Structure of Sharing in Open Concurrent Java Programs Yin Liu Department of Computer Science Rensselaer Polytechnic Institute liuy@csrpiedu Ana Milanova Department of Computer Science Rensselaer

More information

Ownership Types for Object Encapsulation

Ownership Types for Object Encapsulation Ownership Types for Object Encapsulation Chandrasekhar Boyapati Laboratory for Computer Science Massachusetts Intitute of Technology Cambridge, MA 02139 chandra@lcs.mit.edu Barbara Liskov Laboratory for

More information

Static Deadlock Detection for Java Libraries

Static Deadlock Detection for Java Libraries Static Deadlock Detection for Java Libraries Amy Williams, William Thies, and Michael D. Ernst Massachusetts Institute of Technology Deadlock Each deadlocked thread attempts to acquire a lock held by another

More information

Modular Reasoning about Aliasing using Permissions

Modular Reasoning about Aliasing using Permissions Modular Reasoning about Aliasing using Permissions John Boyland University of Wisconsin- Milwaukee FOAL 2015 Summary Permissions are non-duplicable tokens that give access to state. Permissions give effective

More information

Reasoning about Object Structures Using Ownership

Reasoning about Object Structures Using Ownership Reasoning about Object Structures Using Ownership Peter Müller ETH Zurich, Switzerland Peter.Mueller@inf.ethz.ch Abstract. Many well-established concepts of object-oriented programming work for individual

More information

Sheep Cloning with Ownership Types

Sheep Cloning with Ownership Types Sheep Cloning with Ownership Types Paley Li Victoria University of Wellington New Zealand lipale@ecs.vuw.ac.nz Nicholas Cameron Mozilla Corporation ncameron@mozilla.com James Noble Victoria University

More information

OOPLs - call graph construction Compile-time analysis of reference variables and fields. Example

OOPLs - call graph construction Compile-time analysis of reference variables and fields. Example OOPLs - call graph construction Compile-time analysis of reference variables and fields Determines to which objects (or types of objects) a reference variable may refer during execution Primarily hierarchy-based

More information

Polygon Filling. Can write frame buffer one word at time rather than one bit. 2/3/2000 CS 4/57101 Lecture 6 1

Polygon Filling. Can write frame buffer one word at time rather than one bit. 2/3/2000 CS 4/57101 Lecture 6 1 Polygon Filling 2 parts to task which pixels to fill what to fill them with First consider filling unclipped primitives with solid color Which pixels to fill consider scan lines that intersect primitive

More information

Practical Affine Types and Typestate-Oriented Programming

Practical Affine Types and Typestate-Oriented Programming Practical Affine Types and Typestate-Oriented Programming Philipp Haller KTH Royal Institute of Technology Stockholm, Sweden Dagstuhl Seminar 17051 Theory and Applications of Behavioural Types Schloss

More information

Detection of Deadlock Potentials in Multi-Threaded Programs

Detection of Deadlock Potentials in Multi-Threaded Programs Detection of Deadlock Potentials in Multi-Threaded Programs Rahul Agarwal 1, Saddek Bensalem, Eitan Farchi, Klaus Havelund 2, Yarden Nir-Buchbinder, Scott D. Stoller 1, Shmuel Ur, and Liqiang Wang 1 November

More information

Object Cloning for Ownership Systems

Object Cloning for Ownership Systems Object Cloning for Ownership Systems by Paley Guangping Li A thesis submitted to the Victoria University of Wellington in fulfilment of the requirements for the degree of Doctor of Philosophy in Computer

More information

Generic Ownership: A Practical Approach to Ownership and Confinement in Object-Oriented Programming Languages

Generic Ownership: A Practical Approach to Ownership and Confinement in Object-Oriented Programming Languages Generic Ownership: A Practical Approach to Ownership and Confinement in Object-Oriented Programming Languages by Alex Potanin A thesis submitted to the Victoria University of Wellington in fulfilment of

More information

Scalar Visualization

Scalar Visualization Scalar Visualization 5-1 Motivation Visualizing scalar data is frequently encountered in science, engineering, and medicine, but also in daily life. Recalling from earlier, scalar datasets, or scalar fields,

More information

Capabilities for Uniqueness and Borrowing

Capabilities for Uniqueness and Borrowing Capabilities for Uniqueness and Borrowing Philipp Haller and Martin Odersky EPFL, Switzerland {philipp.haller, martin.odersky}@epfl.ch Abstract. An important application of unique object references is

More information

Rely-Guarantee Protocols for Safe Interference over Shared Memory

Rely-Guarantee Protocols for Safe Interference over Shared Memory Rely-Guarantee Protocols for Safe Interference over Shared Memory Thesis Defense Filipe Militão December 15, 2015. Co-advised by Jonathan Aldrich (CMU) and Luís Caires (UNL). Software Defects Our over

More information

Hoare Logic and Model Checking

Hoare Logic and Model Checking Hoare Logic and Model Checking Kasper Svendsen University of Cambridge CST Part II 2016/17 Acknowledgement: slides heavily based on previous versions by Mike Gordon and Alan Mycroft Introduction In the

More information

CS 347 Parallel and Distributed Data Processing

CS 347 Parallel and Distributed Data Processing CS 347 Parallel and Distributed Data Processing Spring 2016 Notes 5: Concurrency Control Topics Data Database design Queries Decomposition Localization Optimization Transactions Concurrency control Reliability

More information

Representation Independence, Confinement and Access Control

Representation Independence, Confinement and Access Control Representation Independence, Confinement and Access Control Anindya Banerjee and David Naumann ab@cis.ksu.edu and naumann@cs.stevens-tech.edu Kansas State University and Stevens Institute of Technology,

More information

Hoare Logic and Model Checking. A proof system for Separation logic. Introduction. Separation Logic

Hoare Logic and Model Checking. A proof system for Separation logic. Introduction. Separation Logic Introduction Hoare Logic and Model Checking In the previous lecture we saw the informal concepts that Separation Logic is based on. Kasper Svendsen University of Cambridge CST Part II 2016/17 This lecture

More information

Ownership Types for Safe Programming: Preventing Data Races and Deadlocks

Ownership Types for Safe Programming: Preventing Data Races and Deadlocks ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), November 2002 Ownership Types for Safe Programming: Preventing Data Races and Deadlocks Chandrasekhar Boyapati

More information

Types for Deep/Shallow Cloning

Types for Deep/Shallow Cloning Types for Deep/Shallow Cloning Ka Wai Cheng kwc108@ic.ac.uk Supervisor: Prof. Sophia Drossopoulou scd@doc.ic.ac.uk Department of Computing Imperial College London June 19, 2012 Abstract In Java, exact

More information

Formal Techniques for Java-like Programs (FTfJP)

Formal Techniques for Java-like Programs (FTfJP) Formal Techniques for Java-like Programs (FTfJP) Alessandro Coglio 1, Marieke Huisman 2, Joseph R. Kiniry 3, Peter Müller 4, and Erik Poll 3 1 Kestrel Institute, USA 2 INRIA Sophia-Antipolis, France 3

More information

Objects as Session-Typed Processes

Objects as Session-Typed Processes Objects as Session-Typed Processes Stephanie Balzer and Frank Pfenning Computer Science Department, Carnegie Mellon University AGERE! 2015 The essence of object-orientation 2 The essence of object-orientation

More information

Analyzing Security Architectures

Analyzing Security Architectures Analyzing Security Architectures Marwan Abi-Antoun Dept. of Computer Science Wayne State University mabiantoun@wayne.edu Jeffrey M. Barnes Inst. for Software Research Carnegie Mellon University jmbarnes@cs.cmu.edu

More information

Refinement Types for TypeScript

Refinement Types for TypeScript Refinement Types for TypeScript Panagiotis Vekris Benjamin Cosman Ranjit Jhala University of California, San Diego PLDI 16 Thursday, June 16 Extensible static analyses for modern scripting languages 2

More information

ffl Content-Based Classification: The values stored in an object often determine the role that it plays. ffl Relative Classification: The object's poi

ffl Content-Based Classification: The values stored in an object often determine the role that it plays. ffl Relative Classification: The object's poi Object Models, Heaps, and Interpretations Martin Rinard and Viktor Kuncak frinard,vkuncakg@lcs.mit.edu January 16, 2001 Abstract This paper explores the use of object models for specifying verifiable heap

More information

Exercise 11 Ownership Types and Non-null Types December 8, 2017

Exercise 11 Ownership Types and Non-null Types December 8, 2017 Concepts of Object-Oriented Programming AS 2017 Exercise 11 Ownership Types and Non-null Types December 8, 2017 Task 1 Consider the following method signatures: peer Object foo(any String el); peer Object

More information

CS 347 Parallel and Distributed Data Processing

CS 347 Parallel and Distributed Data Processing CS 347 Parallel and Distributed Data Processing Spring 2016 Notes 5: Concurrency Control Topics Data Database design Queries Decomposition Localization Optimization Transactions Concurrency control Reliability

More information

Hoare logic. A proof system for separation logic. Introduction. Separation logic

Hoare logic. A proof system for separation logic. Introduction. Separation logic Introduction Hoare logic Lecture 6: Examples in separation logic In the previous lecture, we saw how reasoning about pointers in Hoare logic was problematic, which motivated introducing separation logic.

More information

Tasks with Effects. A Model for Disciplined Concurrent Programming. Abstract. 1. Motivation

Tasks with Effects. A Model for Disciplined Concurrent Programming. Abstract. 1. Motivation Tasks with Effects A Model for Disciplined Concurrent Programming Stephen Heumann Vikram Adve University of Illinois at Urbana-Champaign {heumann1,vadve}@illinois.edu Abstract Today s widely-used concurrent

More information

Extending SystemVerilog Data Types to Nets

Extending SystemVerilog Data Types to Nets Extending SystemVerilog Data Types to Nets SystemVerilog extended Verilog by adding powerful new data types and operators that can be used to declare and manipulate parameters and variables. Extensions

More information

Gradual Ownership Types

Gradual Ownership Types Gradual Ownership Types Ilya Sergey and Dave Clarke IBBT-DistriNet, Department of Computer Science, Katholieke Universiteit Leuven, Belgium {firstname.lastname}@cs.kuleuven.be Abstract. Gradual Ownership

More information

The practice of Mezzo

The practice of Mezzo The practice of Mezzo François Pottier INRIA IHP, April 2014 1 / 83 Acknowledgements Jonathan Protzenko, Thibaut Balabonski, Henri Chataing, Armaël Guéneau, Cyprien Mangin 2 / 83 Overview Two lectures

More information

Lecture 3 February 9, 2010

Lecture 3 February 9, 2010 6.851: Advanced Data Structures Spring 2010 Dr. André Schulz Lecture 3 February 9, 2010 Scribe: Jacob Steinhardt and Greg Brockman 1 Overview In the last lecture we continued to study binary search trees

More information

Existential Types for Variance Java Wildcards and Ownership Types

Existential Types for Variance Java Wildcards and Ownership Types University of London Imperial College of Science, Technology and Medicine Department of Computing Existential Types for Variance Java Wildcards and Ownership Types Nicholas Cameron Submitted in part fulfilment

More information

Analyzing Security Architectures

Analyzing Security Architectures Analyzing Security Architectures Marwan Abi-Antoun Dept. of Computer Science Wayne State University mabiantoun@wayne.edu Jeffrey M. Barnes Inst. for Software Research Carnegie Mellon University jmbarnes@cs.cmu.edu

More information

OOPLs - call graph construction. Example executed calls

OOPLs - call graph construction. Example executed calls OOPLs - call graph construction Compile-time analysis of reference variables and fields Problem: how to resolve virtual function calls? Need to determine to which objects (or types of objects) a reference

More information

IT 540 Operating Systems ECE519 Advanced Operating Systems

IT 540 Operating Systems ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (5 th Week) (Advanced) Operating Systems 5. Concurrency: Mutual Exclusion and Synchronization 5. Outline Principles

More information

Reasoning About Inherent Parallelism in Modern Object-Oriented Languages

Reasoning About Inherent Parallelism in Modern Object-Oriented Languages Reasoning About Inherent Parallelism in Modern Object-Oriented Languages Wayne Reid, Wayne Kelly and Andrew Craik Faculty of Information Technology Queensland University of Technology 2 George Street,

More information

A Field Study in Static Extraction of Runtime Architectures

A Field Study in Static Extraction of Runtime Architectures A Field Study in Static Extraction of Runtime Architectures Marwan Abi-Antoun Jonathan Aldrich School of Computer Science Carnegie Mellon University Acknowledgements SIGSOFT CAPS for travel funding LogicBlox

More information

Substructural Typestates

Substructural Typestates Programming Languages meets Program Verification 2014 Substructural Typestates Filipe Militão (CMU & UNL) Jonathan Aldrich (CMU) Luís Caires (UNL) Motivation! File file = new File( out.txt );! file.write(

More information

Shading. Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller/Fuhrmann

Shading. Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller/Fuhrmann Shading Introduction to Computer Graphics Torsten Möller Machiraju/Zhang/Möller/Fuhrmann Reading Chapter 5.5 - Angel Chapter 6.3 - Hughes, van Dam, et al Machiraju/Zhang/Möller/Fuhrmann 2 Shading Illumination

More information

The Mezzo case. Jonathan Protzenko. François Pottier FSFMA'13. Why design a new programming language?

The Mezzo case. Jonathan Protzenko. François Pottier FSFMA'13. Why design a new programming language? Why design a new programming language? The Mezzo case François Pottier francois.pottier@inria.fr Jonathan Protzenko jonathan.protzenko@inria.fr INRIA FSFMA'13 Jonathan Protzenko (INRIA) The Mezzo language

More information

CMSC 754 Computational Geometry 1

CMSC 754 Computational Geometry 1 CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College

More information

9.5 Equivalence Relations

9.5 Equivalence Relations 9.5 Equivalence Relations You know from your early study of fractions that each fraction has many equivalent forms. For example, 2, 2 4, 3 6, 2, 3 6, 5 30,... are all different ways to represent the same

More information

Modular specification of frame properties in JML

Modular specification of frame properties in JML CONCURRENCY PRACTICE AND EXPERIENCE Concurrency: Pract. Exper. 2002; 1:1 [Version: 2001/03/05 v2.01] Modular specification of frame properties in JML Peter Müller 1, Arnd Poetzsch-Heffter 2, and Gary T.

More information

Metadata for Component Optimisation

Metadata for Component Optimisation Metadata for Component Optimisation Olav Beckmann, Paul H J Kelly and John Darlington ob3@doc.ic.ac.uk Department of Computing, Imperial College London 80 Queen s Gate, London SW7 2BZ United Kingdom Metadata

More information

Typing Data. Chapter Recursive Types Declaring Recursive Types

Typing Data. Chapter Recursive Types Declaring Recursive Types Chapter 27 Typing Data 27.1 Recursive Types 27.1.1 Declaring Recursive Types We saw in the previous lecture how rec was necessary to write recursive programs. But what about defining recursive types? Recursive

More information

5 Graphs

5 Graphs 5 Graphs jacques@ucsd.edu Some of the putnam problems are to do with graphs. They do not assume more than a basic familiarity with the definitions and terminology of graph theory. 5.1 Basic definitions

More information

Goal of Concurrency Control. Concurrency Control. Example. Solution 1. Solution 2. Solution 3

Goal of Concurrency Control. Concurrency Control. Example. Solution 1. Solution 2. Solution 3 Goal of Concurrency Control Concurrency Control Transactions should be executed so that it is as though they executed in some serial order Also called Isolation or Serializability Weaker variants also

More information

Practical Static Extraction and Conformance Checking of the Runtime Architecture of Object-Oriented Systems

Practical Static Extraction and Conformance Checking of the Runtime Architecture of Object-Oriented Systems Practical Static Extraction and Conformance Checking of the Runtime Architecture of Object-Oriented Systems Marwan Abi-Antoun Jonathan Aldrich School of Computer Science Carnegie Mellon University 2009

More information

Structural Lock Correlation with Ownership Types

Structural Lock Correlation with Ownership Types Structural Lock Correlation with Ownership Types Yi Lu, John Potter, and Jingling Xue Programming Languages and Compilers Group School of Computer Science and Engineering University of New South Wales,

More information

Kotlin/Native concurrency model. nikolay

Kotlin/Native concurrency model. nikolay Kotlin/Native concurrency model nikolay igotti@jetbrains What do we want from concurrency? Do many things concurrently Easily offload tasks Get notified once task a task is done Share state safely Mutate

More information

TOWARDS A REGION-BASED CALCULUS FOR ENERGY-AWARE PROGRAMMING

TOWARDS A REGION-BASED CALCULUS FOR ENERGY-AWARE PROGRAMMING STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LVIII, Number 1, 2013 TOWARDS A REGION-BASED CALCULUS FOR ENERGY-AWARE PROGRAMMING FLORIN CRĂCIUN, SIMONA MOTOGNA, AND BAZIL PÂRV Abstract. Energy efficiency

More information

Lecture 17: Solid Modeling.... a cubit on the one side, and a cubit on the other side Exodus 26:13

Lecture 17: Solid Modeling.... a cubit on the one side, and a cubit on the other side Exodus 26:13 Lecture 17: Solid Modeling... a cubit on the one side, and a cubit on the other side Exodus 26:13 Who is on the LORD's side? Exodus 32:26 1. Solid Representations A solid is a 3-dimensional shape with

More information

Chapter 8 :: Composite Types

Chapter 8 :: Composite Types Chapter 8 :: Composite Types Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier 1 Chapter08_Composite_Types_4e - Tue November 21, 2017 Records (Structures) and Variants

More information

Atomicity via Source-to-Source Translation

Atomicity via Source-to-Source Translation Atomicity via Source-to-Source Translation Benjamin Hindman Dan Grossman University of Washington 22 October 2006 Atomic An easier-to-use and harder-to-implement primitive void deposit(int x){ synchronized(this){

More information

Interactive Refinement of Hierarchical Object Graphs

Interactive Refinement of Hierarchical Object Graphs Interactive Refinement of Hierarchical Object Graphs Ebrahim Khalaj July 28, 2016 Department of Computer Science Wayne State University Detroit, MI 48202 Abstract We propose an approach where developers

More information

Flexible Immutability with Frozen Objects

Flexible Immutability with Frozen Objects Flexible Immutability with Frozen Objects K. Rustan M. Leino 1, Peter Müller 1, and Angela Wallenburg 2 1 Microsoft Research {leino,mueller@microsoft.com 2 Chalmers University of Technology and Göteborg

More information

Summary Semaphores. Passing the Baton any await statement. Synchronisation code not linked to the data

Summary Semaphores. Passing the Baton any await statement. Synchronisation code not linked to the data Lecture 4 Monitors Summary Semaphores Good news Simple, efficient, expressive Passing the Baton any await statement Bad news Low level, unstructured omit a V: deadlock omit a P: failure of mutex Synchronisation

More information

Computer Vision & Digital Image Processing. Image segmentation: thresholding

Computer Vision & Digital Image Processing. Image segmentation: thresholding Computer Vision & Digital Image Processing Image Segmentation: Thresholding Dr. D. J. Jackson Lecture 18-1 Image segmentation: thresholding Suppose an image f(y) is composed of several light objects on

More information

Designing Tableau Prep

Designing Tableau Prep # T C 1 8 # T a b l e a u d e s i g n Designing Tableau Prep Clark Wildenradt Staff User Experience Designer Tableau Software I am a Midwesterner I am a Father I am a Designer What is Tableau Prep?

More information

Record Types. A record is a possibly heterogeneous aggregate of data elements in which the individual elements are identified by names Design issues:

Record Types. A record is a possibly heterogeneous aggregate of data elements in which the individual elements are identified by names Design issues: Record Types A record is a possibly heterogeneous aggregate of data elements in which the individual elements are identified by names Design issues: o What is the syntactic form of references to the field?

More information

Representation Independence, Confinement and Access Control

Representation Independence, Confinement and Access Control Representation Independence, Confinement and Access Control Anindya Banerjee and David Naumann ab@cis.ksu.edu and naumann@cs.stevens-tech.edu Kansas State University and Stevens Institute of Technology

More information