SlideShare a Scribd company logo
1 of 13
Download to read offline
Universit´e Libre de Bruxelles
Computer Science Department
MEMO-F403 Preparatory work for the master thesis
An Efficient and Parallel
Abstract Interpreter in Scala
— Preparatory Work —
Presentation
Olivier Pirson — opi@opimedia.be
orcid.org/0000-0001-6296-9659
August 25, 2017
Vrije Universiteit Brussel
Promotors Coen De Roover
Wolfgang De Meuter
Advisor Quentin Stievenart
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
1 Abstract interpretation for static analysis
2 Concrete vs abstract interpretation
3 Parallelism
4 References
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 2 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
Abstract interpretation for static analysis
Abstract interpretation is a technique to perform static analysis
A static analysis of a program is made without executing the program
The goal is to prove the correctness (or other property) of the program
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 3 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
1 Abstract interpretation for static analysis
2 Concrete vs abstract interpretation
3 Parallelism
4 References
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 4 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
Concrete interpretation
trace: concrete interpretation with small-step semantics, for one instance
e
s0 s1 s2 s3 s4 · · ·
injection
function
concrete transition function
A program is executed by interpreter = Abstract Machine (AM)
e is for expression, i.e. a program
one execution is for one instance on this program
si are states during this execution
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 5 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
Abstract interpretation
trace: concrete interpretation with small-step semantics, for one instance
e
s0 s1 s2 s3 s4 · · ·
s0 s1 s2 s3 s4
s3′
injection
function
injection
function
abstraction
function α
abstract transition function
2 approximations:
finite state space
abstract transition function returns all directly reachable states
state graph: abstract interpretation, for all instances
Abstracting Abstract Machine (AAM)
“The abstract simulates the concrete” (Matthew Might)
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 6 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
Concrete interpretation
Correct program Incorrect program
We want to prove the correctness of the program
Testing:
is not enough to prove
exhaustivity is impossible
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 7 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
Abstract interpretation
Correct program Incorrect program
Correct abstract interpretation Incorrect abstract interpretation
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 7 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
Abstract interpretation
Correct abstract interpretation Incorrect abstract interpretation
Decidability?
Soundness vs completeness?
Good complexity vs precision? =⇒ parallelism to improve speed
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 8 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
1 Abstract interpretation for static analysis
2 Concrete vs abstract interpretation
3 Parallelism
4 References
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 9 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
Goal of the future master thesis: parallelism
Parallelism to have good precision and speed
Choices for the future master thesis:
Actor model: model of concurrency with
no shared resources
exchanges of messages
Akka: framework Scala
Time is up!
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 10 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
1 Abstract interpretation for static analysis
2 Concrete vs abstract interpretation
3 Parallelism
4 References
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 11 / 12
An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Preparatory
Work
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
References
References
Thank you!
References:
All documents and LATEX sources:
https://bitbucket.org/OPiMedia/efficient-parallel-abstract-interpreter-in-scala-preparatory
Ren´e Magritte, Le Calcul Mental, 1940
http://www.artnet.com/artists/ren%C3%A9-magritte/le-calcul-mental-oU6yWQzE-ERgxZSTgANE-g2
An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 12 / 12

More Related Content

Similar to An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation

Master Thesis of Computer Engineering: OpenTranslator
Master Thesis of Computer Engineering: OpenTranslatorMaster Thesis of Computer Engineering: OpenTranslator
Master Thesis of Computer Engineering: OpenTranslatorGiuseppe D'Onofrio
 
A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...
A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...
A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...iyo
 
Parallel programming in modern world .net technics shared
Parallel programming in modern world .net technics   sharedParallel programming in modern world .net technics   shared
Parallel programming in modern world .net technics sharedIT Weekend
 
Parallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET TechnicsParallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET TechnicsIT Weekend
 
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...Kalman Graffi
 
Designing a machine learning algorithm for Apache Spark
Designing a machine learning algorithm for Apache SparkDesigning a machine learning algorithm for Apache Spark
Designing a machine learning algorithm for Apache SparkMarco Gaido
 
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...Sergey Staroletov
 
Swift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance WorkflowSwift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance WorkflowDaniel S. Katz
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELJoel Falcou
 
Rapport_Cemracs2012
Rapport_Cemracs2012Rapport_Cemracs2012
Rapport_Cemracs2012Jussara F.M.
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkTheodoros Vasiloudis
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxaman341480
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxmosyrettcc
 
Static Analysis of Computer programs
Static Analysis of Computer programs Static Analysis of Computer programs
Static Analysis of Computer programs Arvind Devaraj
 
4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patilwidespreadpromotion
 
Sedna XML Database: Query Parser & Optimizing Rewriter
Sedna XML Database: Query Parser & Optimizing RewriterSedna XML Database: Query Parser & Optimizing Rewriter
Sedna XML Database: Query Parser & Optimizing RewriterIvan Shcheklein
 
Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)Ralf Laemmel
 
Functional Programming in Scala: Notes
Functional Programming in Scala: NotesFunctional Programming in Scala: Notes
Functional Programming in Scala: NotesRoberto Casadei
 

Similar to An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation (20)

An Efficient and Parallel Abstract Interpreter in Scala — Presentation
An Efficient and Parallel Abstract Interpreter in Scala — PresentationAn Efficient and Parallel Abstract Interpreter in Scala — Presentation
An Efficient and Parallel Abstract Interpreter in Scala — Presentation
 
Master Thesis of Computer Engineering: OpenTranslator
Master Thesis of Computer Engineering: OpenTranslatorMaster Thesis of Computer Engineering: OpenTranslator
Master Thesis of Computer Engineering: OpenTranslator
 
A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...
A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...
A Study Of Statistical Models For Query Translation :Finding A Good Unit Of T...
 
Parallel programming in modern world .net technics shared
Parallel programming in modern world .net technics   sharedParallel programming in modern world .net technics   shared
Parallel programming in modern world .net technics shared
 
Parallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET TechnicsParallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET Technics
 
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
IEEE P2P 2013 - Bootstrapping Skynet: Calibration and Autonomic Self-Control ...
 
Designing a machine learning algorithm for Apache Spark
Designing a machine learning algorithm for Apache SparkDesigning a machine learning algorithm for Apache Spark
Designing a machine learning algorithm for Apache Spark
 
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
Towards a Probabilistic Extension to Non-Deterministic Transitions in Model-B...
 
Swift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance WorkflowSwift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance Workflow
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
 
Rapport_Cemracs2012
Rapport_Cemracs2012Rapport_Cemracs2012
Rapport_Cemracs2012
 
final pl paper
final pl paperfinal pl paper
final pl paper
 
FlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache FlinkFlinkML: Large Scale Machine Learning with Apache Flink
FlinkML: Large Scale Machine Learning with Apache Flink
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
 
Static Analysis of Computer programs
Static Analysis of Computer programs Static Analysis of Computer programs
Static Analysis of Computer programs
 
4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil4. Recursion - Data Structures using C++ by Varsha Patil
4. Recursion - Data Structures using C++ by Varsha Patil
 
Sedna XML Database: Query Parser & Optimizing Rewriter
Sedna XML Database: Query Parser & Optimizing RewriterSedna XML Database: Query Parser & Optimizing Rewriter
Sedna XML Database: Query Parser & Optimizing Rewriter
 
Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)Selected design patterns (as part of the the PTT lecture)
Selected design patterns (as part of the the PTT lecture)
 
Functional Programming in Scala: Notes
Functional Programming in Scala: NotesFunctional Programming in Scala: Notes
Functional Programming in Scala: Notes
 

More from 🌳 Olivier Pirson — OPi 🇧🇪🇫🇷🇬🇧 🐧 👨‍💻 👨‍🔬

More from 🌳 Olivier Pirson — OPi 🇧🇪🇫🇷🇬🇧 🐧 👨‍💻 👨‍🔬 (8)

Parallel Numerical Verification of the σ_odd problem
Parallel Numerical Verification of the σ_odd problemParallel Numerical Verification of the σ_odd problem
Parallel Numerical Verification of the σ_odd problem
 
An Efficient and Parallel Abstract Interpreter in Scala — 3x3 Parallel Implem...
An Efficient and Parallel Abstract Interpreter in Scala — 3x3 Parallel Implem...An Efficient and Parallel Abstract Interpreter in Scala — 3x3 Parallel Implem...
An Efficient and Parallel Abstract Interpreter in Scala — 3x3 Parallel Implem...
 
An Efficient and Parallel Abstract Interpreter in Scala — First Algorithm
An Efficient and Parallel Abstract Interpreter in Scala — First AlgorithmAn Efficient and Parallel Abstract Interpreter in Scala — First Algorithm
An Efficient and Parallel Abstract Interpreter in Scala — First Algorithm
 
An Efficient and Parallel Abstract Interpreter in Scala — Second Presentation
An Efficient and Parallel Abstract Interpreter in Scala — Second PresentationAn Efficient and Parallel Abstract Interpreter in Scala — Second Presentation
An Efficient and Parallel Abstract Interpreter in Scala — Second Presentation
 
Dualité lagrangienne
Dualité lagrangienneDualité lagrangienne
Dualité lagrangienne
 
Brief journey in the big world of Integer Programming with the Knapsack
Brief journey in the big world of Integer Programming with the KnapsackBrief journey in the big world of Integer Programming with the Knapsack
Brief journey in the big world of Integer Programming with the Knapsack
 
Disjoint Compatible Perfect Matchings
Disjoint Compatible Perfect MatchingsDisjoint Compatible Perfect Matchings
Disjoint Compatible Perfect Matchings
 
Persistent Search Trees
Persistent Search TreesPersistent Search Trees
Persistent Search Trees
 

Recently uploaded

Plasmid: types, structure and functions.
Plasmid: types, structure and functions.Plasmid: types, structure and functions.
Plasmid: types, structure and functions.Cherry
 
Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.Cherry
 
ONLINE VOTING SYSTEM SE Project for vote
ONLINE VOTING SYSTEM SE Project for voteONLINE VOTING SYSTEM SE Project for vote
ONLINE VOTING SYSTEM SE Project for voteRaunakRastogi4
 
Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...
Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...
Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...Cherry
 
Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.
Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.
Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.Cherry
 
Lipids: types, structure and important functions.
Lipids: types, structure and important functions.Lipids: types, structure and important functions.
Lipids: types, structure and important functions.Cherry
 
POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.Cherry
 
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cherry
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Cherry
 
Genome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptxGenome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptxCherry
 
COMPOSTING : types of compost, merits and demerits
COMPOSTING : types of compost, merits and demeritsCOMPOSTING : types of compost, merits and demerits
COMPOSTING : types of compost, merits and demeritsCherry
 
X-rays from a Central “Exhaust Vent” of the Galactic Center Chimney
X-rays from a Central “Exhaust Vent” of the Galactic Center ChimneyX-rays from a Central “Exhaust Vent” of the Galactic Center Chimney
X-rays from a Central “Exhaust Vent” of the Galactic Center ChimneySérgio Sacani
 
GBSN - Biochemistry (Unit 3) Metabolism
GBSN - Biochemistry (Unit 3) MetabolismGBSN - Biochemistry (Unit 3) Metabolism
GBSN - Biochemistry (Unit 3) MetabolismAreesha Ahmad
 
Understanding Partial Differential Equations: Types and Solution Methods
Understanding Partial Differential Equations: Types and Solution MethodsUnderstanding Partial Differential Equations: Types and Solution Methods
Understanding Partial Differential Equations: Types and Solution Methodsimroshankoirala
 
