Multiple Ownership Nicholas Cameron Sophia Drossopoulou James Noble Matthew Smith.

Slides:



Advertisements
Similar presentations
Lecture 4 Towards a Verifying Compiler: Data Abstraction Wolfram Schulte Microsoft Research Formal Methods 2006 Purity, Model fields, Inconsistency _____________.
Advertisements

Access control for geospatial information objects using/extending the eXtensible Access Control Markup Language Andreas Matheus, Technische Universität.
Taming Wildcards in Javas Type System Ross Tate Alan Leung Sorin Lerner University of California, San Diego.
Formal Methods in Software Engineering
1 A Model for Java with Wildcards Nicholas Cameron Sophia Drossopoulou Erik Ernst.
1 Variant Ownership with Existential Types Nicholas Cameron Sophia Drossopoulou Imperial College London.
1 Classes, Encapsulation, Methods and Constructors (Continued) Class definitions Instance data Encapsulation and Java modifiers Method declaration and.
Ownership, Encapsulation and the Disjointness of Type and Effect Dave Clarke, Sophia Drossopoulou/2002 Encapsulation seminar Dec Sharon Goldschlager.
Apr 2, 2002Mårten Trolin1 Previous lecture On the assignment Certificates and key management –Obtaining a certificate –Verifying a certificate –Certificate.
Chapter 9 Chapter 9: Managing Groups, Folders, Files, and Object Security.
Introduction to Robotics Kinematics. Link Description.
 SAP AG CSU Chico Working with IMG Copyright 1996, 1997, James R. Mensching, Gail Corbitt Contents of this file are for the exclusive use of the.
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
© M.E. Fayad SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José.
1 Accurate Object Detection with Joint Classification- Regression Random Forests Presenter ByungIn Yoo CS688/WST665.
NETWORK TOPOLOGY.
1 SD-Rtree: A Scalable Distributed Rtree Witold Litwin & Cédric du Mouza & Philippe Rigaux.
More with Methods (parameters, reference vs. value, array processing) Corresponds with Chapters 5 and 6.
CS143 Review: Normalization Theory Q: Is it a good table design? We can start with an ER diagram or with a large relation that contain a sample of the.
University Course Timetabling with Soft Constraints Hana Rudova, Keith Murray Presented by: Marlien Edward.
PL/SQLPL/SQL Oracle10g Developer: PL/SQL Programming Chapter 6 Functions.
PL/SQLPL/SQL Oracle11g : PL/SQL Programming Chapter 6 Functions.
1 Chapter Overview Creating Drive and Folder Shares Using Distributed File System Installing Network Printers Administering Network Printers Managing Share.
Distributed Information Retrieval Using a Multi-Agent System and The Role of Logic Programming.
1 Administering Shared Folders Understanding Shared Folders Planning Shared Folders Sharing Folders Combining Shared Folder Permissions and NTFS Permissions.
Existential Quantification for Variant Ownership Nicholas Cameron Sophia Drossopoulou Imperial College London (Victoria University of Wellington)‏
IS 475/675 - Introduction to Database Design
1 A Demo of Logical Database Design. 2 Aim of the demo To develop an understanding of the logical view of data and the importance of the relational model.
Chapter 12 Support for Object oriented Programming.
A Universe-Type-Based Verification Technique for Mutable Static Fields and Methods Alexander J Summers Sophia Drossopoulou Imperial College London Peter.
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter Five Managing Addresses.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Comp. Genomics Recitation 9 11/3/06 Gene finding using HMMs & Conservation.
STAR Event data storage and management in STAR V. Perevoztchikov Brookhaven National Laboratory,USA.
Linux+ Guide to Linux Certification, Third Edition
Multiple Ownership Nicholas Cameron Sophia Drossopoulou James Noble Matthew Smith.
CSC271 Database Systems Lecture # 7. Summary: Previous Lecture  Relational keys  Integrity constraints  Views.
Session 1 Module 1: Introduction to Data Integrity
Encoding Ownership Types in Java Nicholas Cameron James Noble Victoria University of Wellington, New Zealand.
SHEEP CLONING Paley Li, Nicholas Cameron, and James Noble 1.
1 Chapter Overview Understanding Shared Folders Planning, Sharing, and Connecting to Shared Folders Combining Shared Folder Permissions and NTFS Permissions.
Oracle9i Developer: PL/SQL Programming Chapter 5 Functions.
Before the Relational Model COMP3211 Advanced Databases Dr Nicholas Gibbins –
Towards a Semantic Model for Java Wildcards Sophia Drossopoulou Mariangiola Dezani-Ciancaglini Imperial College London Università di Torino Italy Nicholas.
Rationale Databases are an integral part of an organization. Aspiring Database Developers should be able to efficiently design and implement databases.
1 Sections 6.4 – 6.5 Methods and Variables Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Comparing Universes and Existential Ownership Types Nicholas Cameron Werner Dietl ETH Zurich Victoria University of Wellington.
On Subtyping, Wildcards, and Existential Types
Relationship Class What is a Relationship Class (3)
CHAPTER
Nicholas Cameron James Noble Victoria University of Wellington
Conceptual Design & ERD Modelling
Entity Relationship (E-R) Modeling
Computing Square Roots
Chapter 3: Using Methods, Classes, and Objects
Seminar 3 UML Class Diagram.
Classes, Encapsulation, Methods and Constructors (Continued)
HTTP/2.
Low Frequency Magnetic Fields...
What would be our focus ? Geometry deals with Declarative or “What is” knowledge. Computer Science deals with Imperative or “How to” knowledge 12/25/2018.
Availability Window Update
What would be our focus ? Geometry deals with Declarative or “What is” knowledge. Computer Science deals with Imperative or “How to” knowledge 2/23/2019.
UNIT V Run Time Environments.
Versioning and Variant Authoring Requirements
Database Design Dr. M.E. Fayad, Professor
A simple function.
Prof. Arfaoui. COM390 Chapter 6
Unit 6. Philosophies of Education Affecting Materials Reconstruction
Availability Window Termination
CMPT 120 Lecture 19 – Unit 3 – Graphics and Animation
Presentation transcript:

