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

Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
gindu3009
 
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
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
Sérgio Sacani
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSS
LeenakshiTyagi
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
PirithiRaju
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Sérgio Sacani
 

Recently uploaded (20)

Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdf
 
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...
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
 
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
 
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptxPhysiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
 
fundamental of entomology all in one topics of entomology
fundamental of entomology all in one topics of entomologyfundamental of entomology all in one topics of entomology
fundamental of entomology all in one topics of entomology
 
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
 
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
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based Nanomaterials
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSS
 
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdfPests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
Pests of cotton_Borer_Pests_Binomics_Dr.UPR.pdf
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
 
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptxUnlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
 

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