Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Soot for dummies
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Leandro
August 06, 2013
86
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Soot for dummies
Leandro
August 06, 2013
More Decks by Leandro
See All by Leandro
ACorralando EPAs: acercando el modelo mental al computacional
lleraromero
0
140
Data-flow Analysis: Reaching Definitions
lleraromero
0
62
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
390
Optimizing for Happiness
mojombo
378
71k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Chasing Engaging Ingredients in Design
codingconduct
0
220
The Invisible Side of Design
smashingmag
301
52k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Into the Great Unknown - MozCon
thekraken
41
2.6k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
170
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Navigating Team Friction
lara
192
16k
Transcript
None
Soot Framework for analysis, transformation and optimization of Java programs
Support for both intra-procedural and inter-procedural Many built-in analyses and optimizations are available Provides intermediate representations of Java code Jimple, Shimple, Baf, Grimp 1 / 7
Jimple Main intermediate representation used in Soot. Key characteristics: Stackless,
typed 3-address code Simplified set of instructions Suitable for analysis and optimization 2 / 7
From Java to Jimple: Example 3 / 7
Processing of Java classes via Soot 1. Parsing Java sources
or class files into Jimple IR 2. Processing of various IRs in several phases Figura : Intra-procedural execution flow 4 / 7
Using data-flow framework A checklist of your obligations: 1. Subclass*FlowAnalysis
ForwardFlowAnalysis BackwardFlowAnalysis ForwardBranchedFlowAnalysis 2. Implement abstraction: merge(), copy() 3. Implement flow function: flowThrough() 4. Implement initial values: newInitialFlow() and entryInitialFlow() 5. Implement constructor (it must call doAnalysis()) 5 / 7
Using data-flow framework: TrulyLiveVariables 6 / 7
Soot for dummies Leandro Lera Romero 1Departamento de Computaci´ on
Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 5 de agosto de 2013