The objective of the remainder of this assignment is to get you thinking about the problem of recognizing strings given various restrictions to your model of computation. We will work with whatever representation of an algorithm you are comfortable with (C or Pascal or, perhaps, some form of pseudo-code-just make sure it is unambiguous). Don't get too carried away with this. You only have a short time to work on it. The goal is primarily to think about this stu?, not to agonize over it. Whatever you do, don't turn it into a programming assignment; running code is not a bonus in this case.
In all of the problems we will assume the same basic machine:
• The program is read-only (it can't be modi?ed, you might even think of it as being hard-wired).
• For the sake of uniformity, let's assume the following methods for accessing the input:
- input(), a function that returns the current input character. You can use this in forms like
i ← input(), or
if (input() = ‘a' ) then . . . , or
This does not consume the character; any subsequent calls to input() prior to a call to next() will return the same character. You may assume that input() returns a unique value EOF if all of the input has been consumed.
- next(), a function that bumps to the next position in the input.
This discards the previous character which cannot be re-read. You can either assume that it returns nothing or that it returns TRUE in the case the input is not at EOF and FALSE otherwise.