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

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 inconsis...

Full description

Bibliographic Details
Main Author: I. E. Bronshteyn
Format: Article
Language:English
Published: Ivannikov Institute for System Programming of the Russian Academy of Sciences 2018-10-01
Series:Труды Института системного программирования РАН
Subjects:
Online Access:https://ispranproceedings.elpub.ru/jour/article/view/874
_version_ 1819031963773698048
author I. E. Bronshteyn
author_facet I. E. Bronshteyn
author_sort I. E. Bronshteyn
collection DOAJ
description 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.
first_indexed 2024-12-21T06:54:24Z
format Article
id doaj.art-28c5345b73f34e668780b2da3faf4e66
institution Directory Open Access Journal
issn 2079-8156
2220-6426
language English
last_indexed 2024-12-21T06:54:24Z
publishDate 2018-10-01
publisher Ivannikov Institute for System Programming of the Russian Academy of Sciences
record_format Article
series Труды Института системного программирования РАН
spelling doaj.art-28c5345b73f34e668780b2da3faf4e662022-12-21T19:12:22ZengIvannikov Institute for System Programming of the Russian Academy of SciencesТруды Института системного программирования РАН2079-81562220-64262018-10-012506784874Approach to detecting types inconsistency errors in a program code in dynamic languagesI. E. Bronshteyn0ИСП РАН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.https://ispranproceedings.elpub.ru/jour/article/view/874статический анализобнаружение дефектовдинамическая типизация данныхpythonrubyjavascriptнесоответствие типовтрассы дефектовстатический анализ
spellingShingle I. E. Bronshteyn
Approach to detecting types inconsistency errors in a program code in dynamic languages
Труды Института системного программирования РАН
статический анализ
обнаружение дефектов
динамическая типизация данных
python
ruby
javascript
несоответствие типов
трассы дефектовстатический анализ
title Approach to detecting types inconsistency errors in a program code in dynamic languages
title_full Approach to detecting types inconsistency errors in a program code in dynamic languages
title_fullStr Approach to detecting types inconsistency errors in a program code in dynamic languages
title_full_unstemmed Approach to detecting types inconsistency errors in a program code in dynamic languages
title_short Approach to detecting types inconsistency errors in a program code in dynamic languages
title_sort approach to detecting types inconsistency errors in a program code in dynamic languages
topic статический анализ
обнаружение дефектов
динамическая типизация данных
python
ruby
javascript
несоответствие типов
трассы дефектовстатический анализ
url https://ispranproceedings.elpub.ru/jour/article/view/874
work_keys_str_mv AT iebronshteyn approachtodetectingtypesinconsistencyerrorsinaprogramcodeindynamiclanguages