SlideShare a Scribd company logo
Astrid Younang & Lunjin Lu & Nabil Almashfi
March 3,2017
Outline
1. Motivation
2. Related Work
3. Conventionality Analysis
4. Conclusion and Future Work
Motivation
 JavaScript objects have dynamic set of fields
(properties)
 Arrays are just like regular objects with the property
(field) length that is automatically updated;
 Arrays can have fields whose names are not indices;
 Are they used like regular objects?
 Are they used in a conventional way like in Java ?
Motivation
 A conventional array is an array that does not have
any properties other than indices and length.
 Conventionality analysis
• provides valuable information for program
comprehension
• provides valuable information for performance
optimization
• Feature to add to JavaScript development tool
var A = [ ] ; / New empty array /
var i ;
function populate_array (x,y,A) {
for (i=x ; i<=y ; i++) {
A[i]= 2*i +10;
}
return A;
}
A = populate_array (0, 3, A) ;
A = populate_array (6, 10, A) ;
A.prop1 = “foo” ;
i= -3.5; A[i] = true;
[0, 3]  [10,16], [6,10] [22,30], // A has indexes 0—3, 6—10
// A is not dense
“prop1”  “foo”,
SNum true // A is not conventional
“length”  11
Information tracked by
conventional analysis
 String information: what strings a variable can take as
value?
 Number information: what numbers a variable can
take as a value?
 Type information: is a number definitely integer or
possibly a floating point number?
Related Work
 Existing abstract string domains
 Constant propagation domain for strings
(TAJS, SAFE, JSAI)
 Character inclusion, prefix domain, suffix
domain, bricks and string graphs
 Automata-based string domains
Related Work
Existing abstract string domains
 do not track range of indexes (which are
strings) precisely
 do not supports conventionality analysis
Abstract string domain

Abstract string domain- Operations
n – a non-index numeric string
r – a non-numeric string
Abstract numeric domain
 Range -- Interval domain
intv(3,5) – all numbers between 3 and 5
norm(3,5) – all numbers between 3 and d plus NaN
Type -- <int, any>
Evaluation
 Studied 98 benchmark programs
 70 out of them had less than 2 arrays
(were omitted)
Evaluation
Evaluation
Only conventional arrays were found on
GitHub
o Programmers most likely use arrays in a
conventional way and flagging possible
non-conventional arrays provides useful
information during program
development.
Evaluation
 Arrays are used in a conventional way
in 95% of the benchmark programs.
Storage of single/mixed types
o 377 arrays analyzed
o 11.93% - string values
o 33% - integer values
Conclusion & Future work
 Conventionality analysis can be
integrated in static analyzers
 Future work will investigate the use the
use of array information for
performance optimization

More Related Content

What's hot (9)

PDF
Hidden Truths in Dead Software Paths
Ben Hermann
 
PPT
12. Stack
Nilesh Dalvi
 
PPT
Rseminarp
Praveen Penumathsa
 
PDF
Safety Beyond Types
scalaconfjp
 
PDF
Sorting
Budditha Hettige
 
PPTX
Transfer learning, active learning using tensorflow object detection api
설기 김
 
PPTX
5 raii
Shubham Atkare
 
PPTX
Advanced Functional Programming in Scala
Patrick Nicolas
 
PDF
Generics past, present and future
RichardWarburton
 
Hidden Truths in Dead Software Paths
Ben Hermann
 
12. Stack
Nilesh Dalvi
 
Safety Beyond Types
scalaconfjp
 
Transfer learning, active learning using tensorflow object detection api
설기 김
 
Advanced Functional Programming in Scala
Patrick Nicolas
 
Generics past, present and future
RichardWarburton
 

Viewers also liked (20)

PDF
TMPA-2017: Compositional Process Model Synthesis based on Interface Patterns
Iosif Itkin
 
PDF
TMPA-2017: Distributed Analysis of the BMC Kind: Making It Fit the Tornado Su...
Iosif Itkin
 
PDF
TMPA-2017: Conference Opening
Iosif Itkin
 
PDF
TMPA-2017: Vellvm - Verifying the LLVM
Iosif Itkin
 
