Download PDFOpen PDF in browserAn abstract domain for objects in dynamic programming languagesEasyChair Preprint 1501, version 215 pages•Date: September 14, 2019AbstractDynamic 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
|