Meet the Researcher - Timothy Colaneri

Breakout Room: 20

TimothyColaneri_HeadshotResearcher Name: Timothy Colaneri
Title of Research: Detecting overlapping patterns in Asteroid, a programming language which supports both first-class and conditional pattern matching.
Division Representing: Mathematics and Computer Sciences
Institution: University of Rhode Island
Institution Location: Rhode Island
Home State: Rhode Island
District Number: 2
Advisor/Mentor: Lutz Hamel
Funding Source: N/A

Research Experience:  
Timothy Colaneri is a 2017 graduate of the Community College of Rhode Island, having earned an Associate of Science with honors in Computer Science, and a lifelong resident of Newport, RI. He is expected to finish the Bachelor of Science in Computer Science program at the University of Rhode Island in May 2021. Enthralled in both science and computers from a young age, Timothy is interested almost all aspects of computer science from hardware to software.

Presentation Experience: 
Timothy's academic presentation experience is standard for an undergraduate student. His experience, beyond the standard speech course requirements, include: presenting a newly developed software to a crowd of his peers, holding a presentation on computer science ethics, and teaching small sections of students. Outside the academic environment, Timothy's presentation experience is some what limited. This is something that he hopes to expand on in the future.

Significance of Research:       
Pattern matching is a powerful programming paradigm in which data structure analysis and decomposition is made more declarative. languages which rely heavily on pattern matching often have a method of trying to match a pattern to a body of code, or clause, that are tried one by one. This provides a powerful conditional programming construct. It is a consequence of this functionality that a programmer may unknowingly order their functions patterns in such a way that the accompanying clause can never be reached, making it redundant/useless. Many modern programming languages which support multi-clause pattern matching also offer a built-in functionality of detecting redundant/useless patterns(ML, Swift, Haskell). In the design of programming languages, a first-class citizen is an entity in a given programming language which has full support and access to all of the standard operations and features of the language. Here we take a look at the problem of detecting redundant patterns in a programming language which supports patterns as first-class citizens, Asteroid. With patterns as first-class citizens, patterns can be passed as parameters, processed, returned from functions, and assigned to variables. Additionally, Asteroid also introduces a method of both matching a pattern and ensuring that it satisfies an expression at the same time, called conditional pattern matching. These highly expressive concepts add to the complexities of detecting redundant patterns. We make note of these different complexities, making detail of the underlying problems at hand. Finally, we present our solutions to managing the detection of redundant patterns in this environment.  

Uniqueness of Research: 
New techniques and concepts in design of programming languages can add to the expressiveness that a programmer has when utilizing a language, which in turn can lead to more efficient and succinct code. Asteroid attempts to walk down a new avenue in language design, and this research reports the findings of some of the unique problems encountered.