On this page:
Your Repository
Getting Help
9.1

Assignment 3: Regular Expression Engine (6%)🔗

Due: October 19, 11:59PM

In this project, you will implement algorithms for working with NFAs, DFAs, and regular expressions. Specifically, you will implement:
  • accept to determine whether a string is accepted by an NFA.

  • nfa_to_dfa to convert an NFA to a DFA using the subset construction algorithm.

  • regex_to_nfa to convert a regular expression to an NFA.

Your Repository🔗

A private GitLab repository has already been created for you; you do not need to create one. Its name is built from your UMD directory ID:

https://gitlab.cs.umd.edu/cmsc330-mamat/fall2026/student-repos/p3/fsm-<directory-id>

For example, if your directory ID is alice1:

https://gitlab.cs.umd.edu/cmsc330-mamat/fall2026/student-repos/p3/fsm-alice1

You can also find it by signing in to gitlab.cs.umd.edu, where the project will be listed among your projects. Clone it with:

mkdir -p ~/cmsc330

cd ~/cmsc330

git clone git@gitlab.cs.umd.edu:cmsc330-mamat/fall2026/student-repos/p2/fsm-<directory-id>.git

If you have not set up your GitLab account and SSH key yet, do that first; see Software.

Getting Help🔗

If you cannot see your repository, if the repository listed on Piazza is wrong, or if you get a permission error when cloning, post on Piazza or come to office hours. Do this as soon as you notice the problem: extension requests caused by not being able to obtain the assignment will be denied.