PDF
TMPA-2017: Unity Application Testing Automation with Appium and Image Recogni...
Iosif Itkin
 
PDF
TMPA-2017: Live testing distributed system fault tolerance with fault injecti...
Iosif Itkin
 
PDF
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
Iosif Itkin
 
PDF
TMPA-2017: Generating Cost Aware Covering Arrays For Free
Iosif Itkin
 
PDF
TMPA-2017: Defect Report Classification in Accordance with Areas of Testing
Iosif Itkin
 
PDF
TMPA-2017: Technology and Tools for Developing Industrial Software Test Suite...
Iosif Itkin
 
PDF
TMPA-2017: Using Functional Directives to Analyze Code Complexity and Communi...
Iosif Itkin
 
PDF
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
Iosif Itkin
 
PDF
TMPA-2017: Functional Parser of Markdown Language Based on Monad Combining an...
Iosif Itkin
 
PDF
TMPA-2017: Stemming Architectural Decay in Software Systems
Iosif Itkin
 
PDF
TMPA-2017: The Quest for Average Response Time
Iosif Itkin
 
PDF
TMPA-2017: Evolutionary Algorithms in Test Generation for digital systems
Iosif Itkin
 
PDF
TMPA-2017: A Survey of High-Performance Computing for Software Verification
Iosif Itkin
 
PDF
TMPA-2017: Layered Layouts for Software Systems Visualization
Iosif Itkin
 
PDF
TMPA-2017: Predicate Abstraction Based Configurable Method for Data Race Dete...
Iosif Itkin
 
PDF
TMPA-2017: Dl-Check: Dynamic Potential Deadlock Detection Tool for Java Programs
Iosif Itkin
 
TMPA-2017: Compositional Process Model Synthesis based on Interface Patterns
Iosif Itkin
 
TMPA-2017: Distributed Analysis of the BMC Kind: Making It Fit the Tornado Su...
Iosif Itkin
 
TMPA-2017: Conference Opening
Iosif Itkin
 
TMPA-2017: Vellvm - Verifying the LLVM
Iosif Itkin
 
TMPA-2017: Unity Application Testing Automation with Appium and Image Recogni...
Iosif Itkin
 
TMPA-2017: Live testing distributed system fault tolerance with fault injecti...
Iosif Itkin
 
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
Iosif Itkin
 
TMPA-2017: Generating Cost Aware Covering Arrays For Free
Iosif Itkin
 
TMPA-2017: Defect Report Classification in Accordance with Areas of Testing
Iosif Itkin
 
TMPA-2017: Technology and Tools for Developing Industrial Software Test Suite...
Iosif Itkin
 
TMPA-2017: Using Functional Directives to Analyze Code Complexity and Communi...
Iosif Itkin
 
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
Iosif Itkin
 
TMPA-2017: Functional Parser of Markdown Language Based on Monad Combining an...
Iosif Itkin
 
TMPA-2017: Stemming Architectural Decay in Software Systems
Iosif Itkin
 
TMPA-2017: The Quest for Average Response Time
Iosif Itkin
 
TMPA-2017: Evolutionary Algorithms in Test Generation for digital systems
Iosif Itkin
 
TMPA-2017: A Survey of High-Performance Computing for Software Verification
Iosif Itkin
 
TMPA-2017: Layered Layouts for Software Systems Visualization
Iosif Itkin
 
TMPA-2017: Predicate Abstraction Based Configurable Method for Data Race Dete...
Iosif Itkin
 
TMPA-2017: Dl-Check: Dynamic Potential Deadlock Detection Tool for Java Programs
Iosif Itkin
 
Ad

Similar to TMPA-2017: Static Checking of Array Objects in JavaScript (20)

PPTX
ADVANCED DATA STRUCTURES AND ALGORITHMS.pptx
brajmohan21nitj
 
PDF
12000121037.pdf
AVIWORLD1
 
PPTX
U2.pptx Advanced Data Structures and Algorithms
snehalkulkarni78
 
PPTX
F# array searching
DrRajeshreeKhande
 
PPTX
2301107005 - ADNAN PP.pptx array of objects
kavipriyahari1980
 
PPTX
Data Structures - Array presentation .pptx
IshanKapoor26
 
