Audio files entered cartography about 25 years ago. Since the mid-1990s, several examples of audiovisual maps have been created and published. These maps cover a diverse range of applications. In terms of the sou...
详细信息
javascript has become the most widely used language for client-side web programming. The dynamic nature of javascript makes understanding its code notoriously difficult, leading to buggy programs and a lack of adequat...
详细信息
ISBN:
(纸本)9781450310833
javascript has become the most widely used language for client-side web programming. The dynamic nature of javascript makes understanding its code notoriously difficult, leading to buggy programs and a lack of adequate static-analysis tools. We believe that logical reasoning has much to offer javascript: a simple description of program behaviour, a clear understanding of module boundaries, and the ability to verify security contracts. We introduce a program logic for reasoning about a broad subset of javascript, including challenging features such as prototype inheritance and with. We adapt ideas from separation logic to provide tractable reasoning about javascript code: reasoning about easy programs is easy;reasoning about hard programs is possible. We prove a strong soundness result. All libraries written in our subset and proved correct with respect to their specifications will be well-behaved, even when called by arbitrary javascript code.
javascript has become one of the most popular programming languages for both client-side and server-side applications. In javascript applications, events may be generated, triggered and consumed non-deterministically....
详细信息
ISBN:
(纸本)9781538626849
javascript has become one of the most popular programming languages for both client-side and server-side applications. In javascript applications, events may be generated, triggered and consumed non-deterministically. Thus, javascript applications may suffer from non-deterministic bugs, when events are triggered and consumed in an unexpected order. In this proposal, we aim to characterize and combat non-deterministic bugs in javascript applications. Specifically, we first perform a comprehensive study about real-world non-deterministic bugs in server-side javascript applications. In order to facilitate bug diagnosis, we further propose approaches to isolate the necessary events that are responsible for the occurrence of a failure. We also plan to design new techniques in detecting non-deterministic bugs in javascript applications.
Time-traveling in the execution history of a program during debugging enables a developer to precisely track and understand the sequence of statements and program values leading to an error. To provide this functional...
详细信息
ISBN:
(纸本)9781450342186
Time-traveling in the execution history of a program during debugging enables a developer to precisely track and understand the sequence of statements and program values leading to an error. To provide this functionality to real world developers, we embarked on a two year journey to create a production quality time-traveling debugger in Microsoft's open-source ChakraCore javascript engine and the popular *** application framework.
This article considers the ability of large asynchronous machines optimal selection for assigned types of load characteristics by automated self-running time calculation when power grid voltage abnormal decrease takes...
详细信息
ISBN:
(纸本)9781509008551
This article considers the ability of large asynchronous machines optimal selection for assigned types of load characteristics by automated self-running time calculation when power grid voltage abnormal decrease takes place.
javascript has evolved into a versatile ecosystem for not just the web, but also a wide range of server-side and client-side applications. With this increased scope, the potential impact of bugs increases. We introduc...
详细信息
ISBN:
(纸本)9781450350778
javascript has evolved into a versatile ecosystem for not just the web, but also a wide range of server-side and client-side applications. With this increased scope, the potential impact of bugs increases. We introduce ExpoSE, a dynamic symbolic execution engine for *** applications. ExpoSE automatically generates test cases to find bugs and cover as many paths in the target program as possible. We discuss the specific challenges for symbolic execution arising from the widespread use of regular expressions in such applications. In particular, we make explicit the issues of capture groups, backreferences, and greediness in javascript's flavor of regular expressions, and our models improve over previous work that only partially addressed these. We evaluate ExpoSE on three popular javascript libraries that make heavy use of regular expressions, and we report a previously unknown bug in the Minimist library.
javascript is growing explosively and is now used in large mature projects even outside the web domain. javascript is also a dynamically typed language for which static type systems, notably Facebook's Flow and Mi...
详细信息
ISBN:
(纸本)9781538638682
javascript is growing explosively and is now used in large mature projects even outside the web domain. javascript is also a dynamically typed language for which static type systems, notably Facebook's Flow and Microsoft's TypeScript, have been written. What benefits do these static type systems provide? Leveraging javascript project histories, we select a fixed bug and check out the code just prior to the fix. We manually add type annotations to the buggy code and test whether Flow and TypeScript report an error on the buggy code, thereby possibly prompting a developer to fix the bug before its public release. We then report the proportion of bugs on which these type systems reported an error. Evaluating static type systems against public bugs, which have survived testing and review, is conservative: it understates their effectiveness at detecting bugs during private development, not to mention their other benefits such as facilitating code search/completion and serving as documentation. Despite this uneven playing field, our central finding is that both static type systems find an important percentage of public bugs: both Flow 0.30 and TypeScript 2.0 successfully detect 15%!
javascript is the dominant language for implementing dynamic web pages in browsers. Even though it is standardized, many browsers implement language and browser bindings in different and incompatible ways. As a result...
详细信息
ISBN:
(纸本)9781467355254;9781467355247
javascript is the dominant language for implementing dynamic web pages in browsers. Even though it is standardized, many browsers implement language and browser bindings in different and incompatible ways. As a result, a plethora of web development frameworks were developed to hide cross-browser issues and to ease development of large web applications. An unwelcome side-effect of these frameworks is that they can introduce memory leaks, despite the fact that javascript is garbage collected. Memory bloat is a major issue for web applications, as it affects user perceived latency and may even prevent large web applications from running on devices with limited resources. In this paper we present JSWhiz, an extension to the open-source Closure javascript compiler. Based on experiences analyzing memory leaks in Gmail, JSWhiz detects five identified common problem patterns. JSWhiz found a total of 89 memory leaks across Google's Gmail, Docs, Spreadsheets, Books, and Closure itself. It contributed significantly in a recent effort to reduce Gmail memory footprint, which resulted in bloat reduction of 75% at the 99th percentile, and by roughly 50% at the median.
Spectrum-Based Fault Localization (SBFL) is a well-understood statistical approach to software fault localization, and there have been numerous studies performed that tackle its effectiveness. However, mostly Java and...
详细信息
ISBN:
(纸本)9781728151434
Spectrum-Based Fault Localization (SBFL) is a well-understood statistical approach to software fault localization, and there have been numerous studies performed that tackle its effectiveness. However, mostly Java and C/C++ programs have been addressed to date. We performed an empirical study on SBFL for javascript programs using a recent bug benchmark, BugsJS. In particular, we examined (1) how well some of the most popular SBFL algorithms, Tarantula, Ochiai and DStar, can predict the faulty source code elements in these javascript programs, (2) whether there is a significant difference between the effectiveness of the different SBFL algorithms, and (3) whether there is any relationship between the bug-fix types and the performance of SBFL methods. For the latter, we performed a manual classification of each benchmark bug according to an existing classification scheme. Results show that the performance of the SBFL algorithms is similar but there are some notable differences among them as well, and that certain bug-fix types can be significantly differentiated from the others (in both positive and negative direction) based on the fault localization effectiveness of the investigated algorithms.
With the increasing popularity of the web, some new web technologies emerged and introduced dynamics to web applications, in comparison to HTML, as a static programming language. javascript is the language that provid...
详细信息
ISBN:
(纸本)9781538649275
With the increasing popularity of the web, some new web technologies emerged and introduced dynamics to web applications, in comparison to HTML, as a static programming language. javascript is the language that provided a dynamic web site which actively communicates with users. javascript is used in today's web applications as a client script language and on the server side. The javascript language supports the Model View Controller (MVC) architecture that maintains a readable code and clearly separates parts of the program code. The topic of this research is to compare the popular javascript frameworks: AngularJS, Ember, Knockout, Backbone. All four frameworks are based on MVC or similar architecture. In this paper, the advantages and disadvantages of each framework, the impact on application speed, the ways of testing such JS applications and ways to improve code security are presented.
暂无评论