Date of Award

Spring 5-1-2026

Document Type

Honors Project

Degree Name

Bachelor of Science

Department

Computer Science

Department Chair or Program Director

Andrew Marshall

First Advisor

Ian Finlayson

Major or Concentration

Computer Science

Abstract

Parallelism and multithreading have become an important facet of programming in recent years. Much work has been done in programming languages such as C and C++ with libraries such as OpenMP. However, less effort has been made to create parallelism tools in higher level languages such as Java. This is important because most programmers learn the basics in languages such as Python and Java that lack parallel tools like OpenMP. This means they must directly manage threads which requires knowledge of object-oriented programming and design.

This project sought to incorporate some elements of OpenMP into Java to allow newer programmers to learn parallelism without being disoriented by the syntax required in higher level languages. This was accomplished by creating a tool that utilized ANTLR which recognized new keywords of “parallel” and “parallelfor”. The tool reads these keywords and automatically generates code that creates threads, passes in local variables, and joins the threads after completion.

Overall, this project sought to make parallelism just a little more manageable for programmers as multithreading becomes more important in the industry. Through this tool, programmers can focus on higher level strategies to create truly incredible software.

Share

COinS