On the relationship between laziness and strictness
Permanent URL:
http://hdl.handle.net/2047/d20005030
Ahmed, Amal Jamil (Committee member)
Morrisett, Greg (Committee member)
Horn, David Van (Committee member)
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.
strictness
modular programs
Computer Sciences
Computer programming -- Evaluation
Computer programmers
Modular programming -- Evaluation
Copyright restrictions may apply.