Matthew Fluet Headshot

Matthew Fluet

Associate Professor

Department of Computer Science
Golisano College of Computing and Information Sciences

585-475-2854
Office Hours
2235 (GOL-3555): Mo 1:30pm -- 2:30pm; Tu 3:00pm -- 4:00pm; We 10:30am -- 11:30am; Th 3:00pm -- 4:00pm
Office Location
Office Mailing Address
102 Lomb Memorial Drive, Computer Science Department, Rochester, NY 14623-5608

Matthew Fluet

Associate Professor

Department of Computer Science
Golisano College of Computing and Information Sciences

Education

BS in Mathematics, Harvey Mudd College; Ph.D. in Computer Science, Cornell University

Bio

Matthew Fluet is an associate professor in the Department of Computer Science at RIT. Before joining RIT, he was a research assistant professor at the Toyota Technological Institute at Chicago (TTI-C). He received his PhD in Computer Science from Cornell University and his BS in Mathematics from Harvey Mudd College. 

585-475-2854

Areas of Expertise

Select Scholarship

Published Conference Proceedings
Contractor, Maheen Riaz and Maheen Riaz Contractor. "Type- and Control-Flow Directed Defunctionalization." Proceedings of the 32nd Symposium on Implementation and Application of Functional Languages (IFL ’20), September 2–4, 2020, Canterbury, United Kingdom. Ed. Olaf Chitil. New York, NY, USA: ACM, 2021. Web.
Guatto, Adrien, et al. "Hierarchical Memory Management for Mutable State." Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'18; February 24-26, 2018; Wien, Austria). Ed. Thomas Gross. New York, New York: ACM, 2018. Web.
Le, Matthew, Ryan Yates, and Matthew Fluet. "Revisiting Software Transactional Memory in Haskell." Proceedings of the Haskell’16: Proceedings of the 9th International Symposium on Haskell; September 22-23, 2016, Nara, Japan. Ed. Geoffrey Mainland. New York, NY: ACM, 2016. Web.
Le, Matthew and Fluet, Matthew. "Partial Aborts for Transactions via First-Class Continuations." Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming (ICFP’15); August 31 — September 2, 2015, Vancouver, BC, Canada. Ed. Kathleen Fisher and John Reppy. New York, NY: ACM, 2015. Print.
Acar, Umut A., et al. "Coupling Memory and Computation for Locality Management." Proceedings of the First Summit on Advances in Programming Languages (SNAPL'15); May 3 - 6, 2015, Asilomar, CA. Ed. Thomas Ball, et al. Dagstuhl, Germany: Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2015. Web.
Adsit, Connor and Fluet, Matthew. "An Efficient Type- and Control-Flow Analysis for System F." Proceedings of the 26th International Symposium on Implementation and Application of Functional Languages (IFL'14); October 1 - 3, 2014, Boston, MA. Ed. Sam Tobin-Hochstadt. New York, NY: ACM, 2015. Web.
Le, Matthew and Fluet, Matthew. "Combining Shared State with Speculative Parallelism in a Functional Language." Proceedings of the 26th International Symposium on Implementation and Application of Functional Languages (IFL'14); October 1 - 3, 2014, Boston, MA. Ed. Sam Tobin-Hochstadt. New York, NY: ACM, 2015. Web.
Bergstrom, Lars, et al. "Practical and Effective Higher-Order Optimizations." Proceedings of the Ninteenth ACM SIGPLAN International Conference on Functional Programming (ICFP'14); September 1-3, 2014; Gothenburg, Sweden. Ed. Manuel Chakravarty. New York, NY: ACM Press, 2014. Print.
Bergstron, Lars, et al. "Data-Only Flattening for Nested Data Parallelism." Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (Shenzhen, China; February 23-27, 2013). Ed. Saman Amarasinghe and Richard Vuduc. New York, NY: ACM, 2013. Print.
Amsden, Edward and Matthew Fluet. "Fairness for Transactional Events." Proceedings of the 23rd Symposium on Implementation and Application of Functional Languages (Lawrence, KS, USA; October 3-5, 2011). Ed. Andy Gill and Jurriaan Hage. New York, NY: Springer, 2012. Print.
Fluet, Matthew. "A Type-and Control-Flow Analysis for System F." Proceedings of the 24th Symposium on Implementation and Application of Functional Languages (Oxford, UK; August 30-September 1, 2012). Ed. Ralf Hinze. New York, NY: Springer, 2013. Print.
Auhagen, Sven, et al. "Garbage Collection for Multicore NUMA Machines." Proceedings of the 2011 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness (MSPC '11; San Jose, CA; June 2011). Ed. Madanlal Musuvathi and Xipeng Shen. New York, NY: ACM Press, 2011. Print.
Journal Paper
Westrick, Sam, et al. "Disentanglement in Nested-Parallel Programs." Proceedings of the ACM on Programming Languages 4. POPL (2019): Article 47. Web.
Bergstron, Lars, et al. "Lazy Tree Splitting." The Journal of Functional Programming 22. 4-5 (2012): 382-483. Print.
Fluet, Matthew, et al. "Implicitly-threaded Parallelism in Manticore." The Journal of Functional Programming 20. 5-6 (2011): 537-576. Print.
External Scholarly Fellowships/National Review Committee
8/1/2014 - 7/31/2017
     National Science Foundation (CISE Research Infrastructure (CRI)
     Amount: $224,329
6/1/2014 - 5/31/2018
     National Science Foundation (Software and Hardware Foundations (SHF)
     Amount: $236,744
9/1/2011 - 8/31/2014
     National Science Foundation
     Amount: $412,261
7/1/2008 - 6/30/2012
     National Science Foundation
     Amount: $91,867
Invited Keynote/Presentation
Fluet, Matthew. "The Manticore Project." The 2nd ACM SIGPLAN Workshop on Functional High-Performance Computing. ACM. Boston, MA. 24 Sep. 2013. Conference Presentation.
Book Chapter
Fluet, Matthew, et al. "Programming in Manticore, a Heterogenous Parallel Functional Language." Revised Selected Lectures of the Third Central European Functional Programming Summer School (CEFP'09). Ed. Zoltan Horvath, Rinus Plasmeijer, and Viktoria Zsok. Germany: Springer-Verlag, 2010. 94-145. Print.
Published Article
Bergstrom, Lars, Mike Rainey, John Reppy, Adam Shaw, and Matthew Fluet. “Lazy Tree Splitting.” Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, 2010. 93-104. Print. É  *

Currently Teaching

CSCI-344
3 Credits
This course is a study of the syntax and semantics of a diverse set of high-level programming languages. The languages chosen are compared and contrasted in order to demonstrate general principles of programming language design and implementation. The course emphasizes the concepts underpinning modern languages rather than the mastery of particular language details. Programming projects will be required.
CSCI-541
3 Credits
The goal of this course is to introduce the students to a programming paradigm and an appropriate programming language chosen from those that are currently important or that show high promise of becoming important. A significant portion of the learning curve occurs through programming assignments with exemplary solutions discussed later in class. The instructor will post specifics prior to registration. With the approval of the program coordinator, the course can be taken for credit more than once, provided each instance deals with a different paradigm and language.
CSCI-641
3 Credits
The goal of this course is to introduce the students to a programming paradigm and an appropriate programming language chosen from those that are currently important or that show high promise of becoming important. A significant portion of the learning curve occurs through programming assignments with exemplary solutions discussed later in class. The instructor will post specifics prior to registration. With the approval of the program coordinator, the course can be taken for credit more than once, provided each instance deals with a different paradigm and language. A term project involving independent investigation is also required. Note: students who complete CSCI-541 may not take CSCI-641 for credit.
CSCI-788
3 Credits
Project capstone of the master's degree program. Students select from a set of possible projects and confirm that they have a project adviser. Students enroll in a required colloquium component that meets weekly, during which they present information, related to their projects. Projects culminate with delivery of a final report and participation in a poster session open to the public.