tribal ownership
Download
Skip this Video
Download Presentation
Tribal Ownership

Loading in 2 Seconds...

play fullscreen
1 / 41

Tribal Ownership - PowerPoint PPT Presentation


  • 68 Views
  • Uploaded on

Tribal Ownership. Nicholas Cameron James Noble Tobias Wrigstad Victoria University of Wellington Uppsala University. Tribe. world. c1:Canvas. c2:Canvas. s1:Shape. s3:Shape. s2:Shape. s4:Shape. r1:Rectangle. r2:Rectangle. c3:InCanvas. Ownership. world. c1 :Canvas. c2 :Canvas.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Tribal Ownership' - eagan-pitts


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
tribal ownership

Tribal Ownership

Nicholas Cameron

James Noble

Tobias Wrigstad

Victoria University of Wellington

Uppsala University

tribe
Tribe

world

c1:Canvas

c2:Canvas

s1:Shape

s3:Shape

s2:Shape

s4:Shape

r1:Rectangle

r2:Rectangle

c3:InCanvas

...

ownership
Ownership

world

c1:Canvas

c2:Canvas

s1:Shape

s3:Shape

s2:Shape

s4:Shape

r1:Rectangle

r2:Rectangle

c3:InCanvas

...

tribal ownership1
Tribal Ownership

world

c1:Canvas

c2:Canvas

s1:Shape

s3:Shape

s2:Shape

s4:Shape

r1:Rectangle

r2:Rectangle

c3:InCanvas

...

virtual classes
Virtual Classes
  • Virtual Classes
  • Nested Classes
  • Family Polymorphism
  • Class Families
  • Nested Inheritance
  • ...
virtual classes1
Virtual Classes
  • Scala
  • Newspeak
  • GBeta
  • ...
tribe1
Tribe

class Canvas {

class Shape { ... }

class Circle extends Shape { ... }

class Rectangle extends Shape { ... }

...

}

class ICanvas extends Canvas {

class Shape {

void onClick() { ... }

}

}

tribe2
Tribe

class Canvas {

class Shape { ... }

class Circle extends Shape { ... }

class Rectangle extends Shape { ... }

...

}

class InCanvas extends Canvas {

class Shape {

void onClick() { ... }

}

}

tribe3
Tribe

Canvas

Shape

Circle

Rectangle

tribe4
Tribe

Canvas

InCanvas

Shape

Shape

onClick()

Circle

Circle

onClick()

Rectangle

Rectangle

onClick()

slide12
Canvas

InCanvas

Shape

Shape

onClick()

Circle

Circle

onClick()

Rectangle

Rectangle

onClick()

tribe5
Tribe

world

c1:Canvas

c2:Canvas

s1:Shape

s3:Shape

s2:Shape

s4:Shape

r1:Rectangle

r2:Rectangle

c3:InCanvas

...

tribe types
Tribe Types

c1.Shape

c2.Shape

tribe types1
Tribe Types

class Canvas {

this.Shape f1;

world.Canvas f2;

class Shape {

this.out.out.Canvasf3;

this.out.Circle f4;

}

class Circle extends Shape { ... }

}

tribe types2
Tribe Types

class Canvas {

this.Shape f1;

world.Canvas f2;

class Shape { ... }

}

world

f2:Canvas

f4:Canvas

:Canvas

f1:Shape

:Shape

f3:Circle

tribe types3
Tribe Types

class Canvas { ...

class Shape {

this.out.Circle f3;

this.out.out.Canvas f4;

}

}

world

f2:Canvas

f4:Canvas

:Canvas

f1:Shape

:Shape

f3:Circle

ownership types1
Ownership Types

class List {

ListNode first;

...

}

class ListNode {

ListNode next;

Object datum;

...

}

new List();

slide22
world

c1:Canvas

c2:Canvas

s1:Shape

s3:Shape

r1:Rectangle

r2:Rectangle

[email protected]

22

tribe6
Tribe

class Canvas {

this.Shape f1;

world.Canvas f2;

class Shape {

this.out.Circle f3;

this.out.out.Canvas f4;

}

class Circle extends Shape { ... }

}

tribal ownership3
Tribal Ownership

class Canvas {

this.Shape f1;

world.Canvas f2;

class Shape {

this.out.Circle f3;

this.out.out.Canvas f4;

}

class Circle extends Shape { ... }

}

what about list
What about List?

class List {

ListNode first;

...

}

class ListNode {

ListNode next;

Object datum;

...

}

new List();

what about list generics
What about List? - Generics

class List {

this.ListNode first;

class ListNode {

this.out.ListNode next;

Xdatum;

...

}

...

}

new this.List();

what about list generics1
What about List? - Generics

class List {

this.ListNode first;

class ListNode {

this.out.ListNode next;

X datum;

...

}

...

}

new this.List();

what about list1
What about List?

class List {

this.ListNode first;

class ListNode {

this.out.ListNode next;

X datum;

...

}

...

}

new this.List();

what about list module classes
What about List? – Module classes

module Collections {

class List {

...

}

}

class Foo imports world.Collections {

this.List f;

}

encapsulation1
Encapsulation

Owners-as-Dominators

Owners-as-Modifiers

encapsulation2
Encapsulation

Owners-as-Local-Dominators

o as ld1
O-as-LD

public

private

Only public classes can

be named externally

summary
Summary
  • Virtual classes in Tribe give ownership
    • No syntactic overhead
  • Generics
  • Module classes
    • Cross family inheritance
  • Owners-as-Local-Dominators
ad