Download PDFOpen PDF in browser

An abstract domain for objects in dynamic programming languages

EasyChair Preprint 1501, version 2

Versions: 12history
15 pagesDate: September 14, 2019

Abstract

Dynamic languages, such as JavaScript, PHP, Python or Ruby, provide a memory model for objects data structures allowing pro- grammers to dynamically create, manipulate, and delete objects’ proper- ties. Moreover, in dynamic languages it is possible to access and update properties by using strings: this represents a hard challenge for static analysis. In this paper, we exploit the finite state automata abstract domain, approximating strings, in order to define a novel abstract do- main for objects. We design an abstract interpreter useful to analyze objects in a toy language, inspired by real-word dynamic programming languages. We then show, by means of minimal yet expressive examples, the precision of the proposed abstract domain.

Keyphrases: Objects data-structure, abstract interpretation, dynamic programming languages, static analysis

BibTeX entry
BibTeX does not have the right entry for preprints. This is a hack for producing the correct reference:
@booklet{EasyChair:1501,
  author    = {Vincenzo Arceri and Michele Pasqua and Isabella Mastroeni},
  title     = {An abstract domain for objects in dynamic programming languages},
  howpublished = {EasyChair Preprint 1501},
  year      = {EasyChair, 2019}}
Download PDFOpen PDF in browser