Proceedings of ISP RAS


Approach to detecting types inconsistency errors in a program code in dynamic languages.

I.E. Bronshteyn.

Abstract

The paper deals with detection of defects in a program code written in dynamic languages. At first, overview of static analyzers for programs in Python, Ruby and JavaScript is done. After this, the paper shows that most of existing tools are not able to detect entire class of defects: types inconsistency errors. Such errors are defined, the paper proves that the errors are prevailing and rather critical in the opinion of software developers. It presents an approach to type inference for dynamic languages and to implementation of checkers based on output from type inference. Concept of defect trace is introduced and construction of such trace is described then.

Keywords

static analysis; defects detection; dynamic typing; Python; Ruby; JavaScript; types inconsistency; defects traces

Edition

Proceedings of the Institute for System Programming, vol. 25, 2013, Стр. 67-84.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2013-25-5

Full text of the paper in pdf (in Russian) Back to the contents of the volume