Question: Write a context free grammar or a regular grammar to satisfy the requirements. We need to implement a lexical analyzer which is able to recognize

Write a context free grammar or a regular grammar to satisfy the requirements. We need to implement a lexical analyzer which is able to recognize octal and decimal numbers with the following requirements:

  • An input number starts with a + or - sign.

  • An octal number starts with a 0 and can continue with an arbitrarily number of digits. An octal

    number started with more than one 0 is not an acceptable number. Note: digits used in an octal

    number are between 0 and 7.

  • A decimal number starts with any digit except 0 and can continue with an arbitrarily number of

    digits. Note: digits used in a decimal number are between 0 and 9.

  • 0 is an acceptable number, no matter whether we accept it as a decimal or as an octal number.

    Note: the alphabet of this language is {+, -, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. You can also use epsilon or empty string character in your grammar. Remember, your grammar in addition to generating valid strings should not allow the generation of invalid strings such as the following rejected strings.

    Here are some examples of accepted strings: {+0, +9803467, -184, -04650, ...} Here are some examples of rejected or invalid strings: {-03489, -00, +, -034-21, 146802, ...}

For the requirements in question 3 create a finite automaton. Remember, the automaton or state machine, in addition to accepting the valid strings, should not accept the invalid strings. That means, you need also to include one or more non-accepting states in your machine to redirect wrong strings to them.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!