Compiler construction: during analysis of a PL/I program, lexical analysis refers to which specific activity in the front-end pipeline?

Difficulty: Easy

Correct Answer: recognition of basic elements and creation of uniform symbols

Explanation:

Introduction / Context:Compilers typically perform a front-end pipeline: lexical analysis (scanning), parsing (syntax analysis), and semantic analysis, followed by intermediate representation and code generation/optimization. This question focuses on the first step—lexical analysis—and asks you to identify its primary purpose.

Given Data / Assumptions:

  • Source language is PL/I, but the general principles apply to most languages.
  • We are distinguishing scanning from parsing and later phases.
  • Macro processing and code optimization are separate concerns.

Concept / Approach:Lexical analysis converts a raw character stream into a sequence of tokens (uniform symbols) such as identifiers, keywords, literals, operators, and punctuation. This token stream is then consumed by the parser. The scanner also performs tasks like skipping whitespace/comments and possibly normalizing numeric literals or case, depending on language rules.

Step-by-Step Solution:1) Start with a character sequence from the source file.2) Group characters into meaningful units (tokens) using regular patterns (e.g., identifier = letter (letter|digit)*).3) Emit a stream of uniform symbols (token kind + lexeme/attributes) for the parser.4) Leave syntactic structure (grammar productions and reductions) to the parser, not the lexer.

Verification / Alternative check:Standard compiler texts define lexical analysis (scanning) as tokenization. Tools like lex/flex embody this by generating scanners that recognize token patterns and return uniform symbols to the parser (yacc/bison).

Why Other Options Are Wrong:

  • Syntactic reductions: That is parsing (syntax analysis), not scanning.
  • “Optional matrix”: Not a standard compiler term in this context.
  • Macro processor: Preprocessing or macro expansion is separate and not lexical analysis.
  • None of the above: Incorrect because token recognition and uniform symbol creation is exactly lexical analysis.

Common Pitfalls:Blurring the boundary between lexing and parsing can cause design bugs; keep tokenization concerns distinct from grammar recognition and semantic checks.

Final Answer:recognition of basic elements and creation of uniform symbols.

More Questions from Language Processors

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion