SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
IWSC ‘17
CREST, University College London, UK
Using Compilation/Decompilation
to Enhance Clone Detection
Chaiyong Ragkhitwetsagul, Jens Krinke
Clone 

det.
Plag 

det.
Comp.
Others
ccfx
deckard
iclones
nicad
simian
jplag-java
jplag-text
plaggie
sherlock
simjava
simtext
7zncd-BZip2
7zncd-LZMA
7zncd-LZMA2
7zncd-Deflate
7zncd-Deflate64
7zncd-PPMd
bzip2ncd
gzipncd
icd
ncd-bzlib
ncd-zlib
xz-ncd
bsdiff
diff
py-difflib
py-fuzzywuzzy
py-jellyfish
py-ngram
py-sklearn
0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 F1
Orig.
Dec.
Ragkhitwetsagul et al., 2016
Clone 

det.
Plag 

det.
Comp.
Others
ccfx
deckard
iclones
nicad
simian
jplag-java
jplag-text
plaggie
sherlock
simjava
simtext
7zncd-BZip2
7zncd-LZMA
7zncd-LZMA2
7zncd-Deflate
7zncd-Deflate64
7zncd-PPMd
bzip2ncd
gzipncd
icd
ncd-bzlib
ncd-zlib
xz-ncd
bsdiff
diff
py-difflib
py-fuzzywuzzy
py-jellyfish
py-ngram
py-sklearn
0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 F1
Orig.
Dec.
4
O. Kononenko, C. Zhang, and M. W. Godfrey, ICSME ‘14
What Happens?
Compiling Clones:
and Decompiling
4
What Happens?
Compiling Clones:
Source
Code
and Decompiling
4
What Happens?
Compiling Clones:
Existing
tools
Source
Code
and Decompiling
4
What Happens?
Compiling Clones:
Missing
Source
Existing
tools
Source
Code
and Decompiling
4
What Happens?
Compiling Clones:
C. Ragkhitwetsagul J. Krinke CREST, UCL, UK
decomp.
clones
clone
mapper
decomp. &
mapped clones
compiler
decompiler
decompiled software
clone
detector
original
clones
5
software
common
clones
disjoint
clones
manual investigation
Experimental Framework
C. Ragkhitwetsagul J. Krinke CREST, UCL, UK 6
System Ver.
Original Decompiled
Files SLOC Files SLOC
4.1.3 203 9,777 311 11,233
1.5.0 644 96,711 669 85,251
9.0 1,688 241,924 2603 256,974
Apache Tomcat®
Software Systems
7
Tool Config. Parameters
NiCad Type-1 UPI=0.0, renaming=none
Type-2 UPI=0.0, renaming=consistent
Type-3 UPI=0.3, renaming=consistent
Tools
javac Procyon NiCad
Compiler Decompiler Clone Detector
8
Clone Mapper
decompiled
clone report
DCP1(dm1, dm2)
decompiled clone
pairs
software
m1
m2
m4
m3
mn
…
DCP2(dm1, dm3)
DCP3(dm2, dm4)
…
DCPn(dmm, dmo)
set of methods (M)
mo
decompiled-and-mapped
clone report
DCP*1((dm1,dm2),(m1,m2))
DCP*2((dm1,dm3),(m1,m3))
DCP*3((dm2,dm4),(m2,m4))
DCP*n((dmm,dmo),(mm,mo))
…
decompiled-and-mapped
clone pairs
…
C. Ragkhitwetsagul J. Krinke CREST, UCL, UK 9
Common & Disjoint Clone Pairs
Ccommon
Corig-only Cdecomp-only
Original Decompiled
C. Ragkhitwetsagul J. Krinke CREST, UCL, UK 10
Results
11
JUnit
Original Decompiled
Type-1
Type-2
Type-3
6
3
12
JFreeChart
Original Decompiled
Type-1
Type-2
Type-3
159
155
33
15
48
1
17
27
3
13
Tomcat
Original Decompiled
Type-1
Type-2
Type-3
217
608
20
25
141
22
3
23
1
C. Ragkhitwetsagul J. Krinke CREST, UCL, UK 14
Manual Investigation
15
No.ofclonepairs
0
10
20
30
40
50
Type-1 Type-2 Type-3
47
15
1
48
15
1
Candidates TP
JFreeChart
Cforig-only
No.ofclonepairs
0
6
12
18
24
30
Type-1 Type-2 Type-3
27
17
3
27
17
3
Cfdecomp-only
16
No.ofclonepairs
0
32
64
96
128
160
Type-1 Type-2 Type-3
141
2522
141
2522
Candidates TP
Tomcat
Cforig-only
No.ofclonepairs
0
6
12
18
24
30
Type-1 Type-2 Type-3
23
31
23
31
Cfdecomp-only
Clone set Reasons
Cforig-only
Too small after decomp.
Too diff. after decomp.
Smaller after decomp. higher dissimilarity
Unknown
Cfdecomp-only
Having deleted/added stmt., type cast, package
name.
Different if-else statements
Different loop statements
Inner class methods
Unknown
Characteristics of Disjoint Clones
Clone set Reasons
Cforig-only Too small after decomp.
Too diff. after decomp.
Smaller after decomp. higher
dissimilarity
Unknown
Cfdecomp-only
Having deleted/added stmt., type
cast, package name.
Different if-else statements
Different loop statements
Inner class methods
Unknown
JFreeChart
0 10 20 30 40 50
5
11
32
6
9
T1 T2 T3
0 2 4 6 8 10 12 14 16
12
4
3
8
12
53
Clone set Reasons
Cforig-only Too small after decomp.
Too diff. after decomp.
Smaller after decomp. higher
dissimilarity
Unknown
Cfdecomp-only
Having deleted/added stmt., type
cast, package name.
Different if-else statements
Different loop statements
Inner class methods
Unknown
Tomcat
0 28 56 84 112 140
16
5
120
19
6
T1 T2 T3
0 5 10 15 20 25 30
20
2
1
3
2
@Override	
	 public	Range	findRangeBounds(XYDataset	dataset)	{	
	 	 if	(dataset	!=	null)	{	
	 	 	 Range	r	=	DatasetUtilities.findRangeBounds(dataset,	false);	
	 	 	 if	(r	==	null)	{	
	 	 	 	 return	null;	
	 	 	 }	else	{	
	 	 	 	 return	new	Range(r.getLowerBound()	+	this.yOffset,	
																																																																								r.getUpperBound()	+	this.blockHeight	+	this.yOffset);	
	 	 	 }	
	 	 }	else	{	
	 	 	 return	null;	
	 	 }	
	 }		
	 @Override	
	 public	Range	findDomainBounds(XYDataset	dataset)	{	
	 	 if	(dataset	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 Range	r	=	DatasetUtilities.findDomainBounds(dataset,	false);	
	 	 if	(r	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 return	new	Range(r.getLowerBound()	+	this.xOffset,		
	 	 	 	 									r.getUpperBound()	+	this.blockWidth	+	this.xOffset);	
	 }
O
R
I
G
I
N
A
L
@Override	
	 public	Range	findRangeBounds(XYDataset	dataset)	{	
	 	 if	(dataset	!=	null)	{	
	 	 	 Range	r	=	DatasetUtilities.findRangeBounds(dataset,	false);	
	 	 	 if	(r	==	null)	{	
	 	 	 	 return	null;	
	 	 	 }	else	{	
	 	 	 	 return	new	Range(r.getLowerBound()	+	this.yOffset,	
																																																																								r.getUpperBound()	+	this.blockHeight	+	this.yOffset);	
	 	 	 }	
	 	 }	else	{	
	 	 	 return	null;	
	 	 }	
	 }		
	 @Override	
	 public	Range	findDomainBounds(XYDataset	dataset)	{	
	 	 if	(dataset	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 Range	r	=	DatasetUtilities.findDomainBounds(dataset,	false);	
	 	 if	(r	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 return	new	Range(r.getLowerBound()	+	this.xOffset,		
	 	 	 	 									r.getUpperBound()	+	this.blockWidth	+	this.xOffset);	
	 }
O
R
I
G
I
N
A
L
@Override	
	 public	Range	findDomainBounds(final	XYDataset	dataset)	{	
	 	 if	(dataset	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 final	Range	r	=	DatasetUtilities.findDomainBounds(dataset,	false);	
	 	 if	(r	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 return	new	Range(r.getLowerBound()	+	this.xOffset,		
																																																						r.getUpperBound()	+	this.blockWidth	+	this.xOffset);	
	 }
	 @Override	
	 public	Range	findRangeBounds(final	XYDataset	dataset)	{	
	 	 if	(dataset	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 final	Range	r	=	DatasetUtilities.findRangeBounds(dataset,	false);	
	 	 if	(r	==	null)	{	
	 	 	 return	null;	
	 	 }	
	 	 return	new	Range(r.getLowerBound()	+	this.yOffset,		
	 	 	 	 									r.getUpperBound()	+	this.blockHeight	+	this.yOffset);	
	 }
D
E
C
O
M
P
I
L
E
D
public	void	clearRangeMarkers()	{	
				if	(this.backgroundRangeMarkers	!=	null)	{	
								Set<Integer>	keys	=		
																										this.backgroundRangeMarkers.keySet();	
								for	(Integer	key	:	keys)	{	
												clearRangeMarkers(key);	
								}	
								this.backgroundRangeMarkers.clear();	
				}	
				if	(this.foregroundRangeMarkers	!=	null)	{	
								Set<Integer>	keys	=		
																									this.foregroundRangeMarkers.keySet();	
								for	(Integer	key	:	keys)	{	
												clearRangeMarkers(key);	
								}	
								this.foregroundRangeMarkers.clear();	
				}	
				fireChangeEvent();	
}
				public	void	clearRangeMarkers()	{	
								if	(this.backgroundRangeMarkers	!=	null)	{	
												Set	keys	=		
																				this.backgroundRangeMarkers.keySet();	
												Iterator	iterator	=	keys.iterator();	
												while	(iterator.hasNext())	{	
																Integer	key	=	(Integer)	iterator.next();	
																clearRangeMarkers(key.intValue());	
												}	
												this.backgroundRangeMarkers.clear();	
								}	
								if	(this.foregroundRangeMarkers	!=	null)	{	
												Set	keys	=		
																				this.foregroundRangeMarkers.keySet();	
												Iterator	iterator	=	keys.iterator();	
												while	(iterator.hasNext())	{	
																Integer	key	=	(Integer)	iterator.next();	
																clearRangeMarkers(key.intValue());	
												}	
												this.foregroundRangeMarkers.clear();	
								}	
								fireChangeEvent();	
}	
ORIGINAL
public	void	clearRangeMarkers()	{	
				if	(this.backgroundRangeMarkers	!=	null)	{	
								Set<Integer>	keys	=		
																										this.backgroundRangeMarkers.keySet();	
								for	(Integer	key	:	keys)	{	
												clearRangeMarkers(key);	
								}	
								this.backgroundRangeMarkers.clear();	
				}	
				if	(this.foregroundRangeMarkers	!=	null)	{	
								Set<Integer>	keys	=		
																									this.foregroundRangeMarkers.keySet();	
								for	(Integer	key	:	keys)	{	
												clearRangeMarkers(key);	
								}	
								this.foregroundRangeMarkers.clear();	
				}	
				fireChangeEvent();	
}
				public	void	clearRangeMarkers()	{	
								if	(this.backgroundRangeMarkers	!=	null)	{	
												Set	keys	=		
																				this.backgroundRangeMarkers.keySet();	
												Iterator	iterator	=	keys.iterator();	
												while	(iterator.hasNext())	{	
																Integer	key	=	(Integer)	iterator.next();	
																clearRangeMarkers(key.intValue());	
												}	
												this.backgroundRangeMarkers.clear();	
								}	
								if	(this.foregroundRangeMarkers	!=	null)	{	
												Set	keys	=		
																				this.foregroundRangeMarkers.keySet();	
												Iterator	iterator	=	keys.iterator();	
												while	(iterator.hasNext())	{	
																Integer	key	=	(Integer)	iterator.next();	
																clearRangeMarkers(key.intValue());	
												}	
												this.foregroundRangeMarkers.clear();	
								}	
								fireChangeEvent();	
}	
ORIGINAL
public	void	clearRangeMarkers()	{	
				if	(this.backgroundDomainMarkers	!=	null)	{	
								final	Set<Integer>	keys	=		
																		this.backgroundDomainMarkers.keySet();	
												for	(final	Integer	key	:	keys)	{	
																this.clearDomainMarkers(key);	
												}	
												this.backgroundDomainMarkers.clear();	
								}	
								if	(this.foregroundDomainMarkers	!=	null)	{	
												final	Set<Integer>	keys	=		
																						this.foregroundDomainMarkers.keySet();	
												for	(final	Integer	key	:	keys)	{	
																this.clearDomainMarkers(key);	
												}	
												this.foregroundDomainMarkers.clear();	
								}	
								this.fireChangeEvent();	
}
				public	void	clearRangeMarkers()	{	
								if	(this.backgroundRangeMarkers	!=	null)	{	
												final	Set	keys	=		
																this.backgroundRangeMarkers.keySet();	
												for	(final	Integer	key	:	keys)	{	
																this.clearRangeMarkers(key);	
												}	
												this.backgroundRangeMarkers.clear();	
								}	
								if	(this.foregroundRangeMarkers	!=	null)	{	
								final	Set	keys	=		
												this.foregroundRangeMarkers.keySet();	
								for	(final	Integer	key	:	keys)	{	
												this.clearRangeMarkers(key);	
								}	
								this.foregroundRangeMarkers.clear();	
								}	
								this.fireChangeEvent();	
				}
DECOMPILED
26
Study on 3 real-world systems: JUnit, JFreeChart, Tomcat
Using Compilation/Decompilation 

to Enhance Clone Detection
1 Clone pairs before and after decompilation are mostly
similar for all three clone types.
Findings:
2 One can complement the original clone results by
incorporating clones after decompilation.
Characteristics of disjoint clones3
C. Ragkhitwetsagul, J. Krinke
cragkhit.github.io/crjk-iwsc17

Weitere ähnliche Inhalte

Andere mochten auch

Device-specific Clang Tooling for Embedded Systems
Device-specific Clang Tooling for Embedded SystemsDevice-specific Clang Tooling for Embedded Systems
Device-specific Clang Tooling for Embedded SystemsemBO_Conference
 
Meetup: Spark + Kerberos
Meetup: Spark + KerberosMeetup: Spark + Kerberos
Meetup: Spark + KerberosStratio
 
Inventario de perasonalidad pexposicion
Inventario de perasonalidad pexposicionInventario de perasonalidad pexposicion
Inventario de perasonalidad pexposicionTalita Mtz
 
A historia do noso planeta
A historia do noso planetaA historia do noso planeta
A historia do noso planetairenetraba
 
公聽會資料─豐富專案區段徵收
公聽會資料─豐富專案區段徵收公聽會資料─豐富專案區段徵收
公聽會資料─豐富專案區段徵收傑凱 楊
 
A estrutura e dinámica da terra
A estrutura e dinámica da terraA estrutura e dinámica da terra
A estrutura e dinámica da terrairenetraba
 
A saúde e a enfermidade
A saúde e a enfermidadeA saúde e a enfermidade
A saúde e a enfermidadeirenetraba
 
Estudo dos ecosistemas
Estudo dos ecosistemasEstudo dos ecosistemas
Estudo dos ecosistemasirenetraba
 
A información xenética
A información xenéticaA información xenética
A información xenéticairenetraba
 
MERCA PRESENTACION
MERCA PRESENTACIONMERCA PRESENTACION
MERCA PRESENTACIONlu2205
 
Presentación SDL Trados vs Déjà-vu
Presentación SDL Trados vs Déjà-vuPresentación SDL Trados vs Déjà-vu
Presentación SDL Trados vs Déjà-vuOLEXI
 
Los niñ@s de Villar de Olalla visitan Toledo, por Vicente Jiménez
Los niñ@s de Villar de Olalla visitan Toledo, por Vicente JiménezLos niñ@s de Villar de Olalla visitan Toledo, por Vicente Jiménez
Los niñ@s de Villar de Olalla visitan Toledo, por Vicente JiménezRebeca Collado del Pozo
 
Inhalation analytical techniques 1
Inhalation analytical techniques 1Inhalation analytical techniques 1
Inhalation analytical techniques 1Pankaj Deshpande
 

Andere mochten auch (17)

Device-specific Clang Tooling for Embedded Systems
Device-specific Clang Tooling for Embedded SystemsDevice-specific Clang Tooling for Embedded Systems
Device-specific Clang Tooling for Embedded Systems
 
Meetup: Spark + Kerberos
Meetup: Spark + KerberosMeetup: Spark + Kerberos
Meetup: Spark + Kerberos
 
Inventario de perasonalidad pexposicion
Inventario de perasonalidad pexposicionInventario de perasonalidad pexposicion
Inventario de perasonalidad pexposicion
 
Power point fuisha
Power point fuishaPower point fuisha
Power point fuisha
 
A historia do noso planeta
A historia do noso planetaA historia do noso planeta
A historia do noso planeta
 
公聽會資料─豐富專案區段徵收
公聽會資料─豐富專案區段徵收公聽會資料─豐富專案區段徵收
公聽會資料─豐富專案區段徵收
 
A estrutura e dinámica da terra
A estrutura e dinámica da terraA estrutura e dinámica da terra
A estrutura e dinámica da terra
 
A saúde e a enfermidade
A saúde e a enfermidadeA saúde e a enfermidade
A saúde e a enfermidade
 
El bulling
El bullingEl bulling
El bulling
 
Estudo dos ecosistemas
Estudo dos ecosistemasEstudo dos ecosistemas
Estudo dos ecosistemas
 
A información xenética
A información xenéticaA información xenética
A información xenética
 
MERCA PRESENTACION
MERCA PRESENTACIONMERCA PRESENTACION
MERCA PRESENTACION
 
Presentación SDL Trados vs Déjà-vu
Presentación SDL Trados vs Déjà-vuPresentación SDL Trados vs Déjà-vu
Presentación SDL Trados vs Déjà-vu
 
Los niñ@s de Villar de Olalla visitan Toledo, por Vicente Jiménez
Los niñ@s de Villar de Olalla visitan Toledo, por Vicente JiménezLos niñ@s de Villar de Olalla visitan Toledo, por Vicente Jiménez
Los niñ@s de Villar de Olalla visitan Toledo, por Vicente Jiménez
 
Roma
RomaRoma
Roma
 
Inhalation analytical techniques 1
Inhalation analytical techniques 1Inhalation analytical techniques 1
Inhalation analytical techniques 1
 
La amistad
La amistadLa amistad
La amistad
 

Ähnlich wie Using Compilation/Decompilation to Enhance Clone Detection

Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]
Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]
Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]Chaiyong Ragkhitwetsagul
 
Internship - Final Presentation (26-08-2015)
Internship - Final Presentation (26-08-2015)Internship - Final Presentation (26-08-2015)
Internship - Final Presentation (26-08-2015)Sean Krail
 
LINE スタンプショップにおける Zipkin 利用事例
LINE スタンプショップにおける Zipkin 利用事例LINE スタンプショップにおける Zipkin 利用事例
LINE スタンプショップにおける Zipkin 利用事例LINE Corporation
 
Android & PostgreSQL
Android & PostgreSQLAndroid & PostgreSQL
Android & PostgreSQLMark Wong
 
Zarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDIZarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDIKonrad Kokosa
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby SystemsEngine Yard
 
No dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real worldNo dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real worldtcurdt
 
Functional manipulations of large data graphs 20160601
Functional manipulations of large data graphs 20160601Functional manipulations of large data graphs 20160601
Functional manipulations of large data graphs 20160601David Wood
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_mapslcplcp1
 
High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018Zahari Dichev
 
(Slightly) Smarter Smart Pointers
(Slightly) Smarter Smart Pointers(Slightly) Smarter Smart Pointers
(Slightly) Smarter Smart PointersCarlo Pescio
 
Debugging Ruby
Debugging RubyDebugging Ruby
Debugging RubyAman Gupta
 
Bioinfo ngs data format visualization v2
Bioinfo ngs data format visualization v2Bioinfo ngs data format visualization v2
Bioinfo ngs data format visualization v2Li Shen
 
Convolutional neural networks for image classification — evidence from Kaggle...
Convolutional neural networks for image classification — evidence from Kaggle...Convolutional neural networks for image classification — evidence from Kaggle...
Convolutional neural networks for image classification — evidence from Kaggle...Dmytro Mishkin
 
Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)Logico
 
CodeQL + DTrace = Memory Disclosure Vulnerabilities in XNU
CodeQL + DTrace = Memory Disclosure Vulnerabilities in XNUCodeQL + DTrace = Memory Disclosure Vulnerabilities in XNU
CodeQL + DTrace = Memory Disclosure Vulnerabilities in XNUArsenii Kostromin
 
Putting a Fork in Fork (Linux Process and Memory Management)
Putting a Fork in Fork (Linux Process and Memory Management)Putting a Fork in Fork (Linux Process and Memory Management)
Putting a Fork in Fork (Linux Process and Memory Management)David Evans
 

Ähnlich wie Using Compilation/Decompilation to Enhance Clone Detection (20)

Cram
CramCram
Cram
 
Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]
Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]
Similarity of Source Code in the Presence of Pervasive Modifications [SCAM'16]
 
Internship - Final Presentation (26-08-2015)
Internship - Final Presentation (26-08-2015)Internship - Final Presentation (26-08-2015)
Internship - Final Presentation (26-08-2015)
 
LINE スタンプショップにおける Zipkin 利用事例
LINE スタンプショップにおける Zipkin 利用事例LINE スタンプショップにおける Zipkin 利用事例
LINE スタンプショップにおける Zipkin 利用事例
 
Android & PostgreSQL
Android & PostgreSQLAndroid & PostgreSQL
Android & PostgreSQL
 
Zarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDIZarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDI
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby Systems
 
No dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real worldNo dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real world
 
Functional manipulations of large data graphs 20160601
Functional manipulations of large data graphs 20160601Functional manipulations of large data graphs 20160601
Functional manipulations of large data graphs 20160601
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
 
High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018
 
(Slightly) Smarter Smart Pointers
(Slightly) Smarter Smart Pointers(Slightly) Smarter Smart Pointers
(Slightly) Smarter Smart Pointers
 
IDS.pptx
IDS.pptxIDS.pptx
IDS.pptx
 
Debugging Ruby
Debugging RubyDebugging Ruby
Debugging Ruby
 
Bioinfo ngs data format visualization v2
Bioinfo ngs data format visualization v2Bioinfo ngs data format visualization v2
Bioinfo ngs data format visualization v2
 
Convolutional neural networks for image classification — evidence from Kaggle...
Convolutional neural networks for image classification — evidence from Kaggle...Convolutional neural networks for image classification — evidence from Kaggle...
Convolutional neural networks for image classification — evidence from Kaggle...
 
Lrz kurse: r as superglue
Lrz kurse: r as superglueLrz kurse: r as superglue
Lrz kurse: r as superglue
 
Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)Welcome, Java 15! (Japanese)
Welcome, Java 15! (Japanese)
 
CodeQL + DTrace = Memory Disclosure Vulnerabilities in XNU
CodeQL + DTrace = Memory Disclosure Vulnerabilities in XNUCodeQL + DTrace = Memory Disclosure Vulnerabilities in XNU
CodeQL + DTrace = Memory Disclosure Vulnerabilities in XNU
 
Putting a Fork in Fork (Linux Process and Memory Management)
Putting a Fork in Fork (Linux Process and Memory Management)Putting a Fork in Fork (Linux Process and Memory Management)
Putting a Fork in Fork (Linux Process and Memory Management)
 

Kürzlich hochgeladen

Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfRagavanV2
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLManishPatel169454
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01KreezheaRecto
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 

Kürzlich hochgeladen (20)

Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 

Using Compilation/Decompilation to Enhance Clone Detection