Multiple Ownership Nicholas Cameron Sophia Drossopoulou James Noble Matthew Smith

Background – Ownership Types Multiple Ownership Objects in Boxes MOJO Variance - ? Effects and Disjointness

Background

Ownership Types The heap is messy:

Ownership Types Organise it:

Ownership Types Give each object an owner:

Ownership Types class Project { Task t1; Task t2; List clients; }

Our Work

The Objects In Boxes Model

A Box is a Set of Objects

Objects in Boxes Single owner interpretation: An object is in its owner’s box

But, Programs are not Trees “We’re tired of trees… We should stop believing in trees, roots, radicles” Deleuze and Guattari, A Thousand Plateaus

One Owner is not Enough 75% of ownership structures require multiple ownership [34] Mitchell, ECOOP, ’06 Trees can not describe non-hierarchical structures

We Propose: Objects in Multiple Boxes Multiple Ownership: objects may be in more than one box An object with multiple owners is in the intersection of their boxes:

Objects in Multiple Boxes

MOJO

A Descriptive System Describes the heap Does not restrict references etc.

MOJO Class declarations have the usual, formal ownership parameters: class C …

MOJO Class declarations have the usual, formal ownership parameters: class C … Types may have multiple corresponding actual owner parameters: C

MOJO Class declarations have the usual, formal ownership parameters: class C … Types may have multiple corresponding actual owner parameters: C

MOJO Class declarations have the usual, formal ownership parameters: class C … Types may have multiple corresponding actual owner parameters: C

MOJO class Connection { … } class Client { Connection c; } class Server { Connection c; }

Variance

Variance Connection Some owner

Variance Connection Some box May be the intersection of several boxes Variance in the number of owners

Subtyping Subtyping with wildcards is variant with respect to owners: C

Subtyping Subtyping with wildcards is variant with respect to owners: C

Subtyping Subtyping with wildcards is variant with respect to owners: C

Subtyping Subtyping with wildcards is variant with respect to owners: C But: C

Strict typing – field assignment Strict method sends and assignments to deal with variance of owners: class D { D f; } D da; D d1; D d2; da.f = da;

Strict typing – field assignment Strict method sends and assignments to deal with variance of owners: class D { D f; } D da; D d1; D d2; da.f = da; d1.f = d2; 

Strict typing – field assignment Strict method sends and assignments to deal with variance of owners: class D { D f; } D da; D d1; D d2; D db; D dc; d1 = db; d2 = dc; da.f = da; d1.f = d2; 

Strict typing – field assignment

Constraints intersects disjoint

Constraints class C a intersects b, b disjoint c { … }

Constraints class D a intersects b { D } class E a disjoint b { }

Constraints class D a intersects b { D } class E a disjoint b { D  }

Constraints class D a intersects b { D Object } class E a disjoint b { D  }

Effects

Effects

Effects Task t1; Task t2; … t1.f; // reads x / writes ε

Effects Task t1; Task t2; … t1.f; // reads x / writes ε t1.f = t2.f; // reads x,y / writes x

Effects with Multiple Owners Task t1; Task t2; … t1.f; // reads x & ? / writes ε

Effects with Multiple Owners Task t1; Task t2; … t1.f; // reads x & ? / writes ε t1.f = t2.f; // reads x & ?,y & z / writes x & ?

Effects with Multiple Owners t1.f = t2.f; // reads x & ?,y & z/ writes x & ?

Disjointness Two expressions are disjoint if their effects do not overlap Complicated by ? – but & = intersection

Disjointness cl1 disjoint cl2 Connection c1; Connection c2;

Disjointness cl1 disjoint cl2 Connection c1; Connection c2; cl.drop(); //rd cl1 & ? / wr cl1 & ? c2.send(…); //rd cl2 & ? / wr cl2 & ?

Disjointness cl1 disjoint cl2 Connection c1; Connection c2; cl.drop(); //rd cl1 & ? / wr cl1 & ? c2.send(…); //rd cl2 & ? / wr cl2 & ? cl1 & ? # cl2 & ?

Disjointness cl1 disjoint cl2 Connection c1; Connection c2; cl.drop(); //rd cl1 & ? / wr cl1 & ? c2.send(…); //rd cl2 & ? / wr cl2 & ? cl1 & ? # cl2 & ? c2.send() does not affect c1.drop()

Future Work

Future Work Explore variant owners using existential types class TaskList { Task datum; TaskList next; }

Future Work Reference and modification control

Future Work Constraints Topology - inside Unary - may read, may write Binary – may point to, may modify

Summary Multiple Owners Objects in Boxes Variance Formalism - MOJO Effects Disjointness Thank you! Any questions? “structures like the city, which do require overlapping sets within them, are nevertheless persistently conceived as trees” Christopher Alexander, A City is not a Tree