TU Darmstadt / ULB / TUbiblio

TypeDevil: dynamic type inconsistency analysis for JavaScript

Pradel, Michael ; Schuh, Parker ; Sen, Koushik (2015)
TypeDevil: dynamic type inconsistency analysis for JavaScript.
Florence, Italy
doi: 10.1109/ICSE.2015.51
Conference or Workshop Item, Bibliographie

Abstract

Dynamic languages, such as JavaScript, give programmers the freedom to ignore types, and enable them to write concise code in short time. Despite this freedom, many programs follow implicit type rules, for example, that a function has a particular signature or that a property has a particular type. Violations of such implicit type rules often correlate with problems in the program. This paper presents Type Devil, a mostly dynamic analysis that warns developers about inconsistent types. The key idea is to assign a set of observed types to each variable, property, and function, to merge types based in their structure, and to warn developers about variables, properties, and functions that have inconsistent types. To deal with the pervasiveness of polymorphic behavior in real-world JavaScript programs, we present a set of techniques to remove spurious warnings and to merge related warnings. Applying Type Devil to widely used benchmark suites and real-world web applications reveals 15 problematic type inconsistencies, including correctness problems, performance problems, and dangerous coding practices.

Item Type: Conference or Workshop Item
Erschienen: 2015
Creators: Pradel, Michael ; Schuh, Parker ; Sen, Koushik
Type of entry: Bibliographie
Title: TypeDevil: dynamic type inconsistency analysis for JavaScript
Language: German
Date: May 2015
Publisher: IEEE Press
Issue Number: 37
Book Title: Proceedings of the 37th International Conference on Software Engineering
Series Volume: 1
Event Location: Florence, Italy
DOI: 10.1109/ICSE.2015.51
Abstract:

Dynamic languages, such as JavaScript, give programmers the freedom to ignore types, and enable them to write concise code in short time. Despite this freedom, many programs follow implicit type rules, for example, that a function has a particular signature or that a property has a particular type. Violations of such implicit type rules often correlate with problems in the program. This paper presents Type Devil, a mostly dynamic analysis that warns developers about inconsistent types. The key idea is to assign a set of observed types to each variable, property, and function, to merge types based in their structure, and to warn developers about variables, properties, and functions that have inconsistent types. To deal with the pervasiveness of polymorphic behavior in real-world JavaScript programs, we present a set of techniques to remove spurious warnings and to merge related warnings. Applying Type Devil to widely used benchmark suites and real-world web applications reveals 15 problematic type inconsistencies, including correctness problems, performance problems, and dangerous coding practices.

Uncontrolled Keywords: Instruments, Performance analysis, Runtime, Computer crashes, Arrays, Receivers, Benchmark testing
Identification Number: TUD-CS-2015-12085
Divisions: Profile Areas > Cybersecurity (CYSEC)
Profile Areas
Date Deposited: 14 Aug 2017 14:18
Last Modified: 15 May 2018 10:33
PPN:
Export:
Suche nach Titel in: TUfind oder in Google
Send an inquiry Send an inquiry

Options (only for editors)
Show editorial Details Show editorial Details