Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... ·...

99
Component‐based design in Tako (a case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo

Transcript of Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... ·...

Page 1: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Component‐baseddesigninTako(acasestudy)

ArunSudhir•GregoryKulczycki•JyotindraVasudeo

Page 2: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 3: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

GregoryKulczycki

Page 4: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

GregoryKulczycki

ArunSudhir

Page 5: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

GregoryKulczycki

ArunSudhir

JyotindraVasudeo

Page 6: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 7: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

FallsChurch,VA

Page 8: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Component‐baseddesigninTako(acasestudy)

Page 9: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

(1)WhatisTako?

(2)WhatisTakodesign?

Page 10: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

(1)WhatisTako?

Page 11: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Tako≈Java+Resolve

Page 12: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 13: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

WhatisResolve?

Page 14: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

integrated

programming&specification

language

Page 15: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

fullformalverification

(full=heavyweight)

Page 16: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Staticallyprove...

CODEiscorrectw.r.t.SPEC

Page 17: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

VerifyingCompiler

GrandChallengeTonyHoare,2003

Page 18: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Resolveandlanguagedesign

Page 19: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Makethingsassimpleaspossible...

butnosimpler.

–AlbertEinstein

Page 20: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

SimplicityinReasoning

SophisticatedLanguageFeatures

Page 21: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

nopointers

noinheritance

noconcurrency

!!!

Page 22: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

pointers

inheritance

concurrency

(butdisciplined)

Page 23: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Pointers

Page 24: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Pointers=References

⇒Aliasing

Page 25: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

{x=true}

y:=false

{x=???}

Page 26: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

{x=true}

y:=false

{x=???}Isx

aliasedtoy?

Page 27: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

referencecopying⇒aliasing

objectcopying⇒expensive

Page 28: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

x:=:y

x

y

before

x

y

after

Page 29: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

UsingResolve/C++JoeHollingsworthetal,2000

Page 30: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

100,000linesofcode

Page 31: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

swapping/copying‐based

pointer‐based⤴

Page 32: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

WhatisResolve?

Page 33: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

(1)Goal–fullverification

(2)Language–swapping

Page 34: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

(1)WhatisTako?

Page 35: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Tako≈Java+Resolve

Page 36: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 37: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

sex‐appeal

Page 38: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

sex‐appeal

popular

Page 39: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

sex‐appeal

popular

notlogical

Page 40: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

sex‐appeal

popular

notlogical

idealist

Page 41: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

sex‐appeal

popular

notlogical

idealist

rational

Page 42: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

sex‐appeal

popular

notlogical

idealist

rational

know‐it‐all

Page 43: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

sex‐appeal

popular

notlogical

idealist

rational

know‐it‐all

Page 44: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Takoisacompromise

Page 45: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 46: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

x

[•,•,•]

O M G

arr

Page 47: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

WhyTako?

Page 48: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

(1)Teachformalreasoning

(2)Simplifyinformalreasoning

Page 49: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

p:=q;q.enqueue(t);t.clear();//initializettoΦ

p=<Ψ,Φ>q=<Ψ,Δ,Ψ,Δ>t=Δ

p=???q=???t=???

Pre‐state:

Post‐state:

Page 50: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

0

15

30

45

60

Copy Swap Reference

PercentCorrect

Page 51: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

0

60

120

180

240

300

Copy Swap Reference

AverageTime(toanswercorrectly)

Page 52: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Futureforswapping‐basedOO?

Page 53: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Ourcasestudy

Page 54: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 55: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

WestofHouseYouarestandinginanopenfieldwestofawhitehouse,withaboardedfrontdoor.

Thereisasmallmailboxhere.

> examinemailboxThesmallmailboxisclosed

> openmailboxOpeningthesmallmailboxrevealsaleaflet.

> getleafletTaken

>

Page 56: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Parser GameWorld

Page 57: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Parser

action=OPEN

subject=PLAYERobject1=BOX

object2=NOTHING

“openthebox”⤴

Page 58: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Parser:Tako≈Java

Page 59: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

GameWorld

TreeofGameObjects

Page 60: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

IndexedTree

Page 61: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 62: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 63: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 64: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 65: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

a

f g

d

e

b

x z

c

Page 66: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

a

f g

d

e

b

x z

c

Page 67: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

G=(V,E)rank(v)ROOT,CSRVcontents(v)

Model

Page 68: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Constraints

acyclicconsistentrank

Page 69: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

DEN

insert(DEN,den_obj)

Page 70: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

DEN

insert(TOM,tom_obj)

DEN TOM

Page 71: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

DEN

advance()

DENTOM TOM

Page 72: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

enter()

DENTOMDENTOM

Page 73: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

moveSubtreeToCursor(TOM)

DEN

TOM

DENTOM

Page 74: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

GameWorld

TreeofGameObjects

Page 75: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

GameWorld

Page 76: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

moveObjectIntoSecond(OBJ1,OBJ2)

moveObjectBeforeSecond(OBJ1,OBJ2)

updateObjectProperty(OBJ,PROP)

objectHasProperty(OBJ,PROP)

Page 77: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

setObjectProperty(BOX,OPEN)

DEN

TOM BOX

PERSONMALE

BIN

ROOMLIGHT DEN

TOM BOX

PERSONMALE

BINOPEN

ROOMLIGHT

Page 78: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

setObjectProperty(BOX,OPEN)

DEN

TOM BOX

PERSONMALE

BIN

ROOMLIGHT DEN

TOM BOX

PERSONMALE

BINOPEN

ROOMLIGHT

Page 79: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

setObjectProperty(BOX,OPEN)

DEN

TOM BOX

PERSONMALE

BIN

ROOMLIGHT DEN

TOM BOX

PERSONMALE

BINOPEN

ROOMLIGHT

Page 80: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 81: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

1.Createdummynode

Page 82: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

1.Createdummynode

2.Gototarget

Page 83: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

1.Createdummynode

2.Gototarget

3.Swapnodeout

Page 84: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

1.Createdummynode

2.Gototarget

3.Swapnodeout

4.Modifynode

Page 85: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

1.Createdummynode

2.Gototarget

3.Swapnodeout

4.Modifynode

5.Swapnodein

Page 86: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

1.Createdummynode

2.Gototarget

3.Swapnodeout

4.Modifynode

5.Swapnodein

Page 87: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...
Page 88: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

tray

dish fork

ricepeas

Page 89: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

>lookYouseeatraycontainingadish(containingriceandpeas)andafork.

Page 90: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

tray

dish fork

ricepeas

Page 91: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

1.getFormattedList

2.getSubtree/insertSubtree

3.getTreeExplorer(read‐onlyiterator)

4.advance/enter/swapNodes

Page 92: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

value‐basedcomponents

list⤴tree⤴

Page 93: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

GameWorld

IndexedTree

PointerMap

Page 94: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Whatdidwelearn?

Page 95: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

(1)Algorithms–similartoJava

(2)Datastructures–difference(a)updates–swapin/out(b)strongownership

Page 96: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Questions?

Page 97: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

aliasavoidance

think“uniquereferences”

x

Page 98: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

Obama‐Palin

McCain‐Biden⤴

Page 99: Component‐based design in Tako (a case study)eecs.ucf.edu/~leavens/SAVCBS/2008/talks/Sudhir... · case study) Arun Sudhir • Gregory Kulczycki • Jyotindra Vasudeo. Gregory ...

thesimplestanswerisnotalwayscorrect