1 COMP 144 Programming Language Concepts Felix Hernandez-Campos Lecture 5: Syntax Analysis COMP 144 Programming Language Concepts Spring 2002 Felix Hernandez-Campos.

Download 1 COMP 144 Programming Language Concepts Felix Hernandez-Campos Lecture 5: Syntax Analysis COMP 144 Programming Language Concepts Spring 2002 Felix Hernandez-Campos.

Post on 21-Dec-2015

212 views

Category:

Documents

0 download

TRANSCRIPT

  • Slide 1
  • 1 COMP 144 Programming Language Concepts Felix Hernandez-Campos Lecture 5: Syntax Analysis COMP 144 Programming Language Concepts Spring 2002 Felix Hernandez-Campos Jan 18 The University of North Carolina at Chapel Hill
  • Slide 2
  • 2 COMP 144 Programming Language Concepts Felix Hernandez-Campos Review: Compilation/Interpretation Compiler or Interpreter Translation Execution Source Code Target Code Interpre-tation
  • Slide 3
  • 3 COMP 144 Programming Language Concepts Felix Hernandez-Campos Review: Syntax Analysis Compiler or Interpreter Translation Execution Source Code Specifying the formSpecifying the form of a programming language Tokens Regular Expression Syntax Context-Free Grammars Target Code
  • Slide 4
  • 4 COMP 144 Programming Language Concepts Felix Hernandez-Campos Phases of Compilation
  • Slide 5
  • 5 COMP 144 Programming Language Concepts Felix Hernandez-Campos Syntax Analysis Syntax:Syntax: Websters definition: 1 a : the way in which linguistic elements (as words) are put together to form constituents (as phrases or clauses) The syntax of a programming languageThe syntax of a programming language Describes its form Organization of tokens (elements) Context Free Grammars (CFGs) Must be recognizable by compilers and interpreters Parsing LL and LR parsers
  • Slide 6
  • 6 COMP 144 Programming Language Concepts Felix Hernandez-Campos Context Free Grammars CFGsCFGs Add recursion to regular expressions Nested constructions Notation expression identifier | number | - expression | ( expression ) | ( expression ) | expression operator expression | expression operator expression operator + | - | * | / Terminal symbols Non-terminal symbols Production rule (i.e. substitution rule) terminal symbol terminal and non-terminal symbols
  • Slide 7
  • 7 COMP 144 Programming Language Concepts Felix Hernandez-Campos Parsers ScannersScanners Task: recognize language tokens Implementation: Deterministic Finite Automaton Transition based on the next character ParsersParsers Task: recognize language syntax (organization of tokens) Implementation: Top-down parsing Bottom-up parsing
  • Slide 8
  • 8 COMP 144 Programming Language Concepts Felix Hernandez-Campos Parse Trees A parse is graphical representation of a derivationA parse is graphical representation of a derivation ExampleExample
  • Slide 9
  • 9 COMP 144 Programming Language Concepts Felix Hernandez-Campos Parsing example Example: comma-separated list of identifierExample: comma-separated list of identifier CFG id_list id id_list_tail id_list_tail , id_list_tail id_list_tail ; Parsing A, B, C;
  • Slide 10
  • 10 COMP 144 Programming Language Concepts Felix Hernandez-Campos Top-down derivation of A, B, C; CFG Left-to-right, Left-most derivation LL(1) parsing
  • Slide 11
  • 11 COMP 144 Programming Language Concepts Felix Hernandez-Campos Top-down derivation of A, B, C; CFG
  • Slide 12
  • 12 COMP 144 Programming Language Concepts Felix Hernandez-Campos Bottom-up parsing of A, B, C; CFG Left-to-right, Right-most derivation LR(1) parsing
  • Slide 13
  • 13 COMP 144 Programming Language Concepts Felix Hernandez-Campos Bottom-up parsing of A, B, C; CFG
  • Slide 14
  • 14 COMP 144 Programming Language Concepts Felix Hernandez-Campos Bottom-up parsing of A, B, C; CFG
  • Slide 15
  • 15 COMP 144 Programming Language Concepts Felix Hernandez-Campos Parsing Parsing an arbitrary Context Free GrammarParsing an arbitrary Context Free Grammar O(n 3 ) Too slow for large programs Linear-time parsingLinear-time parsing LL parsers Recognize LL grammar Use a top-down strategy LR parsers Recognize LR grammar Use a bottom-up strategy
  • Slide 16
  • 16 COMP 144 Programming Language Concepts Felix Hernandez-Campos Hierarchy of Linear Parsers Basic containment relationshipBasic containment relationship All CFGs can be recognized by LR parser Only a subset of all the CFGs can be recognized by LL parsers LL parsing CFGs LR parsing
  • Slide 17
  • 17 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example LL(1) grammarLL(1) grammar
  • Slide 18
  • 18 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example Outline ofOutline of recursive parser This parser only verifies syntax match is the scanner
  • Slide 19
  • 19 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example
  • Slide 20
  • 20 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example
  • Slide 21
  • 21 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example
  • Slide 22
  • 22 COMP 144 Programming Language Concepts Felix Hernandez-Campos Semantic Analysis Compiler or Interpreter Translation Execution Source Code Specifying the meaningSpecifying the meaning of a programming language Attribute Grammars Target Code
  • Slide 23
  • 23 COMP 144 Programming Language Concepts Felix Hernandez-Campos Reading Assignment Scotts Chapter 2Scotts Chapter 2 Section 2.2.2 Section 2.2.3

Recommended

View more >