More about HKUST
Meta-metaprogramming
Speaker: Dr. James Koppel Founding Partner of Mirdin Title: "Meta-metaprogramming" Date: Friday, 26 May 2023 Time: 11:00am - 12 noon Venue: Room 3523 CSE Department Conference Room, via lift 25/26 Abstract: Programming languages researchers have developed many advanced tools that promise to greatly ease software engineering. Yet even conceptually simple tools are expensive to implement fully due to the complexity of the target language, and standard techniques tie an implementation to a particular target language. In order to make the development of advanced programming tools economical, these problems demand new techniques for decomposing the development of tools and automating portions of their construction, which I collectively dub "meta-metaprogramming." In this talk, I will present my work on new techniques and frameworks for making tools easier to build and more general, and tools built on them. First I will present Cubix, a "One Tool, Many Languages" framework that allows a single tool to quickly be written for multiple programming languages. We have used Cubix to build Yogo, a semantic search tool capable of finding equivalent patterns in C, Java, and Python from a single shared query. Second, I will present Mandate, the world's first control-flow graph generator generator, able to generate multiple varieties of CFG-generator given a programming language's formal semantics. Finally, I will present our ongoing work on ECTAs (equality-constrained tree automata), a new type of data structure/constraint-solver able to efficiently search large spaces of programs subject to certain constraints. We have used ECTAs to build two synthesizers for Haskell, Hectare and Spectacular, which solidly beat their pre-existing competitors (Hoogle+ and QuickSpec) with only a fraction the engineering-effort. ***************** Biography: After winning the "20 Under 20" Thiel Fellowship, Jimmy Koppel graduated early from Carnegie Mellon University to found Tarski Technologies, a startup building commercial program repair technology. In 2014, he joined Apptimize as the third employee, where he obtained six patents in the areas of binary modification and mobile A/B testing. He completed his Ph. D. in programming languages from MIT in 2021, with research focusing on ways to make programming tools easier to build and more general ("meta-metaprogramming"). As the founding partner of Mirdin, the Code Quality Company, he has trained over 300 professional software engineers at the advanced level, and has over 1 million views on his software design blog, Pathsensitive.com. His research has been profiled in the New York Times, the Boston Globe, Bloomberg, and Wired. Further reading: www.pathsensitive.com