component‐based design in tako (a case study)eecs.ucf.edu/~leavens/savcbs/2008/talks/sudhir... ·...
TRANSCRIPT
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/1.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/2.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/6.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/9.jpg)
(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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/10.jpg)
(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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/12.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/13.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/14.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/15.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/16.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/17.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/18.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/19.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/20.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/21.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/22.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/23.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/24.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/25.jpg)
{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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/26.jpg)
{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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/27.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/28.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/29.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/30.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/31.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/32.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/33.jpg)
(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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/34.jpg)
(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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/35.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/36.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/37.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/38.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/39.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/40.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/41.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/42.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/43.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/44.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/45.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/46.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/47.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/48.jpg)
(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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/49.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/50.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/51.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/52.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/53.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/54.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/55.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/56.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/57.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/58.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/59.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/60.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/61.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/62.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/63.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/64.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/65.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/66.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/67.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/68.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/69.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/70.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/71.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/72.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/73.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/74.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/75.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/76.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/77.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/78.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/79.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/80.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/81.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/82.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/83.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/84.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/85.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/86.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/87.jpg)
![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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/88.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/89.jpg)
>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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/90.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/91.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/92.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/93.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/94.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/95.jpg)
(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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/96.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/97.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/98.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062908/5ae144957f8b9a5a668eaa2d/html5/thumbnails/99.jpg)
thesimplestanswerisnotalwayscorrect