PPT
Arrays and vectors in Data Structure.ppt
mazanali7145
 
PPT
Data Structures: A Foundation for Efficient Programming
MSridhar18
 
PPTX
Understanding of Arrays and its types along with implementation
VISHALYADAV809458
 
PDF
Datatype
baran19901990
 
PDF
(2) collections algorithms
Nico Ludwig
 
PDF
DSA-Lecture-05
Haitham El-Ghareeb
 
PPT
Theory of programming language chapter 6
memonrizwan053
 
PPTX
Plc (1)
James Croft
 
PDF
M v bramhananda reddy dsa complete notes
Malikireddy Bramhananda Reddy
 
PPT
pl12ch6.ppt
BrandonGarcia294013
 
PPTX
DSA Unit II array.pptx
sayalishivarkar1
 
PPTX
Array,data type
veena_bhagyawani
 
PPT
Arrays Basicfundamentaldatastructure.ppt
JyothiAmpally
 
PPT
Js objects
Charles Russell
 
ADVANCED DATA STRUCTURES AND ALGORITHMS.pptx
brajmohan21nitj
 
12000121037.pdf
AVIWORLD1
 
U2.pptx Advanced Data Structures and Algorithms
snehalkulkarni78
 
F# array searching
DrRajeshreeKhande
 
2301107005 - ADNAN PP.pptx array of objects
kavipriyahari1980
 
Data Structures - Array presentation .pptx
IshanKapoor26
 
Arrays and vectors in Data Structure.ppt
mazanali7145
 
Data Structures: A Foundation for Efficient Programming
MSridhar18
 
Understanding of Arrays and its types along with implementation
VISHALYADAV809458
 
Datatype
baran19901990
 
(2) collections algorithms
Nico Ludwig
 
DSA-Lecture-05
Haitham El-Ghareeb
 
Theory of programming language chapter 6
memonrizwan053
 
Plc (1)
James Croft
 
M v bramhananda reddy dsa complete notes
Malikireddy Bramhananda Reddy
 
pl12ch6.ppt
BrandonGarcia294013
 
DSA Unit II array.pptx
sayalishivarkar1
 
Array,data type
veena_bhagyawani
 
Arrays Basicfundamentaldatastructure.ppt
JyothiAmpally
 
Js objects
Charles Russell
 
Ad

More from Iosif Itkin (20)

PDF
Foundations of Software Testing Lecture 4
Iosif Itkin
 
PPTX
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
Iosif Itkin
 
PDF
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Iosif Itkin
 
PDF
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Iosif Itkin
 
PDF
Operational Resilience in Financial Market Infrastructures
Iosif Itkin
 
PDF
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
Iosif Itkin
 
PDF
Testing the Intelligence of your AI
Iosif Itkin
 
PDF
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
Iosif Itkin
 
PDF
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
Iosif Itkin
 
PPTX
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
Iosif Itkin
 
PDF
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
Iosif Itkin
 
PDF
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
Iosif Itkin
 
PPTX
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
Iosif Itkin
 
PDF
QA Community Saratov: Past, Present, Future (2019-02-08)
Iosif Itkin
 
PDF
Machine Learning and RoboCop Testing
Iosif Itkin
 
PDF
Behaviour Driven Development: Oltre i limiti del possibile
Iosif Itkin
 
PDF
2018 - Exactpro Year in Review
Iosif Itkin
 
PPTX
Exactpro Discussion about Joy and Strategy
Iosif Itkin
 
PPTX
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
Iosif Itkin
 
PDF
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
Iosif Itkin
 
Foundations of Software Testing Lecture 4
Iosif Itkin
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
Iosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Iosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Iosif Itkin
 
Operational Resilience in Financial Market Infrastructures
Iosif Itkin
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
Iosif Itkin
 
Testing the Intelligence of your AI
Iosif Itkin
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
Iosif Itkin
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
Iosif Itkin
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
Iosif Itkin
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
Iosif Itkin
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
Iosif Itkin
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
Iosif Itkin
 
QA Community Saratov: Past, Present, Future (2019-02-08)
Iosif Itkin
 
Machine Learning and RoboCop Testing
Iosif Itkin
 
