[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 13 08:45:44 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, Northeastern University 

Greg Morrisett, Harvard University 




More information about the Colloq mailing list