Friday, April 18, 2014 - 8:45am to 10:00am
KEC 1007

Speaker Information

Gregor Richards
PhD candidate
Secure Software Systems Lab
Purdue University

Abstract

JavaScript is a highly popular, dynamic programming language. Although originally designed for small scripts, the scale of software written in JavaScript has grown, and with large-scale web applications has come demand for better analysis and software engineering tools. The tools, however, are frequently stifled by JavaScript's dynamicity. Reigning in JavaScript's more dynamic and inscrutable features yields maintainable, understandable code, which is then suitable for more powerful analyses. This talk discusses the Dynamics of JavaScript (DynJS) project, which has (1) studied how real-world programmers use JavaScript, (2) addressed the impact of these uses on analysis, and (3) produced tools and gradual typing extensions to JavaScript which allow dynamic code to be gradually made more maintainable, understandable and analyzable. In particular, tools for performance measurement and the elimination of "eval" will be discussed, as well as the LikeScript language, which extends JavaScript to add gradual (and optional) type annotations, allowing programmers to document their intent while retaining compatibility with existing client code.

Speaker Bio

Gregor Richards is a PhD candidate at Purdue University's Secure Software Systems lab. His work focuses on creating tools to study how programming languages are used "in the wild" and rectify problems found there. He aims to strike a balance between the pragmatism of highly dynamic languages and the reliability of static ones. He is additionally interested in the development of system software, in particular virtual machines. When not studying software, he plays the accordion. These activities infrequently overlap.