This thesis introduced a tool CoRec which can provide co-change suggestions when javascript programmers fix a bug. A comprehensive empirical study was carried out on 14,747 multi-entity bug fixes in ten open-source Ja...
详细信息
This thesis introduced a tool CoRec which can provide co-change suggestions when javascript programmers fix a bug. A comprehensive empirical study was carried out on 14,747 multi-entity bug fixes in ten open-source javascript programs. We characterized the relationship between co-changed entities (e.g., functions and variables), and extracted the most popular change patterns, based on which we built a machine learning (ML)-based approach to recommend additional entity to edit given developers’ code changes. Our empirical study shows that: (1) 50% of the crawled commits involve multi-entity edits (i.e., edits that touch multiple entities simultaneously); (2) three change patterns commonly exist in all ten projects; (3) 80-90% of co-changed function pairs in the 3 patterns either invoke the same function(s), access the same variable(s), or contain similar statement(s); and (4) our ML-based approach CoRec recommended entity changes with high accuracy. Our research will improve programmer productivity and software quality.
Website visitors are performing increasingly complex computational work on the websites' behalf, such as validating forms, rendering animations, and producing data visualizations. In this article, we explore the p...
详细信息
Website visitors are performing increasingly complex computational work on the websites' behalf, such as validating forms, rendering animations, and producing data visualizations. In this article, we explore the possibility of increasing the work offloaded to web visitors' browsers. The idle computing cycles of web visitors can be turned into a large-scale distributed data processing engine, which we term gray computing. Past research has looked primarily at either volunteer computing with specialized clients or browser-based volunteer computing where the visitors keep their browsers open to a single web page for a long period of time. This article provides a comprehensive analysis of the architecture, performance, security, cost effectiveness, user experience, and other issues of gray computing distributed data processing engines with heterogeneous computing power, non-uniform page view times, and high computing pool volatility. Several real-world applications are examined and gray computing is shown to be cost effective for a number of complex tasks ranging from computer vision to bioinformatics to cryptology.
javascript was initially designed for client-side programming in web browsers, but its engine is now embedded in various kinds of host software. Despite the popularity, since the javascript semantics is complex especi...
详细信息
ISBN:
(纸本)9781450367684
javascript was initially designed for client-side programming in web browsers, but its engine is now embedded in various kinds of host software. Despite the popularity, since the javascript semantics is complex especially due to its dynamic nature, understanding and reasoning about javascript programs are challenging tasks. Thus, researchers have proposed several attempts to define the formal semantics of javascript based on ECMAScript, the official javascript specification. However, the existing approaches are manual, labor-intensive, and error-prone and all of their formal semantics target ECMAScript 5.1 (ES5.1, 2011) or its former versions. Therefore, they are not suitable for understanding modern javascript language features introduced since ECMAScript 6 (ES6, 2015). Moreover, ECMAScript has been annually updated since ES6, which already made five releases after *** alleviate the problem, we propose JISET, a javascript IR-based Semantics Extraction Toolchain. It is the first tool that automatically synthesizes parsers and AST-IR translators directly from a given language specification, ECMAScript. For syntax, we develop a parser generation technique with lookahead parsing for BNFES, a variant of the extended BNF used in ECMAScript. For semantics, JISET synthesizes AST-IR translators using forward compatible rule-based compilation. Compile rules describe how to convert each step of abstract algorithms written in a structured natural language into IRES, an Intermediate Representation that we designed for ECMAScript. For the four most recent ECMAScript versions, JISET automatically synthesized parsers for all versions, and compiled 95.03% of the algorithm steps on average. After we complete the missing parts manually, the extracted core semantics of the latest ECMAScript (ES10, 2019) passed all 18,064 applicable tests. Using this first formal semantics of modern javascript, we found nine specification errors in ES10, which were all confirmed by the Ecma Techni
This study covers an in-situ analysis of simulated coal quality attribute variations of a power plant in Tufanbeyli/Adana, Turkey. Three main coal quality variables including calorific value, sulfur and ash content we...
详细信息
This study covers an in-situ analysis of simulated coal quality attribute variations of a power plant in Tufanbeyli/Adana, Turkey. Three main coal quality variables including calorific value, sulfur and ash content were simulated by Sequential Gaussian co-simulation method. The results were validated by a number of tests. A this-study-specific javascript is written to reveal the variations of coal qualities in a specific extraction route and capacity for both short and long-term production planning and scheduling. Results declared that the javascript successfully reflected the simulated variations in the candidate route and very adaptable to similar studies easily.
javascript is one of the most popular programming languages. WeChat Mini-Program is a large ecosystem of javascript applications that runs on the WeChat platform. Millions of Mini-Programs are accessed by WeChat users...
详细信息
ISBN:
(纸本)9781450367684
javascript is one of the most popular programming languages. WeChat Mini-Program is a large ecosystem of javascript applications that runs on the WeChat platform. Millions of Mini-Programs are accessed by WeChat users every week. Consequently, the performance and robustness of Mini-Programs are particularly important. Unfortunately, many Mini-Programs suffer from various defects and performance problems. Dynamic analysis is a useful technique to pinpoint application defects. However, due to the dynamic features of the javascript language and the complexity of the runtime environment, dynamic analysis techniques were rarely used to improve the quality of javascript applications running on industrial platforms such as WeChat Mini-Program previously. In this work, we report our experience of extending Jalangi, a dynamic analysis framework for javascript applications developed by academia, and applying the extended version, named WeJalangi, to diagnose defects in WeChat Mini-Programs. WeJalangi is compatible with existing dynamic analysis tools such as DLint, Smemory, and JITProf. We implemented a null pointer checker on WeJalangi and tested the tool's usability on 152 open-source Mini-Programs. We also conducted a case study in Tencent by applying WeJalangi on six popular commercial Mini-Programs. In the case study, WeJalangi accurately located six null pointer issues and three of them haven't been discovered previously. All of the reported defects have been confirmed by developers and testers.
暂无评论