Question: 2. In Java, each identifier (like the name of a variable) must satisfy the following con- straints: it must be a string of length
2. In Java, each identifier (like the name of a variable) must satisfy the following con- straints: it must be a string of length one or more; the first character must be a letter (a - z, A - Z), underscore (-), or dollar sign ($); characters other than the first must be letters (az, A - Z), digits (0-9), underscores (-), or dollar signs ($). (a) Based on the information in the above statement, design a DFA that recognizes the language of all strings that are allowable Java identifiers. Draw the state diagram, clearly indicating the start state, accepting states, and state transitions. Since there are too many letter options to use individually as labels, use the shorthand notation a-z, A-Z for letters and 0-9 for digits. Explain concisely. (b) Define a DFA that recognizes the language of all strings that are not Java identi- fiers. Try to base this DFA directly on the DFA from the preceding part. Draw the state diagram, clearly indicating the start state, accepting states, and state transitions. Explain. (c) Define a non-deterministic FA (NFA) that reco zes the language of Java iden- tifiers, and that has only two states in its state space. Draw the state diagram, clearly indicating the start state, accepting states, and state transitions. Explain.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
