Language design and implementation for improving support for software libraries and domain specific languages, including research in type systems, program logics, and facilities for program generation; software library development using generic programming for domains including but not limited to high-performance linear algebra and graph algorithms.