Precise Dataflow Analysis of Event-Driven Applications

10/28/2019
by   Ming-Ho Yee, et al.
0

Event-driven programming is widely used for implementing user interfaces, web applications, and non-blocking I/O. An event-driven program is organized as a collection of event handlers whose execution is triggered by events. Traditional static analysis techniques are unable to reason precisely about event-driven code because they conservatively assume that event handlers may execute in any order. This paper proposes an automatic transformation from Interprocedural Finite Distributive Subset (IFDS) problems to Interprocedural Distributed Environment (IDE) problems as a general solution to obtain precise static analysis of event-driven applications; problems in both forms can be solved by existing implementations. Our contribution is to show how to improve analysis precision by automatically enriching the former with information about the state of event handlers to filter out infeasible paths. We prove the correctness of our transformation and report on experiments with a proof-of-concept implementation for a subset of JavaScript.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/15/2018

Evolving Event-driven Programs with SignalGP

We present SignalGP, a new genetic programming (GP) technique designed t...
research
07/29/2021

Learning how to listen: Automatically finding bug patterns in event-driven JavaScript APIs

Event-driven programming is widely practiced in the JavaScript community...
research
08/01/2021

SignalGP-Lite: Event Driven Genetic Programming Library for Large-Scale Artificial Life Applications

Event-driven genetic programming representations have been shown to outp...
research
08/30/2015

An Event Network for Exploring Open Information

In this paper, an event network is presented for exploring open informat...
research
03/30/2021

IFDS Taint Analysis with Access Paths

Over the years, static taint analysis emerged as the analysis of choice ...
research
06/24/2019

Event-Driven Models

In Reinforcement Learning we look for meaning in the flow of input/outpu...
research
01/25/2021

Data Flow Analysis of Asynchronous Systems using Infinite Abstract Domains

Asynchronous message-passing systems are employed frequently to implemen...

Please sign up or login with your details

Forgot password? Click here to reset