The goal of this research is the design, implementation, and realistic application of a functional programming language supporting the development of scientific codes. Functional languages and scientific computing appear to be singularly mismatched. The problem is not with the expressiveness of these languages, which is excellent, but their efficiency, which is poor. Recent research in functional languages suggests that assignment may in fact be consistent with referential transparency, if care is taken in the overall language design. This research uses one such language, the Imperative Lambda Calculus (ILC), to develop programs in the domain of random process modelling. Although inefficiency on sequential processors has long been a drawback of functional languages, their efficiency on parallel processors has been a strong attraction. An important goal of this research is to obtain an efficient parallel implementation of ILC. The potential for success in this endeavor is high because the presence of assignment in ILC obviates the transformation to imperative form, leaving the compiler to handle only the (well understood) problems of higher-order functions and lazy evaluation themselves. To fully exploit modern parallel architectures, especially non-uniform memory access machines, control over the placement of data and scheduling of tasks needs to be provided by way of parallel language extensions to ILC.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
9303043
Program Officer
Anand R. Tripathi
Project Start
Project End
Budget Start
1993-09-01
Budget End
1997-02-28
Support Year
Fiscal Year
1993
Total Cost
$357,274
Indirect Cost
Name
University of Illinois Urbana-Champaign
Department
Type
DUNS #
City
Champaign
State
IL
Country
United States
Zip Code
61820