How Much Non-strictness do Lenient Programs Require? (1995)
| Venue: | In Conf. on Func. Prog. Languages and Computer Architecture |
| Citations: | 2 - 0 self |
BibTeX
@INPROCEEDINGS{Schauser95howmuch,
author = {Klaus E. Schauser and Seth C. Goldstein},
title = {How Much Non-strictness do Lenient Programs Require?},
booktitle = {In Conf. on Func. Prog. Languages and Computer Architecture},
year = {1995},
pages = {21622--5},
publisher = {ACM Press}
}
OpenURL
Abstract
Lenient languages, such as Id90, have been touted as among the best functional languages for massively parallel machines [AHN88]. Lenient evaluation combines non-strict semantics with eager evaluation [Tra91]. Non-strictness gives these languages more expressive power than strict semantics, while eager evaluation ensures the highest degree of parallelism. Unfortunately, non-strictness incurs a large overhead, as it requires dynamic scheduling and synchronization. As a result, many powerful program analysis techniques have been developed to statically determine when non-strictness is not required [CPJ85, Tra91, Sch94]. This paper studies a large set of lenient programs and quantifies the degree of non-strictness they require. We identify several forms of non-strictness, including functional, conditional, and data structure non-strictness. Surprisingly, most Id90 programs require neither functional nor conditional non-strictness. Many benchmark programs, however, make use of a limited fo...







