Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 COMP 144 Programming Language Concepts Felix Hernandez-Campos Lecture 5: Syntax Analysis COMP 144 Programming Language Concepts Spring 2002 Felix Hernandez-Campos."— Presentation transcript:

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

2 2 COMP 144 Programming Language Concepts Felix Hernandez-Campos Review: Compilation/Interpretation Compiler or Interpreter Translation Execution Source Code Target Code Interpre-tation

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

4 4 COMP 144 Programming Language Concepts Felix Hernandez-Campos Phases of Compilation

5 5 COMP 144 Programming Language Concepts Felix Hernandez-Campos Syntax Analysis Syntax:Syntax: –Webster’s 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

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

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

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

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;

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

11 11 COMP 144 Programming Language Concepts Felix Hernandez-Campos Top-down derivation of A, B, C; CFG

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

13 13 COMP 144 Programming Language Concepts Felix Hernandez-Campos Bottom-up parsing of A, B, C; CFG

14 14 COMP 144 Programming Language Concepts Felix Hernandez-Campos Bottom-up parsing of A, B, C; CFG

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

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

17 17 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example LL(1) grammarLL(1) grammar

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

19 19 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example

20 20 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example

21 21 COMP 144 Programming Language Concepts Felix Hernandez-Campos Recursive Descent Parser Example

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

23 23 COMP 144 Programming Language Concepts Felix Hernandez-Campos Reading Assignment Scott’s Chapter 2Scott’s Chapter 2 –Section 2.2.2 –Section 2.2.3


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

Similar presentations


Ads by Google