Active Libraries and Universal Languages
The ideas in this dissertation had their early origins in the years I spent working on the Blitz++
library for numerical arrays. Rather than relying on the compiler to optimize arrays, it performed
these optimizations itself using template techniques (‘expression templates’ and ‘template metaprograms’).
The fact this could be done made me wonder about the general problem of domainspecific
code optimization. From reading the literature it seemed a widespread debate: where ought
domain-specific optimizations be performed? In compilers? Compiler plug-ins? Metalevel code?
Preprocessors? Libraries? The C++ experience indicates that with a sufficiently powerful language
and compiler, libraries can define their own optimizations, and we can package abstractions and
optimizations together as a coherent library. Template metaprogramming is, let’s be frank, a rather
miserable programming environment — its popularity suggests a real need in this area. The definition
of Active Libraries helped turn these vague thoughts into a concrete goal: to realize
compilers and languages to support such libraries in earnest.
This dissertation proposes one possible direction for this.
Or, shorter:
Roughly speaking, this thesis addresses the question: How might we provide DSLs that are fast
and safe?
Recent comments
23 weeks 8 hours ago
23 weeks 12 hours ago
23 weeks 12 hours ago
45 weeks 1 day ago
49 weeks 3 days ago
51 weeks 20 hours ago
51 weeks 20 hours ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago