[Colloq] PhD Thesis Defense - Stephen Chang - Wed. May 14, 2pm, 366 WVH - On the Relationship Between Laziness and Strictness
Jessica Biron
bironje at ccs.neu.edu
Tue May 6 08:42:59 EDT 2014
Who: Stephen Chang
When: Wed May 14, 2pm
Where: 366 WVH
Title: On the Relationship Between Laziness and Strictness
Abstract:
Lazy evaluation empowers programmers with the ability to create efficient, modular programs. Unfortunately, laziness also comes with some drawbacks. On one hand, lazy constructs incur time and space overhead so programmers should minimize their use when they are not needed. Thus, lazy-by-default languages are often not the best means to utilize laziness. On the other hand, programs with too little laziness may pay its costs without receiving any benefit in return. This is because laziness is a global property of programs and thus its effects are not immediately proportionate to the amount of laziness in the program. Specifically, laziness propagates according to a program's value flow, so for example, introducing laziness in one part of a program may require additional laziness in other parts before any benefits are realized. Thus, determining the appropriate amount of laziness for a program is a tricky endeavor that requires balancing the costs with the benefits.
Researchers have proposed various strategies for determining a balance of laziness and strictness in a program. Unfortunately, most previous strategies have failed to appropriately consider either the costs or the benefits involved. Thus the preferred way to manage laziness in practice today is via manual annotations, which is an error-prone task that requires extensive experience to get right. In this dissertation, we introduce two techniques, one static and one dynamic, that take a strict-first perspective on managing laziness and improve on the state of the art in two ways. First, our techniques weigh the costs of laziness against the benefits with models that capture the expertise typically required when reasoning about laziness placement, and thus our techniques more precisely identify which parts of a program should be strict and which should be lazy. Second, we implement concrete tools that utilize our strategies so programmers can compute where laziness is needed in a more automated manner.
Committee:
Matthias Felleisen (advisor), Northeastern University
Amal Ahmed, Northeastern University
David Van Horn, University of Maryland
Greg Morrisett, Harvard University
More information about the Colloq
mailing list