SlideShare a Scribd company logo
1 of 21
Download to read offline
CrossLanguageSpotter:CrossLanguageSpotter:
A Library for Detecting RelationsA Library for Detecting Relations
in Polyglot Frameworksin Polyglot Frameworks
Federico Tomassetti, Giuseppe Rizzo, Raphaël Troncy
@giusepperizzo @rtroncy@raindancer
CREATE TABLE Persons (
ID int,
FirstName varchar(255),
LastName varchar(255),
City varchar(255)
);
String query = "select ID, FirstName, LastName, "
+ "City " + "from " + dbName
+ ".Persons";
try { ...
while (rs.next()) {
int id = rs.getInt("ID");
String firstName = rs.getString("FirstName");
String lastName = rs.getString("LastName");
String city= rs.getString("City");
} } catch (SQLException e ) {
......
}
data.sql
Person.java
CREATE TABLE Persons (
ID int,
FirstName varchar(255),
LastName varchar(255),
City varchar(255)
);
String query = "select ID, FirstName, LastName, "
+ "City " + "from " + dbName
+ ".Persons";
try { ...
while (rs.next()) {
int id = rs.getInt("ID");
String firstName = rs.getString("FirstName");
String lastName = rs.getString("LastName");
String city= rs.getString("City");
} } catch (SQLException e ) {
(Hopefully it does not happen)
}
data.sql
Person.java
We were able to identify cross-
language relations at compile time?
So I am aware that this ID is
related to something else
If we could automatically identifyIf we could automatically identify
cross-language relations we could:cross-language relations we could:
- Highlight them- Highlight them
- Support refactoring- Support refactoring
- Validate them- Validate them
- Navigate them- Navigate them
If I change one end, the
connected elements are updated
If we could automatically identifyIf we could automatically identify
cross-language relations we could:cross-language relations we could:
- Highlight them- Highlight them
- Support refactoring- Support refactoring
- Validate them- Validate them
- Navigate them- Navigate them
If we could automatically identifyIf we could automatically identify
cross-language relations we could:cross-language relations we could:
- Highlight them- Highlight them
- Support refactoring- Support refactoring
- Validate them- Validate them
- Navigate them- Navigate them
See broken relations as errors
If we could automatically identifyIf we could automatically identify
cross-language relations we could:cross-language relations we could:
- Highlight them- Highlight them
- Support refactoring- Support refactoring
- Validate them- Validate them
- Navigate them- Navigate them
Click to see the other side of
the relation
Shared id
Shared id
HOW?
Shared id
1. Build ASTs1. Build ASTs
2. Look for pairs of ID2. Look for pairs of ID
3. Understand if each pair is3. Understand if each pair is
really related or notreally related or not
exploiting the semantic ofexploiting the semantic of
the contextthe context
HOW?
<ul id="types">
<li ng-repeat="t in types" ng-class="{'selected': t.id == type}">
<a ng-href="#/{{t.id}}">{{t.title}}</a>
</li>
</ul>
var types = [
{ id: 'sliding-puzzle', title: 'Sliding puzzle' },
{ id: 'word-search-puzzle', title: 'Word search puzzle' }
];
index.html
app.js
app.controller('slidingAdvancedCtrl', function($scope) {
$scope.puzzles = [
{ src: './img/misko.jpg', title: 'Miško Hevery', rows: 4, cols: 4 },
{ src: './img/igor.jpg', title: 'Igor Minár', rows: 3, cols: 3 },
{ src: './img/vojta.jpg', title: 'Vojta Jína', rows: 4, cols: 3 }
];
});
<div ng-repeat="puzzle in puzzles">
<h2>{{puzzle.title}}</h2>
…
</div>
April 10, 2014 13/2123rd
World Wide Web Conference (WWW'14) Dev Track
What about web applications?
Large use of several
programming
languages within the
same application
(HTML, CSS, JS,
python, Java, C#, … )
April 10, 2014 14/2123rd
World Wide Web Conference (WWW'14) Dev Track
April 10, 2014 15/2123rd
World Wide Web Conference (WWW'14) Dev Track
Let's pick up an example
http://git.io/yh_Q0Q
angular-puzzle
April 10, 2014 16/2123rd
World Wide Web Conference (WWW'14) Dev Track
How to integrate?
http://youtu.be/4vi46nCl1Xw
April 10, 2014 17/2123rd
World Wide Web Conference (WWW'14) Dev Track
CrossLanguageSpotter
does the magic
AST
builder
Random
Tree
Classifier
.js
.html
<p1> <conf> <true>
<p2> <conf> <false>
…
<pn> <conf> <false>
Feature
Extraction
Embedded AST (prendo immagine da paper)
AST Builder
April 10, 2014 19/2123rd
World Wide Web Conference (WWW'14) Dev Track
Feature Extraction and Relations Spotter
Feature Extraction
(contextual features)
Tomassetti F., Rizzo G., Torchiano M. (2014), Spotting Automatically Cross-Language Relations. In Conference
on Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE'14), Antwerp, Belgium.
<p1> f(1,1) f(1,2) ...
<p2> f(2,1) f(2,2) ...
…
<pn> f(n,1) f(n,2) ...
shared_lengthitfidf_shared%_shared_length_min
%_shared_length_max
diff_minLevenshtein
JaccardJaro
Tversky
<p1> <conf> <true>
<p2> <conf> <false>
…
<pn> <conf> <false>
RandomTree
(classifier)
April 10, 2014 20/2123rd
World Wide Web Conference (WWW'14) Dev Track
Principles and experimentally assessed
Tomassetti F., Rizzo G., Torchiano M. (2014), Spotting Automatically Cross-Language Relations. In Conference
on Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE'14), Antwerp, Belgium.
April 10, 2014 21/2123rd
World Wide Web Conference (WWW'14) Dev Track
Thanks for your time and attention
http://www.slideshare.net/giusepperizzo
http://git.io/rlHrvg
http://youtu.be/4vi46nCl1Xw

More Related Content

Viewers also liked

Edisi 18 Aceh
Edisi 18 AcehEdisi 18 Aceh
Edisi 18 Aceh
epaper
 
Edisi 25 Nasional
Edisi 25 NasionalEdisi 25 Nasional
Edisi 25 Nasional
epaper
 
Edisi 23 Feb Medan
Edisi 23 Feb MedanEdisi 23 Feb Medan
Edisi 23 Feb Medan
epaper
 
Openeveningpresentation2011 (reduced)
Openeveningpresentation2011 (reduced)Openeveningpresentation2011 (reduced)
Openeveningpresentation2011 (reduced)
douglasgreig
 
Edisi 3 Maret Aceh
Edisi 3 Maret AcehEdisi 3 Maret Aceh
Edisi 3 Maret Aceh
epaper
 
Edisi 23 Maret Aceh
Edisi 23 Maret AcehEdisi 23 Maret Aceh
Edisi 23 Maret Aceh
epaper
 
Edisi 31 Maret Nas
Edisi 31 Maret NasEdisi 31 Maret Nas
Edisi 31 Maret Nas
epaper
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
laurafrencia
 
Edisi 10 April Aceh
Edisi 10 April AcehEdisi 10 April Aceh
Edisi 10 April Aceh
epaper
 
2juni nas
2juni nas2juni nas
2juni nas
epaper
 
Edisi 6 April Nas
Edisi 6 April NasEdisi 6 April Nas
Edisi 6 April Nas
epaper
 

Viewers also liked (20)

Aspects of Reproducibility in Earth Science
Aspects of Reproducibility in Earth ScienceAspects of Reproducibility in Earth Science
Aspects of Reproducibility in Earth Science
 
NEEL2015 challenge summary
NEEL2015 challenge summaryNEEL2015 challenge summary
NEEL2015 challenge summary
 
Edisi 18 Aceh
Edisi 18 AcehEdisi 18 Aceh
Edisi 18 Aceh
 
Flipped classroom
Flipped classroomFlipped classroom
Flipped classroom
 
Edisi 25 Nasional
Edisi 25 NasionalEdisi 25 Nasional
Edisi 25 Nasional
 
Edisi 23 Feb Medan
Edisi 23 Feb MedanEdisi 23 Feb Medan
Edisi 23 Feb Medan
 
Innoz Presentation on SMSGYAN at MIT-EmTech 2011,Bangalore.
Innoz Presentation on SMSGYAN at MIT-EmTech 2011,Bangalore.Innoz Presentation on SMSGYAN at MIT-EmTech 2011,Bangalore.
Innoz Presentation on SMSGYAN at MIT-EmTech 2011,Bangalore.
 
Openeveningpresentation2011 (reduced)
Openeveningpresentation2011 (reduced)Openeveningpresentation2011 (reduced)
Openeveningpresentation2011 (reduced)
 
Edisi 3 Maret Aceh
Edisi 3 Maret AcehEdisi 3 Maret Aceh
Edisi 3 Maret Aceh
 
Edisi 23 Maret Aceh
Edisi 23 Maret AcehEdisi 23 Maret Aceh
Edisi 23 Maret Aceh
 
Edisi 31 Maret Nas
Edisi 31 Maret NasEdisi 31 Maret Nas
Edisi 31 Maret Nas
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
 
Edisi 10 April Aceh
Edisi 10 April AcehEdisi 10 April Aceh
Edisi 10 April Aceh
 
15 sep 11 bt property 2011_silver lining for retail property
15 sep 11 bt property 2011_silver lining for retail property15 sep 11 bt property 2011_silver lining for retail property
15 sep 11 bt property 2011_silver lining for retail property
 
2juni nas
2juni nas2juni nas
2juni nas
 
Edisi 6 April Nas
Edisi 6 April NasEdisi 6 April Nas
Edisi 6 April Nas
 
The 5 worst viruses of all time
The 5 worst viruses of all timeThe 5 worst viruses of all time
The 5 worst viruses of all time
 
AboutAnalytics - Taco Potze - Web Analytics Congres 2010
AboutAnalytics - Taco Potze - Web Analytics Congres 2010AboutAnalytics - Taco Potze - Web Analytics Congres 2010
AboutAnalytics - Taco Potze - Web Analytics Congres 2010
 
The Ultimate Player's Coach
The Ultimate Player's CoachThe Ultimate Player's Coach
The Ultimate Player's Coach
 
Kisumu Kenya November 2010
Kisumu Kenya November 2010Kisumu Kenya November 2010
Kisumu Kenya November 2010
 

Similar to CrossLanguageSpotter: A Library for Detecting Relations in Polyglot Frameworks

Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developers
Sergio Bossa
 
Slides
SlidesSlides
Slides
vti
 
Scala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar ProkopecScala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar Prokopec
Loïc Descotte
 
Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013
Sébastien Deleuze
 

Similar to CrossLanguageSpotter: A Library for Detecting Relations in Polyglot Frameworks (20)

Lettering js
Lettering jsLettering js
Lettering js
 
Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developers
 
Slides
SlidesSlides
Slides
 
Architectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based SoftwareArchitectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based Software
 
jQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and PerformancejQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and Performance
 
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
 
Scala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar ProkopecScala presentation by Aleksandar Prokopec
Scala presentation by Aleksandar Prokopec
 
Coding Ajax
Coding AjaxCoding Ajax
Coding Ajax
 
Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013Dart : one language to rule them all - MixIT 2013
Dart : one language to rule them all - MixIT 2013
 
2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Ws2007 09 10 Fzi Training Groovy Grails V Ws
2007 09 10 Fzi Training Groovy Grails V Ws
 
Contracts in-clojure-pete
Contracts in-clojure-peteContracts in-clojure-pete
Contracts in-clojure-pete
 
Networks All Around Us: Extracting networks from your problem domain
Networks All Around Us: Extracting networks from your problem domainNetworks All Around Us: Extracting networks from your problem domain
Networks All Around Us: Extracting networks from your problem domain
 
Networks All Around Us: Extracting networks from your problem domain
Networks All Around Us: Extracting networks from your problem domainNetworks All Around Us: Extracting networks from your problem domain
Networks All Around Us: Extracting networks from your problem domain
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
 
Einführung in TypeScript
Einführung in TypeScriptEinführung in TypeScript
Einführung in TypeScript
 
Having Fun with Play
Having Fun with PlayHaving Fun with Play
Having Fun with Play
 
Writing a REST Interconnection Library in Swift
Writing a REST Interconnection Library in SwiftWriting a REST Interconnection Library in Swift
Writing a REST Interconnection Library in Swift
 
Handout - Introduction to Programming
Handout - Introduction to ProgrammingHandout - Introduction to Programming
Handout - Introduction to Programming
 
DevFest Istanbul - a free guided tour of Neo4J
DevFest Istanbul - a free guided tour of Neo4JDevFest Istanbul - a free guided tour of Neo4J
DevFest Istanbul - a free guided tour of Neo4J
 
Extreme Swift
Extreme SwiftExtreme Swift
Extreme Swift
 

More from Giuseppe Rizzo

Zenaminer: driving the SCORM tandard towards the Web of Data
Zenaminer: driving the SCORM tandard towards the Web of DataZenaminer: driving the SCORM tandard towards the Web of Data
Zenaminer: driving the SCORM tandard towards the Web of Data
Giuseppe Rizzo
 

More from Giuseppe Rizzo (20)

Artificial intelligence for social good
Artificial intelligence for social goodArtificial intelligence for social good
Artificial intelligence for social good
 
AI in 60 minutes
AI in 60 minutesAI in 60 minutes
AI in 60 minutes
 
COMPRENDE, PERSONALIZZA, INTERAGISCE E IMPARA: L’AI COGNITIVA PER L’HR
COMPRENDE, PERSONALIZZA, INTERAGISCE E  IMPARA: L’AI COGNITIVA PER L’HRCOMPRENDE, PERSONALIZZA, INTERAGISCE E  IMPARA: L’AI COGNITIVA PER L’HR
COMPRENDE, PERSONALIZZA, INTERAGISCE E IMPARA: L’AI COGNITIVA PER L’HR
 
Understand, Answer and Argument: Conversational Agents
Understand, Answer and Argument: Conversational AgentsUnderstand, Answer and Argument: Conversational Agents
Understand, Answer and Argument: Conversational Agents
 
AI For Profiling Your Customers
AI For Profiling Your CustomersAI For Profiling Your Customers
AI For Profiling Your Customers
 
AI for Personalized Chatbot
AI for Personalized ChatbotAI for Personalized Chatbot
AI for Personalized Chatbot
 
Tourist Knowledge Graph Creation to Automating Travel Bookings
Tourist Knowledge Graph Creation to Automating Travel BookingsTourist Knowledge Graph Creation to Automating Travel Bookings
Tourist Knowledge Graph Creation to Automating Travel Bookings
 
The SentiME System at the SSA Challenge Task 1
The SentiME System at the SSA Challenge Task 1The SentiME System at the SSA Challenge Task 1
The SentiME System at the SSA Challenge Task 1
 
Context-Enhanced Adaptive Entity Linking
Context-Enhanced Adaptive Entity LinkingContext-Enhanced Adaptive Entity Linking
Context-Enhanced Adaptive Entity Linking
 
From Data to Knowledge for Tourists
From Data to Knowledge for TouristsFrom Data to Knowledge for Tourists
From Data to Knowledge for Tourists
 
Enabling Visitors to Explore a Smart City
Enabling Visitors to Explore a Smart CityEnabling Visitors to Explore a Smart City
Enabling Visitors to Explore a Smart City
 
Inductive Entity Typing Alignment
Inductive Entity Typing AlignmentInductive Entity Typing Alignment
Inductive Entity Typing Alignment
 
Benchmarking the Extraction and Disambiguation of Named Entities on the Seman...
Benchmarking the Extraction and Disambiguation of Named Entities on the Seman...Benchmarking the Extraction and Disambiguation of Named Entities on the Seman...
Benchmarking the Extraction and Disambiguation of Named Entities on the Seman...
 
Learning with the Web. Structuring data to ease machine understanding
Learning with the Web. Structuring data to ease  machine understandingLearning with the Web. Structuring data to ease  machine understanding
Learning with the Web. Structuring data to ease machine understanding
 
Learning with the Web: Spotting Named Entities on the intersection of NERD an...
Learning with the Web: Spotting Named Entities on the intersection of NERD an...Learning with the Web: Spotting Named Entities on the intersection of NERD an...
Learning with the Web: Spotting Named Entities on the intersection of NERD an...
 
NERD meets NIF: Lifting NLP Extraction Results to the Linked Data Cloud
NERD meets NIF:  Lifting NLP Extraction Results to the Linked Data CloudNERD meets NIF:  Lifting NLP Extraction Results to the Linked Data Cloud
NERD meets NIF: Lifting NLP Extraction Results to the Linked Data Cloud
 
The NERD project
The NERD projectThe NERD project
The NERD project
 
L'enorme archivio di dati: il Web
L'enorme archivio di dati: il WebL'enorme archivio di dati: il Web
L'enorme archivio di dati: il Web
 
NERD: Evaluating Named Entity Recognition Tools in the Web of Data
NERD: Evaluating Named Entity Recognition Tools in the Web of DataNERD: Evaluating Named Entity Recognition Tools in the Web of Data
NERD: Evaluating Named Entity Recognition Tools in the Web of Data
 
Zenaminer: driving the SCORM tandard towards the Web of Data
Zenaminer: driving the SCORM tandard towards the Web of DataZenaminer: driving the SCORM tandard towards the Web of Data
Zenaminer: driving the SCORM tandard towards the Web of Data
 

Recently uploaded

Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
Sérgio Sacani
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Sérgio Sacani
 
Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.pptx
AlMamun560346
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and Classifications
Areesha Ahmad
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...
RohitNehra6
 
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
ssuser79fe74
 

Recently uploaded (20)

PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdf
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.pptx
 
Bacterial Identification and Classifications
Bacterial Identification and ClassificationsBacterial Identification and Classifications
Bacterial Identification and Classifications
 
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
All-domain Anomaly Resolution Office U.S. Department of Defense (U) Case: “Eg...
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C P
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Nanoparticles synthesis and characterization​ ​
Nanoparticles synthesis and characterization​  ​Nanoparticles synthesis and characterization​  ​
Nanoparticles synthesis and characterization​ ​
 
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
Chemical Tests; flame test, positive and negative ions test Edexcel Internati...
 

CrossLanguageSpotter: A Library for Detecting Relations in Polyglot Frameworks

  • 1. CrossLanguageSpotter:CrossLanguageSpotter: A Library for Detecting RelationsA Library for Detecting Relations in Polyglot Frameworksin Polyglot Frameworks Federico Tomassetti, Giuseppe Rizzo, Raphaël Troncy @giusepperizzo @rtroncy@raindancer
  • 2. CREATE TABLE Persons ( ID int, FirstName varchar(255), LastName varchar(255), City varchar(255) ); String query = "select ID, FirstName, LastName, " + "City " + "from " + dbName + ".Persons"; try { ... while (rs.next()) { int id = rs.getInt("ID"); String firstName = rs.getString("FirstName"); String lastName = rs.getString("LastName"); String city= rs.getString("City"); } } catch (SQLException e ) { ...... } data.sql Person.java
  • 3. CREATE TABLE Persons ( ID int, FirstName varchar(255), LastName varchar(255), City varchar(255) ); String query = "select ID, FirstName, LastName, " + "City " + "from " + dbName + ".Persons"; try { ... while (rs.next()) { int id = rs.getInt("ID"); String firstName = rs.getString("FirstName"); String lastName = rs.getString("LastName"); String city= rs.getString("City"); } } catch (SQLException e ) { (Hopefully it does not happen) } data.sql Person.java
  • 4. We were able to identify cross- language relations at compile time?
  • 5. So I am aware that this ID is related to something else If we could automatically identifyIf we could automatically identify cross-language relations we could:cross-language relations we could: - Highlight them- Highlight them - Support refactoring- Support refactoring - Validate them- Validate them - Navigate them- Navigate them
  • 6. If I change one end, the connected elements are updated If we could automatically identifyIf we could automatically identify cross-language relations we could:cross-language relations we could: - Highlight them- Highlight them - Support refactoring- Support refactoring - Validate them- Validate them - Navigate them- Navigate them
  • 7. If we could automatically identifyIf we could automatically identify cross-language relations we could:cross-language relations we could: - Highlight them- Highlight them - Support refactoring- Support refactoring - Validate them- Validate them - Navigate them- Navigate them See broken relations as errors
  • 8. If we could automatically identifyIf we could automatically identify cross-language relations we could:cross-language relations we could: - Highlight them- Highlight them - Support refactoring- Support refactoring - Validate them- Validate them - Navigate them- Navigate them Click to see the other side of the relation
  • 11. Shared id 1. Build ASTs1. Build ASTs 2. Look for pairs of ID2. Look for pairs of ID 3. Understand if each pair is3. Understand if each pair is really related or notreally related or not exploiting the semantic ofexploiting the semantic of the contextthe context HOW?
  • 12. <ul id="types"> <li ng-repeat="t in types" ng-class="{'selected': t.id == type}"> <a ng-href="#/{{t.id}}">{{t.title}}</a> </li> </ul> var types = [ { id: 'sliding-puzzle', title: 'Sliding puzzle' }, { id: 'word-search-puzzle', title: 'Word search puzzle' } ]; index.html app.js app.controller('slidingAdvancedCtrl', function($scope) { $scope.puzzles = [ { src: './img/misko.jpg', title: 'Miško Hevery', rows: 4, cols: 4 }, { src: './img/igor.jpg', title: 'Igor Minár', rows: 3, cols: 3 }, { src: './img/vojta.jpg', title: 'Vojta Jína', rows: 4, cols: 3 } ]; }); <div ng-repeat="puzzle in puzzles"> <h2>{{puzzle.title}}</h2> … </div>
  • 13. April 10, 2014 13/2123rd World Wide Web Conference (WWW'14) Dev Track What about web applications? Large use of several programming languages within the same application (HTML, CSS, JS, python, Java, C#, … )
  • 14. April 10, 2014 14/2123rd World Wide Web Conference (WWW'14) Dev Track
  • 15. April 10, 2014 15/2123rd World Wide Web Conference (WWW'14) Dev Track Let's pick up an example http://git.io/yh_Q0Q angular-puzzle
  • 16. April 10, 2014 16/2123rd World Wide Web Conference (WWW'14) Dev Track How to integrate? http://youtu.be/4vi46nCl1Xw
  • 17. April 10, 2014 17/2123rd World Wide Web Conference (WWW'14) Dev Track CrossLanguageSpotter does the magic AST builder Random Tree Classifier .js .html <p1> <conf> <true> <p2> <conf> <false> … <pn> <conf> <false> Feature Extraction
  • 18. Embedded AST (prendo immagine da paper) AST Builder
  • 19. April 10, 2014 19/2123rd World Wide Web Conference (WWW'14) Dev Track Feature Extraction and Relations Spotter Feature Extraction (contextual features) Tomassetti F., Rizzo G., Torchiano M. (2014), Spotting Automatically Cross-Language Relations. In Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE'14), Antwerp, Belgium. <p1> f(1,1) f(1,2) ... <p2> f(2,1) f(2,2) ... … <pn> f(n,1) f(n,2) ... shared_lengthitfidf_shared%_shared_length_min %_shared_length_max diff_minLevenshtein JaccardJaro Tversky <p1> <conf> <true> <p2> <conf> <false> … <pn> <conf> <false> RandomTree (classifier)
  • 20. April 10, 2014 20/2123rd World Wide Web Conference (WWW'14) Dev Track Principles and experimentally assessed Tomassetti F., Rizzo G., Torchiano M. (2014), Spotting Automatically Cross-Language Relations. In Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE'14), Antwerp, Belgium.
  • 21. April 10, 2014 21/2123rd World Wide Web Conference (WWW'14) Dev Track Thanks for your time and attention http://www.slideshare.net/giusepperizzo http://git.io/rlHrvg http://youtu.be/4vi46nCl1Xw