Behaviour Driven Development: Oltre i limiti del possibile
Iosif Itkin
 
2018 - Exactpro Year in Review
Iosif Itkin
 
Exactpro Discussion about Joy and Strategy
Iosif Itkin
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
Iosif Itkin
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
Iosif Itkin
 

Recently uploaded (20)

PDF
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
PDF
Why aren't you using FME Flow's CPU Time?
Safe Software
 
PPTX
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
PDF
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
PDF
Open Source Milvus Vector Database v 2.6
Zilliz
 
PDF
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
 
PDF
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
PDF
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PDF
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 
PDF
Redefining Work in the Age of AI - What to expect? How to prepare? Why it mat...
Malinda Kapuruge
 
PDF
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
PPTX
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
 
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
PDF
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
PDF
My Journey from CAD to BIM: A True Underdog Story
Safe Software
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
PDF
Kubernetes - Architecture & Components.pdf
geethak285
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
Why aren't you using FME Flow's CPU Time?
Safe Software
 
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Open Source Milvus Vector Database v 2.6
Zilliz
 
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
Unlocking FME Flow’s Potential: Architecture Design for Modern Enterprises
Safe Software
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 
Redefining Work in the Age of AI - What to expect? How to prepare? Why it mat...
Malinda Kapuruge
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
 
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
My Journey from CAD to BIM: A True Underdog Story
Safe Software
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
Kubernetes - Architecture & Components.pdf
geethak285
 

TMPA-2017: Static Checking of Array Objects in JavaScript

  • 1. Astrid Younang & Lunjin Lu & Nabil Almashfi March 3,2017
  • 2. Outline 1. Motivation 2. Related Work 3. Conventionality Analysis 4. Conclusion and Future Work
  • 3. Motivation  JavaScript objects have dynamic set of fields (properties)  Arrays are just like regular objects with the property (field) length that is automatically updated;  Arrays can have fields whose names are not indices;  Are they used like regular objects?  Are they used in a conventional way like in Java ?
  • 4. Motivation  A conventional array is an array that does not have any properties other than indices and length.  Conventionality analysis • provides valuable information for program comprehension • provides valuable information for performance optimization • Feature to add to JavaScript development tool
  • 5. var A = [ ] ; / New empty array / var i ; function populate_array (x,y,A) { for (i=x ; i<=y ; i++) { A[i]= 2*i +10; } return A; } A = populate_array (0, 3, A) ; A = populate_array (6, 10, A) ; A.prop1 = “foo” ; i= -3.5; A[i] = true; [0, 3]  [10,16], [6,10] [22,30], // A has indexes 0—3, 6—10 // A is not dense “prop1”  “foo”, SNum true // A is not conventional “length”  11
  • 6. Information tracked by conventional analysis  String information: what strings a variable can take as value?  Number information: what numbers a variable can take as a value?  Type information: is a number definitely integer or possibly a floating point number?
  • 7. Related Work  Existing abstract string domains  Constant propagation domain for strings (TAJS, SAFE, JSAI)  Character inclusion, prefix domain, suffix domain, bricks and string graphs  Automata-based string domains
  • 8. Related Work Existing abstract string domains  do not track range of indexes (which are strings) precisely  do not supports conventionality analysis
  • 10. Abstract string domain- Operations n – a non-index numeric string r – a non-numeric string
  • 11. Abstract numeric domain  Range -- Interval domain intv(3,5) – all numbers between 3 and 5 norm(3,5) – all numbers between 3 and d plus NaN Type -- <int, any>
  • 12. Evaluation  Studied 98 benchmark programs  70 out of them had less than 2 arrays (were omitted)
  • 14. Evaluation Only conventional arrays were found on GitHub o Programmers most likely use arrays in a conventional way and flagging possible non-conventional arrays provides useful information during program development.
  • 15. Evaluation  Arrays are used in a conventional way in 95% of the benchmark programs. Storage of single/mixed types o 377 arrays analyzed o 11.93% - string values o 33% - integer values
  • 16. Conclusion & Future work  Conventionality analysis can be integrated in static analyzers  Future work will investigate the use the use of array information for performance optimization