Design a DFA which accepts all the binary numbers divisible by 6. For example your automaton should accept the words 0, 110 (6 decimal) and 10010 (18 decimal).
Assume the following extensions to the regular expressions. In each case describe why the modification does not actually change the expressibility.
- The intersection of two regular expressions.
- The optional expression denoting that expression optional
- Limiting Kleene repetition with a maximum and minimum bound
Design your own operator for regular expressions to make it expressible for describing nested comments.
Integer literals are in three forms in Scala: decimal, hexadecimal and octal. The compiler discriminates different classes from their beginning. Decimal integers are started with a non-zero digit. Hexadecimal numbers begin with 0x or 0X and may contain the digits from 0 through 9 as well as upper or lowercase digits A to F afterwards. If the integer number starts with zero, it is in octal representation so it can contain only digits 0 through 7. There can be an l or L at the end of the literal to show the number is Long.
- Draw a single DFA that accepts all the allowable integer literals.
- Write the corresponding regular expression.
Let be the language of strings on defined by that is, .
- Construct a DFA that accepts .
- Describe how the lexical analyzer will tokenize the following inputs.
For each of the following languages find the first set. Determine if the language is nullable.
(a+b)*(b+d)((c+a+d)* + a*)
Homomorphism is function from letters to strings such that
- Prove if language is regular then is regular.
- Using Pumping Lemma prove that the language is not regular.
- Prove that equally many digits before and after decimal point is not regular.