Thanks for creating this community, there is no other place where I feel I belong more than here. So let me introduce myself.
I did a PhD on term rewriting, whose main application area is to publish a lot of pointless academic papers (it can also serve as the underlying engine for program transformation). My best contribution to the field is “Equational rules for rewriting logic” which provides an operational foundation for theorem provers with built-in knowledge of theories such as equality or arithmetic, like those that are used to prove program properties.
I got hooked to language tools when I discovered syntax editors and had the opportunity to spend a few weeks with Gilles Kahn’s team at INRIA. They had just created Centaur, a fascinating tool that envisioned a fantastic future for language-based tools. Centaur’s main teaching was to show how it should not be done, but hey that’s how science makes progress.
As a side project, I wrote my own syntax editor - in Emacs Lisp, what else - based on the papers by the Harmonia team such as “Practical Algorithms for Incremental Software Development Environments”. And absolutely nobody cared. Maybe I was at wrong place at the wrong time. The same techniques have been reused recently in the Atom editor and enjoyed quite a success.
After working a while on DSL design and implementation, and watching the evolution of several DSLs over time, I got under the impression that many DSLs would be better designed as extensions of existing programming languages. And I launched a company to do precisely that. At Ateji we designed and shipped several extensions of Java with Eclipse tooling support, the most interesting being Ateji PX, a combination of Java and pi-calculus primitives that makes parallel programming simple. It was quite highly esteemed but never became a commercial success (Intel acquired Cilk instead, and the rest is history).
I made a small incursion towards spreadsheets by designing a way to bring structured data and programs to these unstructured monsters, but still haven’t found funding for this project (blink, blink).
Since then I have been working mostly on legacy code modernization. I am building tools that aim to combine a high degree of automation and a high degree of interactivity. This is quite challenging but is the key to provide good quality results for a limited effort. My latest language of interest is RPG, initially developed in 1959 for punched cards, and still in use on 100k’s sites worldwide today.