Concepts Of Programming Languages
Concepts Of Programming Languages
12th Edition
ISBN: 9780134997186
Author: Sebesta, Robert W.
Publisher: Pearson,
Expert Solution & Answer
Book Icon
Chapter 4, Problem 1RQ

Explanation of Solution

Syntax analyzers are based on grammars:

Syntax analyzer phase in compilation process is the step in which the “tokens” in the programs are identified and recognize whether they are specified in a valid way.

So, syntax analyzers are based on the syntax of the language. The syntax is often described formally by Context Free Grammars (CFG) or Backus-Naur Form (BNF).

Context Free Grammars (CFG):

There were four classes of grammars which describes the four classes of languages. Context Free Grammars was one of the four classes which described the syntax of whole programming languages with some minor exceptions.

Backus-Naur Form (BNF):

BNF is a natural notation for describing syntax described by John Backus and Peter Naur. It is very similar to Context Free Grammars.

Thus, syntax is based on BNF (or context free grammar from) due to three main reasons as described below:

  • Instead of using some informal notations, syntax description with context free grammars are precise and unambiguous. This is easy to understand for both human and software systems.
  • The formal description of the syntax, CFG or BNF both are used as the direct basis of syntax analyzer.
  • Context free grammars or BNF are easy to implement because of their modular nature. That is, they can be implemented in modules.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
What are three reasons why syntax analyzers are based on grammars?
What are the two distinct goals of syntax analysis?
Parsing a small set of grammars is possible using a variety of approaches.