a grand unified theory of software
DESCRIPTION
A static version of the talk I gave at BarcampBangalore XII.TRANSCRIPT
![Page 1: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/1.jpg)
A Grand Unified Theory of Software
Vinod DinakaranBarcampBangalore XII
![Page 2: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/2.jpg)
A Grand Unified Theory of Software
Vinod DinakaranBarcampBangalore XII
Towards
![Page 3: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/3.jpg)
..so I had a 92-slide deck prepared…
![Page 4: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/4.jpg)
… and this was slide 92…
GUTSEGUTS
WIP
WIP
… so this is more like a progress report than a finished product…
..but you can help finish it!
YOUR THEORY
![Page 5: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/5.jpg)
..so I figured this session would work better
as a discussion than a monologue
![Page 6: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/6.jpg)
What I’d like to talk about..
• What I mean by “A Theory of software”• Why we need such a thing• A pretty good Grand Theory of Software Engineering I found on Google
• My own ideas for a Grand Theory of Software• Discuss these ideas
![Page 7: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/7.jpg)
I’ll talk till…
• What I mean by “A Theory of software”• Why we need such a thing• A pretty good Grand Theory of Software Engineering I found on Google
• My own ideas for a Grand Theory of Software
Discuss these ideas
![Page 8: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/8.jpg)
It’ll be GREAT if we can get till…
• What I mean by “A Theory of software”• Why we need such a thing• A pretty good Grand Theory of Software Engineering I found on Google
• My own ideas for a Grand Theory of Software
Discuss these ideas
![Page 9: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/9.jpg)
It’ll be AWESOME if we can get till…
• What I mean by “A Theory of software”• Why we need such a thing• A pretty good Grand Theory of Software Engineering I found on Google
• My own ideas for a Grand Theory of Software
Discuss these ideas
![Page 10: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/10.jpg)
So what does “Theory of Software” mean?
![Page 11: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/11.jpg)
Theorem provingCode VerificationTheoretical / Academic
Way(s) of thinkingUseful modelsCommon LangSensible AxiomsDerivable Laws
Vocab
![Page 12: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/12.jpg)
IRL
Emp St Bldg Its model
![Page 13: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/13.jpg)
![Page 14: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/14.jpg)
What can we print on the T-shirts for software?
![Page 15: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/15.jpg)
We’d print the Theory of Software on T-shirts
![Page 16: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/16.jpg)
Why do we need a “Theory of Software”?
![Page 17: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/17.jpg)
This is software development/engineering today
![Page 18: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/18.jpg)
Integration
![Page 19: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/19.jpg)
Webapp
![Page 20: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/20.jpg)
Enterprise App
![Page 21: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/21.jpg)
IT Org
![Page 22: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/22.jpg)
3 reasons, therefore
![Page 23: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/23.jpg)
#1: S/w Dev is a lossy process
We need a Pensieve for software for the lost “WHY”s
![Page 24: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/24.jpg)
#2: We no longer
software that we built… at least not fully
…its that big
UNDERSTAND
![Page 25: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/25.jpg)
![Page 26: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/26.jpg)
#3: we’re due some Revolution
We are here
We need to be here
![Page 27: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/27.jpg)
As proof I present a lot ofMICRO-THEORIES,
IDIOMS, BEST PRACTICES AND
METHODOLOGIES
![Page 28: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/28.jpg)
Goto is harmful
Structured programming is goodObject Orientation is good; encapsulate stateFunctional programming is good; avoid state
TDD is good; test everything!
Adding manpower to a late project makes it laterThe man-month is a dangerous and fallacious myth, for it
implies that man and machine are interchangeable
You ship your organization, i.e., your code has the same shape as your org structure
Release early, release often (startups)Use old, proven technology (Mars rover)
Hardware doubles in performance every 18 months
1 program
n programs
1-n devs
1 pm
n pm’s
1 org
n orgs
the world
![Page 29: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/29.jpg)
Remind you of something?
![Page 30: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/30.jpg)
So what’s required of a “Theory of Software”?
![Page 31: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/31.jpg)
Once built, with the ToS we could…
• Use the model as a blueprint to build software• One model can build many “instances” of
software – same or similar• One model will allow reasoning about all such
instances• There would be “Universal Software Laws”
• …pigs will fly…unicorns everywhere…
![Page 32: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/32.jpg)
One paradigm => Unified Simple
No schools => Consistent Defined scope
Puzzle Solving => Definition & ExplanationResearch => Falsifiable
So like other Physical theories
![Page 33: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/33.jpg)
They’re not the same, tho…
Real World Software world
“Out there” Inside our heads
Real, unchangeable limits
Limited only by our imagination
Objective (well, mostly) Subjective
![Page 34: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/34.jpg)
So unlike other Physical theories
Any ToS should :• Directly represent man and the subjectivity
that comes with it• Allow for how the human mind works and
model it• Model human organizations and human +
machine combinations• Model software; its structure and behavior
![Page 35: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/35.jpg)
Finally, like any body of science, it should have…
Axioms: Givens, “Taken for granted”s, universal truths
Theories: Assumptions based on the axioms
Laws: Proven theories
Application of the Science
![Page 36: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/36.jpg)
Two candidates: GUTSE & GUTS
![Page 37: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/37.jpg)
A brief tangent before we start“Sw FEM” post
+ GUTS
Waitaminnit…
…GUTSE!
![Page 38: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/38.jpg)
GUTSE and GUTS: a comparisonFeature GUTSE GUTS
Unified, simple Y *
Consistent Y *
Defined Scope Y Y
Vast explanation capacity Y N
Falsifiable Y Y
Models humans Y Y
Models human Orgs Y N
Models human+m/c combos Y N
Models software Y Y
Has axioms Y Y
Has Theorems N *
Has Laws N *
Has applications Y* N
![Page 39: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/39.jpg)
… and so we come full circle…
GUTSEGUTS
WIP
WIP
… so this is more like a progress report than a finished product…
..but you can help finish it!
YOUR THEORY
![Page 40: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/40.jpg)
Where do we go from here?
GUTSE
Discussion
GUTS
![Page 41: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/41.jpg)
GUTSE: Axioms
![Page 42: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/42.jpg)
Q: What do we do when we write software?
![Page 43: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/43.jpg)
A: We solve problems using machines
![Page 44: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/44.jpg)
Actually….
We solve problems & encode the solutions using so that machines can run them instead of us
Problem Coded Solution Running Solution
![Page 45: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/45.jpg)
Problem Solution
Encoded Solution
Solution to problem
![Page 46: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/46.jpg)
All Software Development is therefore a Grand translation exercise
Axiom
![Page 47: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/47.jpg)
…translation of what? To what?
![Page 48: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/48.jpg)
A string of symbolsGenerally, A composition of building blocks
(aka Composition units)E.g.: Pascal: "procedure begin .... end".
whole thing is the spec, each identifier is a CUEnglish: "This is a sentence".
Words are CUs, sentence is the spec; Sentences are CUs, Para is the spec;and so forth
A set of specifications, constrained by the kind of CUs allowed to be in them
E.g.:Java, Fortran, Assembly
Equally: Requirements Spec, Design DocUMLLogs
![Page 49: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/49.jpg)
![Page 50: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/50.jpg)
Special case: the Executor
![Page 51: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/51.jpg)
All Software Engineering can be expressed in terms of transformers and specifications
Axiom
![Page 52: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/52.jpg)
But it cant all be rote transforms, right?
A: Semantic Mappings (yes, they’re Venn Diagrams)
![Page 53: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/53.jpg)
Mapping a language to another (via a transformer) defines it in terms of the
other language; thereby giving it meaning.
Axiom
![Page 54: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/54.jpg)
Sem-nastics: The Semantic Domain
This is a Semantic Domain because both programs mean the same in this
domain
![Page 55: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/55.jpg)
More Sem-nastics
SD
SD SD
![Page 56: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/56.jpg)
A Semantic Domain is where semantic relations become syntactic. If two specs’ translation into
an SD are syntactically equivalent, then they are also semantically equivalent.
Axiom
![Page 57: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/57.jpg)
General Semantic Domain
![Page 58: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/58.jpg)
More Sem-nastics
![Page 59: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/59.jpg)
Problem Solving: GUTSE-style
![Page 60: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/60.jpg)
Sw Engg: GUTSE-style
![Page 61: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/61.jpg)
We still need to define the machine and the mind a little bit better so that we can
reason about their behavior
![Page 62: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/62.jpg)
The model m/c: a Von Neumann m/c
![Page 63: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/63.jpg)
The vNM executor
![Page 64: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/64.jpg)
The model mind: ACT-R
Requirements:•Explain and predict problem solving•Explain and predict HUMAN problem solving• Without ignoring our
understanding and learning difficulties
•Concrete and operationalized.
![Page 65: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/65.jpg)
ACT-R Demo
![Page 66: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/66.jpg)
ACT-R DemoE.g.: if Goal Memory has:
=goal>isa ADDITIONn1=threen2=fourans=nil
![Page 67: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/67.jpg)
ACT-R Demo… and Procedural Memory has:
Add-nos=goal>isa ADDITIONn1=threen2=fourans=nil=fact>isa ADD-FACTaddend1=num1addend2=num2sum=sum
==>=goal>ans=sum
![Page 68: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/68.jpg)
ACT-R Demoand we indeed have a fact in Declarative Memory that asserts:
=fact3+4>isa ADD-FACTaddend1=threeaddend2=foursum=seven
... then the mind will output seven
… as the answer.
![Page 69: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/69.jpg)
ACT-R Demo
This is a simple example, but more complex ones are:- reasoning by counting- retrieval from memory- retrieval from input system (e.g., by reading a book)
![Page 70: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/70.jpg)
GUTSE: Theories
![Page 71: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/71.jpg)
Composing transformers
![Page 72: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/72.jpg)
Composing Transformers
![Page 73: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/73.jpg)
Man + m/c
![Page 74: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/74.jpg)
Man + m/c : Circa 1970s
![Page 75: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/75.jpg)
Organization: Waterfall
![Page 76: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/76.jpg)
Organization: MMM
![Page 77: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/77.jpg)
Organization: XP
![Page 78: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/78.jpg)
GUTSE: 50k view
![Page 79: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/79.jpg)
GUTSE: Laws
![Page 80: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/80.jpg)
Meta Law: no law can be stated without qualification wrt a specific SD
![Page 81: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/81.jpg)
GUTSE: Application of Science
![Page 82: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/82.jpg)
Tour de Force: Assembly vs. HLL
A: Let’s model the process of learning the language, writing a trial program and then executing a real program by implementing a Bubble Sort in both
Q:Which is better from a Programmer’s POV?
C /Assembly SD C /Assembly Execution State Space
Lists of Numbers SD
![Page 83: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/83.jpg)
… then let’s replace the human with ACT-R and see how it behaves
C /Assembly SD C /Assembly Execution State Space
Lists of Numbers SD
![Page 84: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/84.jpg)
Step 0: Simulate a language in ACT-R
The Assembly machine’s ACT-R setup is essentially the same
![Page 85: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/85.jpg)
Sample Rule from Sim
![Page 86: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/86.jpg)
Step 1: Learn the languages
![Page 87: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/87.jpg)
Step 2: Learn the Sort program
Assembly
C
![Page 88: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/88.jpg)
Bubble Sort in Assembly
![Page 89: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/89.jpg)
Bubble Sort in C
![Page 90: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/90.jpg)
Step 3: Simulate run of s/w bubble sort m/c’s written in Assembly & C
![Page 91: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/91.jpg)
Bubble Sort m/c: Internals
The C machine’s internal view is essentially the same
![Page 92: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/92.jpg)
Bubble Sort m/c: Simulated Internals
![Page 93: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/93.jpg)
Actual run results
~2X effort for Assembly
Overall, C wins
![Page 94: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/94.jpg)
GUTS
![Page 95: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/95.jpg)
Start with the “how to read..” node(see links)
![Page 96: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/96.jpg)
Questions?
![Page 97: A Grand Unified Theory of Software](https://reader035.vdocuments.net/reader035/viewer/2022081414/54b8a5284a795988068b457d/html5/thumbnails/97.jpg)
LinksRef Link
Alan Kay’s Talk http://www.tele-task.de/archive/video/flash/14029/
“FEM analysis on code” blog post
http://tt2n.blogspot.com/2009/06/fem-like-analysis-on-code.html
GUTS https://github.com/vinodkd/guts
GUTSE http://books.google.com/books/about/The_Grand_Unified_Theory_of_Software_Eng.html?id=TLcceL3NEiMC