is a Professor of Computer Science at Halmstad University and holds a joint appointment as a part-time full professor at Rice University. He is interested in the design, semantics, and implementation of programming and hardware description languages. His current research focus is on modeling, rigorous simulation, and verification of cyber-physical systems, and leading the development of the Acumen modeling language.
Taha is credited with developing the idea of multi-stage programming (or "staging" for short), and is the designer of several systems based on it, including MetaOCaml, ConCoqtion, Java Mint, the Verilog Preprocessor, RT-FRP, and E-FRP. He contributed to several other programming languages innovations, including statically typed macros, tag elimination, tagless staged interpreters, event-driven functional reactive programming (E-FRP), the notion of exact software design, and gradual typing. Broadly construed, his research interests include cyber-physical systems, software engineering, programming languages, and domain-specific languages. He has chaired and edited the proceedings of several conferences and workshops published by Springer and by the ACM. According to Google Scholar, Taha's publications had over 2,800 citations and an h-index of 28.
Taha has been the principal investigator on a number of research awards and contracts from the National Science Foundation (NSF), Semi-conductor Research Consortium (SRC), and Texas Advanced Technology Program (ATP). He received an NSF CAREER award to develop Java Mint. 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). Taha chaired the 2009 IFIP Working Conference on Domain Specific Languages. He is the founding director of the Halmstad Colloquium.
- Mathematical Equations as Executable Models. IEEE/ACM International Conference on Cyber-Physical Systems (ICCPS'10). pdf.
- Environment Classifiers. Symposium on Principles of Programming Languages (POPL'03). dvi, ps, pdf.