FS P2 COMBO MSTA LAST PUSH past exam papers.
FS P2 COMBO MSTA LAST PUSH past exam papers.FS P2 COMBO MSTA LAST PUSH past exam papers.
FS P2 COMBO MSTA LAST PUSH past exam papers.takadzanijustinmaime
 
Role of AI in seed science Predictive modelling and Beyond.pptx
Role of AI in seed science  Predictive modelling and  Beyond.pptxRole of AI in seed science  Predictive modelling and  Beyond.pptx
Role of AI in seed science Predictive modelling and Beyond.pptxArvind Kumar
 
Method of Quantifying interactions and its types
Method of Quantifying interactions and its typesMethod of Quantifying interactions and its types
Method of Quantifying interactions and its typesNISHIKANTKRISHAN
 
Cot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNACot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNACherry
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxseri bangash
 

Recently uploaded (20)

Plasmid: types, structure and functions.
Plasmid: types, structure and functions.Plasmid: types, structure and functions.
Plasmid: types, structure and functions.
 
Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.Phenolics: types, biosynthesis and functions.
Phenolics: types, biosynthesis and functions.
 
ONLINE VOTING SYSTEM SE Project for vote
ONLINE VOTING SYSTEM SE Project for voteONLINE VOTING SYSTEM SE Project for vote
ONLINE VOTING SYSTEM SE Project for vote
 
Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...
Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...
Molecular phylogeny, molecular clock hypothesis, molecular evolution, kimuras...
 
Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.
Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.
Genome Projects : Human, Rice,Wheat,E coli and Arabidopsis.
 
Lipids: types, structure and important functions.
Lipids: types, structure and important functions.Lipids: types, structure and important functions.
Lipids: types, structure and important functions.
 
POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.POGONATUM : morphology, anatomy, reproduction etc.
POGONATUM : morphology, anatomy, reproduction etc.
 
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.Cyathodium bryophyte: morphology, anatomy, reproduction etc.
Cyathodium bryophyte: morphology, anatomy, reproduction etc.
 
Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.Reboulia: features, anatomy, morphology etc.
Reboulia: features, anatomy, morphology etc.
 
Genome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptxGenome sequencing,shotgun sequencing.pptx
Genome sequencing,shotgun sequencing.pptx
 
COMPOSTING : types of compost, merits and demerits
COMPOSTING : types of compost, merits and demeritsCOMPOSTING : types of compost, merits and demerits
COMPOSTING : types of compost, merits and demerits
 
X-rays from a Central “Exhaust Vent” of the Galactic Center Chimney
X-rays from a Central “Exhaust Vent” of the Galactic Center ChimneyX-rays from a Central “Exhaust Vent” of the Galactic Center Chimney
X-rays from a Central “Exhaust Vent” of the Galactic Center Chimney
 
ABHISHEK ANTIBIOTICS PPT MICROBIOLOGY // USES OF ANTIOBIOTICS TYPES OF ANTIB...
ABHISHEK ANTIBIOTICS PPT MICROBIOLOGY  // USES OF ANTIOBIOTICS TYPES OF ANTIB...ABHISHEK ANTIBIOTICS PPT MICROBIOLOGY  // USES OF ANTIOBIOTICS TYPES OF ANTIB...
ABHISHEK ANTIBIOTICS PPT MICROBIOLOGY // USES OF ANTIOBIOTICS TYPES OF ANTIB...
 
GBSN - Biochemistry (Unit 3) Metabolism
GBSN - Biochemistry (Unit 3) MetabolismGBSN - Biochemistry (Unit 3) Metabolism
GBSN - Biochemistry (Unit 3) Metabolism
 
Understanding Partial Differential Equations: Types and Solution Methods
Understanding Partial Differential Equations: Types and Solution MethodsUnderstanding Partial Differential Equations: Types and Solution Methods
Understanding Partial Differential Equations: Types and Solution Methods
 
FS P2 COMBO MSTA LAST PUSH past exam papers.
FS P2 COMBO MSTA LAST PUSH past exam papers.FS P2 COMBO MSTA LAST PUSH past exam papers.
FS P2 COMBO MSTA LAST PUSH past exam papers.
 
Role of AI in seed science Predictive modelling and Beyond.pptx
Role of AI in seed science  Predictive modelling and  Beyond.pptxRole of AI in seed science  Predictive modelling and  Beyond.pptx
Role of AI in seed science Predictive modelling and Beyond.pptx
 
Method of Quantifying interactions and its types
Method of Quantifying interactions and its typesMethod of Quantifying interactions and its types
Method of Quantifying interactions and its types
 
Cot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNACot curve, melting temperature, unique and repetitive DNA
Cot curve, melting temperature, unique and repetitive DNA
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptx
 

An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation

  • 1. Universit´e Libre de Bruxelles Computer Science Department MEMO-F403 Preparatory work for the master thesis An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Olivier Pirson — opi@opimedia.be orcid.org/0000-0001-6296-9659 August 25, 2017 Vrije Universiteit Brussel Promotors Coen De Roover Wolfgang De Meuter Advisor Quentin Stievenart
  • 2. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References 1 Abstract interpretation for static analysis 2 Concrete vs abstract interpretation 3 Parallelism 4 References An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 2 / 12
  • 3. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References Abstract interpretation for static analysis Abstract interpretation is a technique to perform static analysis A static analysis of a program is made without executing the program The goal is to prove the correctness (or other property) of the program An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 3 / 12
  • 4. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References 1 Abstract interpretation for static analysis 2 Concrete vs abstract interpretation 3 Parallelism 4 References An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 4 / 12
  • 5. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References Concrete interpretation trace: concrete interpretation with small-step semantics, for one instance e s0 s1 s2 s3 s4 · · · injection function concrete transition function A program is executed by interpreter = Abstract Machine (AM) e is for expression, i.e. a program one execution is for one instance on this program si are states during this execution An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 5 / 12
  • 6. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References Abstract interpretation trace: concrete interpretation with small-step semantics, for one instance e s0 s1 s2 s3 s4 · · · s0 s1 s2 s3 s4 s3′ injection function injection function abstraction function α abstract transition function 2 approximations: finite state space abstract transition function returns all directly reachable states state graph: abstract interpretation, for all instances Abstracting Abstract Machine (AAM) “The abstract simulates the concrete” (Matthew Might) An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 6 / 12
  • 7. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References Concrete interpretation Correct program Incorrect program We want to prove the correctness of the program Testing: is not enough to prove exhaustivity is impossible An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 7 / 12
  • 8. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References Abstract interpretation Correct program Incorrect program Correct abstract interpretation Incorrect abstract interpretation An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 7 / 12
  • 9. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References Abstract interpretation Correct abstract interpretation Incorrect abstract interpretation Decidability? Soundness vs completeness? Good complexity vs precision? =⇒ parallelism to improve speed An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 8 / 12
  • 10. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References 1 Abstract interpretation for static analysis 2 Concrete vs abstract interpretation 3 Parallelism 4 References An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 9 / 12
  • 11. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References Goal of the future master thesis: parallelism Parallelism to have good precision and speed Choices for the future master thesis: Actor model: model of concurrency with no shared resources exchanges of messages Akka: framework Scala Time is up! An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 10 / 12
  • 12. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References 1 Abstract interpretation for static analysis 2 Concrete vs abstract interpretation 3 Parallelism 4 References An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 11 / 12
  • 13. An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation Abstract interpretation for static analysis Concrete vs abstract interpretation Parallelism References References Thank you! References: All documents and LATEX sources: https://bitbucket.org/OPiMedia/efficient-parallel-abstract-interpreter-in-scala-preparatory Ren´e Magritte, Le Calcul Mental, 1940 http://www.artnet.com/artists/ren%C3%A9-magritte/le-calcul-mental-oU6yWQzE-ERgxZSTgANE-g2 An Efficient and Parallel Abstract Interpreter in Scala — Preparatory Work — Presentation 12 / 12