SDI Seminar

Speaker: David Tarditi

Improving the performance of functional languages

Date: January 19, 1995


This talks discusses a careful quantitative approach to understanding and improving the performance of programs written in functional languages.

Functional languages like Standard ML have many features with significant programming benefits, such as module systems, static typing, garbage collection, and higher-order functions. Compilers for functional languages can do well, but often do poorly on programs in many important real-world applications domains, such as systems programming and scientific programming.

I discuss first where we should look for performance gains. The following conjectures about the performance of programs written in functional languages have been made:

  • Memory-system performance is poor.
  • Copying garbage collection leads to poor memory-system performance.
  • Automatic storage management (garbage collection) is expensive.

I present studies of these conjectures, which yielded surprising results. Based on these studies, I conclude that compilers for functional languages should focus on reducing instruction counts. I then discuss preliminary work on a new global optimizer and compiler for Standard ML.

Some of this work is joint work with Amer Diwan and Eliot Moss.