Tutorial : Multi-stage Programming for Circuit Generation (MSP 2009)
Speaker: Walid Taha (Rice University, USA)

Abstract:
Multi-stage programming is a paradigm for writing generic programs that do not pay a runtime overhead. The key underlying technology is program generation. In addition, languages designed to support this paradigm (such as MetaOCaml) help the programmer avoid many of the difficulties that are traditionally encountered in developing program generators. This tutorial will introduce you to the basics of this paradigm as well as of programming in MetaOCaml. The focus of this particular tutorial will be on using MetaOCaml to generate hardware circuits.

Outline: (Each session is 1.5 hours)

  • Session 1: Why MSP programming.
    Small example.
    Understanding generated code
    Two larger examples.
    Binding time improvements.
    Differences between byte code and native code settings.
     
  • Session 2: Staging and the Fast Fourier Transform
    and comparison with FFTW.
    Summary and pointers to the literature.
     

Speaker's profile:

Walid Taha is a professor at Rice University, Houston, TX, USA. His interests span programming language semantics, type systems, compilers, program generation, real-time systems, and physically safe computing. His research on DSLs focuses on building tools for rapidly constructing efficient implementations of DSLs and on graphical languages. In collaboration with researchers and practitioners at Intel, Schlumberger, and National Instruments, he has developed DSLs
for hardware description and for reactive and real-time systems. Prof. Taha is the principal investigator on a number of National Science Foundation (NSF), Texas Advanced Technology Program (ATP), and Semiconductor Research Consortium (SRC) research projects. He is the principal designer of MetaOCaml, Acumen, and the Verilog Preprocessor (VPP) system. He founded the ACM Conference on Generative Programming and Component Engineering (GPCE), the IFIP Working Group on Program Generation (WG 2.11), and the Middle Earth Programming Languages Seminar (MEPLS). He is the program chair for the IFIP Working Conference on Domain-Specific Languages.
 

Last Updated: Friday, March 27, 2009