Question: 1 Rewrite Systems Remember our game in the second lecture. (a) Given the same input, i.e., a sequence of characters starting with $ and ending
1 Rewrite Systems
Remember our game in the second lecture.
(a) Given the same input, i.e., a sequence of characters starting with $ and ending with #, and any combination of 0s and 1s in-between, specify a set of rewrite rules that determine whether the string contains the same number of 0s and 1s. Here is some sample output: $0011# should be rewritten as $# $1001# should be rewritten as $# $110110# should be rewritten as $11# $0001100# should be rewritten as $000# In other words, the $# indicates that the input string has the same number of 0s and 1s. If the string does not contain the same number of 0s and 1s, the resulting string shows how many more 0s or 1s there are in the input string.
(b) Is there at most only a single rewrite rule that can be applied at any point in time during the rewrite process? Explain.
(c) Show the steps of your rewrite system for the input strings $1010# and $01010#.
2 Regular Expressions
Write a regular expression for numeric constants in C. These are octal, decimal, or hexadecimal integers, or decimal or hexadecimal floating-point values. An octal integer begins with 0, and may contain only the digits 0-7. A hexadecimal integer begins with 0x or 0X, and may contain the digits 0-9 and a/A-f/F. A decimal floating-point value has a fractional portion (beginning 1 with a dot) or an exponent (beginning with E or e). Unlike a decimal integer, it is allowed to start with 0. A hexadecimal floating-point value has an optional fractional portion and a mandatory exponent (beginning with P or p). In either decimal or hexadecimal, there may be digits to the left of the dot, the right of the dot, or both, and the exponent itself is given in decimal, with an optional leading + or - sign. An integer may end with an optional U or u (indicating unsigned), and/or L or l (indicating long) or LL or ll (indicating long long). A floating-point value may end with an optional F or f (indicating float single precision) or L or l (indicating long double precision).
3 Regular Expressions
Describe the formal languages denoted by the following regular expressions using the English language (e.g.: All strings over the alphabet . . . that have the property . . .):
(a) (( | 1) 0*)*
(b) (0|1)*0(0|1)(0|1)
(c) (00|11)* ((01|10)(00|11)*(01|10)(00|11)*)*
4 Regular Expressions
Write a regular expression for the following languages.
(a) All strings of as, bs, and cs that contain no bs following any cs.
(b) All strings of as, bs, and cs that do not contain more than 1 a and 3 bs.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
