@article{Khaled Saifullah-2020-Exploring,
title = "Exploring Type Inference Techniques of Dynamically Typed Languages",
author = "Saifullah, C M Khaled and
Asaduzzaman, Muhammad and
Roy, Chanchal K.",
journal = "2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)",
year = "2020",
publisher = "IEEE",
url = "https://gwf-uwaterloo.github.io/gwf-publications/G20-97004",
doi = "10.1109/saner48275.2020.9054814",
abstract = "Developers often prefer dynamically typed programming languages, such as JavaScript, because such languages do not require explicit type declarations. However, such a feature hinders software engineering tasks, such as code completion, type related bug fixes and so on. Deep learning-based techniques are proposed in the literature to infer the types of code elements in JavaScript snippets. These techniques are computationally expensive. While several type inference techniques have been developed to detect types in code snippets written in statically typed languages, it is not clear how effective those techniques are for inferring types in dynamically typed languages, such as JavaScript. In this paper, we investigate the type inference techniques of JavaScript to understand the above two issues further. While doing that we propose a new technique that considers the locally specific code tokens as the context to infer the types of code elements. The evaluation result shows that the proposed technique is 20-47{\%} more accurate than the statically typed language-based techniques and 5{--}14 times faster than the deep learning techniques without sacrificing accuracy. Our analysis of sensitivity, overlapping of predicted types and the number of training examples justify the importance of our technique.",
}
<?xml version="1.0" encoding="UTF-8"?>
<modsCollection xmlns="http://www.loc.gov/mods/v3">
<mods ID="KhaledSaifullah-2020-Exploring">
<titleInfo>
<title>Exploring Type Inference Techniques of Dynamically Typed Languages</title>
</titleInfo>
<name type="personal">
<namePart type="given">C</namePart>
<namePart type="given">M</namePart>
<namePart type="given">Khaled</namePart>
<namePart type="family">Saifullah</namePart>
<role>
<roleTerm authority="marcrelator" type="text">author</roleTerm>
</role>
</name>
<name type="personal">
<namePart type="given">Muhammad</namePart>
<namePart type="family">Asaduzzaman</namePart>
<role>
<roleTerm authority="marcrelator" type="text">author</roleTerm>
</role>
</name>
<name type="personal">
<namePart type="given">Chanchal</namePart>
<namePart type="given">K</namePart>
<namePart type="family">Roy</namePart>
<role>
<roleTerm authority="marcrelator" type="text">author</roleTerm>
</role>
</name>
<originInfo>
<dateIssued>2020</dateIssued>
</originInfo>
<typeOfResource>text</typeOfResource>
<genre authority="bibutilsgt">journal article</genre>
<relatedItem type="host">
<titleInfo>
<title>2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)</title>
</titleInfo>
<originInfo>
<issuance>continuing</issuance>
<publisher>IEEE</publisher>
</originInfo>
<genre authority="marcgt">periodical</genre>
<genre authority="bibutilsgt">academic journal</genre>
</relatedItem>
<abstract>Developers often prefer dynamically typed programming languages, such as JavaScript, because such languages do not require explicit type declarations. However, such a feature hinders software engineering tasks, such as code completion, type related bug fixes and so on. Deep learning-based techniques are proposed in the literature to infer the types of code elements in JavaScript snippets. These techniques are computationally expensive. While several type inference techniques have been developed to detect types in code snippets written in statically typed languages, it is not clear how effective those techniques are for inferring types in dynamically typed languages, such as JavaScript. In this paper, we investigate the type inference techniques of JavaScript to understand the above two issues further. While doing that we propose a new technique that considers the locally specific code tokens as the context to infer the types of code elements. The evaluation result shows that the proposed technique is 20-47% more accurate than the statically typed language-based techniques and 5–14 times faster than the deep learning techniques without sacrificing accuracy. Our analysis of sensitivity, overlapping of predicted types and the number of training examples justify the importance of our technique.</abstract>
<identifier type="citekey">Khaled Saifullah-2020-Exploring</identifier>
<identifier type="doi">10.1109/saner48275.2020.9054814</identifier>
<location>
<url>https://gwf-uwaterloo.github.io/gwf-publications/G20-97004</url>
</location>
<part>
<date>2020</date>
</part>
</mods>
</modsCollection>
%0 Journal Article
%T Exploring Type Inference Techniques of Dynamically Typed Languages
%A Saifullah, C. M. Khaled
%A Asaduzzaman, Muhammad
%A Roy, Chanchal K.
%J 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)
%D 2020
%I IEEE
%F KhaledSaifullah-2020-Exploring
%X Developers often prefer dynamically typed programming languages, such as JavaScript, because such languages do not require explicit type declarations. However, such a feature hinders software engineering tasks, such as code completion, type related bug fixes and so on. Deep learning-based techniques are proposed in the literature to infer the types of code elements in JavaScript snippets. These techniques are computationally expensive. While several type inference techniques have been developed to detect types in code snippets written in statically typed languages, it is not clear how effective those techniques are for inferring types in dynamically typed languages, such as JavaScript. In this paper, we investigate the type inference techniques of JavaScript to understand the above two issues further. While doing that we propose a new technique that considers the locally specific code tokens as the context to infer the types of code elements. The evaluation result shows that the proposed technique is 20-47% more accurate than the statically typed language-based techniques and 5–14 times faster than the deep learning techniques without sacrificing accuracy. Our analysis of sensitivity, overlapping of predicted types and the number of training examples justify the importance of our technique.
%R 10.1109/saner48275.2020.9054814
%U https://gwf-uwaterloo.github.io/gwf-publications/G20-97004
%U https://doi.org/10.1109/saner48275.2020.9054814
Markdown (Informal)
[Exploring Type Inference Techniques of Dynamically Typed Languages](https://gwf-uwaterloo.github.io/gwf-publications/G20-97004) (Saifullah et al., GWF 2020)
ACL
- C M Khaled Saifullah, Muhammad Asaduzzaman, and Chanchal K. Roy. 2020. Exploring Type Inference Techniques of Dynamically Typed Languages. 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER).