Ownership, Encapsulation and the Disjointness of Type and Effect. Dave Clarke Utrecht University Sophia Drossopoulou Imperial College, London
|
|
- Erica Wright
- 5 years ago
- Views:
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 Ownership Application 1- restrict aliasing College c; College c ; We can deduce that c.ee and c.dramsoc
More informationA 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 informationExceptions 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 informationThe 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 informationTen 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 informationRoles 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 informationCapabilities 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 informationOwnership 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 informationDefaulting 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 informationHoare 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 informationHoare 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 informationSafe 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 informationOwnership 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 informationOwnership 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 informationQUT 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 informationHoare 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 informationControlling 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 informationA 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 informationWhy 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 informationIt 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 informationStatic 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 informationRuntime 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 informationDeadlock 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 informationObject 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 informationStatic 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 informationOwnership 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 informationShort 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 informationConnecting 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 informationNetwork 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 informationStatic 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 informationAlgorithm 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 informationASaP: 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 informationPlural 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 informationOwnership 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 informationAn 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 informationApplied 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 informationOn 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 informationOwnership 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 informationStatic 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 informationModular 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 informationReasoning 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 informationSheep 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 informationOOPLs - 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 informationPolygon 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 informationPractical 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 informationDetection 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 informationObject 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 informationGeneric 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 informationScalar 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 informationCapabilities 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 informationRely-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 informationHoare 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 informationCS 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 informationRepresentation 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 informationHoare 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 informationOwnership 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 informationTypes 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 informationFormal 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 informationObjects 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 informationAnalyzing 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 informationRefinement 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 informationffl 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 informationExercise 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 informationCS 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 informationHoare 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 informationTasks 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 informationExtending 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 informationGradual 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 informationThe 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 informationLecture 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 informationExistential 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 informationAnalyzing 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 informationOOPLs - 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 informationIT 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 informationReasoning 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 informationA 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 informationSubstructural 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 informationShading. 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 informationThe 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 informationCMSC 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 information9.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 informationModular 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 informationMetadata 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 informationTyping 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 information5 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 informationGoal 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 informationPractical 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 informationStructural 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 informationKotlin/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 informationTOWARDS 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 informationLecture 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 informationChapter 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 informationAtomicity 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 informationInteractive 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 informationFlexible 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 informationSummary 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 informationComputer 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 informationDesigning 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 informationRecord 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 informationRepresentation 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