**Due: Tuesday, Oct 25th by 11:59 PM**

## Your Task

Your task is to construct Turing Machines to recognize the two languages described below. Each Turing machine should enter a final state if and only if the initial string on its input tape belongs to the language.

Use JFLAP to create your Turing Machines. You can download JFLAP from the Resources page.

### Language 1 (40 points)

The language over the alphabet {a, b} of all palindromes: strings which, when reversed, produce an identical string.

Examples of strings in the language:

εababaabbabbb

Examples of strings not in the language:

ababbbba

### Language 2 (60 points)

The language over the alphabet {a, b, c} of *m* a's followed
by *n* b's followed by *m* × *n* c's, where *m* and
*n* are nonnegative integers. In other words,
the number of c's is the product of the number of a's and the
number of b's.

Examples of strings in the language:

εabcaabccaaabbccccccaaaaabbccccccccccab

Examples of strings not in the language:

abbcbbacccabaaabbcccccaaabbccccccc

## Submitting

Submit a zip file containing your two JFLAP files (.jff file extension)
to Marmoset as **assign4**:

https://cs.ycp.edu:8443/

**IMPORTANT**: after uploading, you should download a copy of your submission and
double-check it to make sure that it contains the correct file(s). You are
responsible for making sure your submission is correct. You may receive a grade
of 0 for an incorrectly submitted assignment.