Undergrad Research Highlights

From COMP105 to Programming Languages Research in Haskell


Computer Science, Cognitive and Brain Sciences, Tufts University, ‘19

After taking an Intro to Programming Languages class, Marilyn Sun became interested in programming languages. Her teaching assistant participated in PL research and recruited her to their project. Over a period of two years starting in her sophomore year, Marilyn collaborated with her research advisor, who is also chair of the CS department at Tufts, Kathleen Fisher on research problems in Haskell optimization.

Marilyn focused on the refinement and performance of an optimizer (Autobahn 2.0) for the Haskell programming language. The optimizer uses genetic algorithms to randomly find locations to place bangs which enforce strict evaluation in Haskell. More specifically, these bangs are intended to curtail runtime and memory usage. Marilyn’s personal contribution was to reduce the number of bangs that the optimizer produces while maintaining the performance optimization. Marilyn presented her research in a demo workshop at the 2018 Haskell Symposium held in St. Louis. Her senior thesis is based on this research.

Reflecting on her research experience, Marilyn asserts, “Ask questions! …I always felt I was the most junior and inexperienced”.  She realized that instead of holding in questions, it would have been easier to build her confidence by asking questions as soon as they materialized. Marilyn believes that this kind of advice is important to share with other current and potential undergraduate researchers. Sometimes it’s scary and one does not feel confident, but the rewards are worthwhile.

Marilyn earned her Computer Science and Cognitive and Brain Sciences double degree in May 2019. Currently, she is a software engineer at Microsoft. While she briefly contemplated graduate school, she mentions that if she misses research, she will seek it out. One of the most transferable skills that Marilyn learned through the research process was breaking down large problems into more manageable pieces. This mindset helps her solve problems as a software engineer.

– Written and edited by Joslenne Peña