Presentation is loading. Please wait.

Presentation is loading. Please wait.

String Analysis for JavaScript Programs Serena KingDr.Lu Yves Engelmann.

Similar presentations


Presentation on theme: "String Analysis for JavaScript Programs Serena KingDr.Lu Yves Engelmann."— Presentation transcript:

1 String Analysis for JavaScript Programs Serena KingDr.Lu Yves Engelmann

2 Abstract As the usage of JavaScript is taking over web applications and applications development, and server side scripting, JavaScript's conciseness is a very important aspect of the language. Static analysis of JavaScript code is very difficult due to the dynamic nature of the language. JSAI (JavaScript Static Analysis Interpreter) is designed to be provably sound with respect to a specific concrete semantics for JavaScript, which has been extensively tested against a commercial JavaScript implementation [1]. The built-in domain for string analysis that comes with JSAI distribution is a constant propagation domain. The project will replace the constant propagation domain with the domain of Finite State Automaton.

3 Objectives Week 3: To find a software package for manipulating Finite Automaton Identify more than one so that we can have options and present a short description to present to Dr. Lu for his advisory on which is the best Identify abstract operation to design and implement Modify current concatenation operation for a more precise output. Familiarize ourselves with Scala and the functions in JSAI JSAI compiler is written in Scala. Read through current implementation and note how we can optimize String operations and properties for more precision

4 How JSAI String Operations Currently Work var str1 = "one" var str2 = "two” If (some condition) var fullstr = str1 Else var fullstr = str2 Return(fullstr) If this statement were to be passed through the JSAI Analyzer the output would be ” T " which is undefined or means "I don’t know" since the two strings are not the same. We plan on working with these string property domains and operations to create a more precise output.

5 Finite Automata to replace Constant Propagation

6 Represent Least Upper Bound using FAs

7 Software to manipulate FAs JFLAP Create Fas, NFAs, and Turing Machines Unable to add FAs, or taking the intersection of two machines Visual Automata Simulator Create FAS Doesn’t provide FAs manipulation Finite State Automata Utilities Written in Prolog and so far we haven’t figured how to get the GUI working.

8 Next Steps? We will being designing a concatenation operation in Scala so start testing with the Interpreter Identify the best FA software to use for translate the Scala code Continue to study the JSAI Analyzer. Study abstract domain code and interpreter code to find ways to Optimize the Analyzer

9 THANK YOU!


Download ppt "String Analysis for JavaScript Programs Serena KingDr.Lu Yves Engelmann."

Similar presentations


Ads by Google