-
A Code Generation Framework To Replicate Software Design Concepts
Mon, Sep 30, 2024 @ 11:00 AM - 12:00 PM
Thomas Lord Department of Computer Science
Conferences, Lectures, & Seminars
Speaker: Prof. George Heineman, Associate Professor, Computer Science - Worcester Polytechnic Institute
Talk Title: A Code Generation Framework To Replicate Software Design Concepts
Abstract: In 1998, Philip Wadler used the term Expression Problem (EP) to describe a common situation that occurs when devising software that must evolve, specifically with regard to the structure of the data types and the operations over these data types. Over time, software engineers extend systems by adding new data types and/or new operations, and the goal is to avoid changing existing code as part of the extension. Dozens of researchers have investigated approaches to EP using a variety of programming languages. The papers from the research literature often contain only small code fragments and the lack of a common benchmark makes it difficult to compare different approaches with each other. We designed EpCoGen, a code generation framework, to replicate the results of numerous papers using a rich benchmark domain of mathematical expressions. While it was not our intention, in completing this project, we devised a novel CoCo approach to EP based on Covariant Conversions. This result would not have been possible without the meticulous effort in both developing a comprehensive benchmark and trying to replicate existing results from the literature. We generate fully coded solutions in Java, Scala and Haskell, with accompanying test cases, for nine different approaches to EP using a language-independent code generation framework (CoGen) that can be expanded to include additional languages and approaches.
This lecture satisfies requirements for CSCI 591: Research Colloquium.
Biography: George Heineman is an Associate Professor of Computer Science at WPI in Worcester, Massachusetts. His research interests include component-based software engineering, modularity, code generation, and algorithms. He is the author of Algorithms in a Nutshell (2ed, O’Reilly Media, 2016), Learning Algorithms (O’Reilly Media, 2021), and an online training video course, Coding Interview Preparation: Learn to Solve Algorithms Problem to Land Your Next Software Role (O’Reilly Media, 2024). George is also an avid puzzler with a lifelong interest in logical and mathematical puzzles. He is the inventor of Sujiken® puzzles (a variation of Sudoku), Trexiken puzzles (a variation of Ken-Ken®) and the online https://wordygame.net, if you are ready to try a more challenging word puzzle than Wordle.
Host: Nenad Medvidovic, Department Chair - USC Thomas Lord Department of Computer Science
Location: TBD
Audiences: Everyone Is Invited