Todd Veldhuizen





Research
  • Lunar
  • Blitz++

  • Affiliation
  • Chalmers Institute of Technology

  • Personal
    Other
  • Contact info
  • Vitae available on request




  • Hej. I was a postdoc at Chalmers University of Technology in Göteborg, Sweden for the 2004-2005 academic year. I am now at Indiana University.

    There's not much here -- you can find my papers and assorted debris of my previous life here.

    My dissertation, Active Libraries and Universal Languages, is available [PDF, Html -- still working on that, Bibtex]. Key ideas:

    • We can build compilers that find optimal programs.
    • These compilers have a well-defined kernel of code they will evaluate and erase at compile-time. By choosing an appropriate kernel, we can build compilers that reliably eliminate the `abstraction penalty' associated with high-level languages.
    • The kernel can be used to provide staging capabilities, i.e., performing computations at compile-time to produce better run-time code. This can be used for example to perform domain-specific optimizations as is done with C++ template techniques.
    • Languages with Turing-complete kernels can be stage- and safety-universal, in the sense that any language can be embedded in them while preserving staging and safety-properties. Such languages provide the necessary capabilities to realize `active libraries' which define the abstractions, optimizations and safety checks for a given problem domain.
    • Such compilers act as complete decision procedures for a certain set of axioms. This opens an intriguing research direction of `optimizers as theorem provers' -- that is, using the optimizer to prove theorems and check proofs embedded in source code.

    Activities

    Handy stuff

    Personal

    My
    sambo is a fabulous cellist (even Google agrees) and you can listen to some of his recordings here.

    Contact Information


     
    Todd Veldhuizen 
    Computing Science, Chalmers University of Technology 
    SE-41296 
    Göteborg, Sweden 
    
    Office: +46 31 772 1003 
    Home:   +46 31 773 2522