Download presentation

Presentation is loading. Please wait.

Published byClementine Wilkinson Modified over 4 years ago

1
Compiler Construction CS 606 Sohail Aslam Lecture 2

2
2 Two-pass Compiler Front End Back End source code IR machine code errors

3
3 Two-pass Compiler Use an intermediate representation (IR) Front end maps legal source code into IR

4
4 Two-pass Compiler Back end maps IR into target machine code Admits multiple front ends & multiple passes

5
5 Two-pass Compiler Front end is O(n) or O(n log n) Back end is NP-Complete (NPC)

6
6 Front End Recognizes legal (& illegal) programs Report errors in a useful way Produce IR & preliminary storage map

7
7 The Front-End Modules Scanner Parser scannerparser source code tokensIR errors

8
8 ScannerScanner scannerparser source code tokens IR errors

9
9 ScannerScanner Maps character stream into words – basic unit of syntax Produces pairs – a word and its part of speech

10
10 ScannerScanner Example x = x + y becomes token type word

11
11 ScannerScanner we call the pair “ ” a “token” typical tokens: number, identifier, +, -, new, while, if

12
12 ParserParser scannerparser source code tokensIR errors

13
13 ParserParser Recognizes context-free syntax and reports errors Guides context-sensitive (“semantic”) analysis Builds IR for source program

14
14 Context-Free Grammars Context-free syntax is specified with a grammar G=(S,N,T,P) S is the start symbol N is a set of non-terminal symbols T is set of terminal symbols or words P is a set of productions or rewrite rules

15
15 Context-Free Grammars Grammar for expressions 1.goal→expr 2.expr → expr op term 3. |term 4.term→ number 5. | id 6.op → + 7. | -

16
16 The Front End For this CFG S = goal T = { number, id, +, -} N = { goal, expr, term, op} P = { 1, 2, 3, 4, 5, 6, 7}

17
17 Context-Free Grammars Given a CFG, we can derive sentences by repeated substitution Consider the sentence (expression) x + 2 – y

18
18 DerivationDerivation Production Result goal 1 expr 2 expr op term 5 expr op y 7 expr – y 2 expr op term – y 4 expr op 2 – y 6 expr + 2 – y 3 term + 2 – y 5 x + 2 – y

19
19 The Front End To recognize a valid sentence in some CFG, we reverse this process and build up a parse A parse can be represented by a tree: parse tree or syntax tree

20
20 ParseParse Production Result goal 1 expr 2 expr op term 5 expr op y 7 expr – y 2 expr op term – y 4 expr op 2 – y 6 expr + 2 – y 3 term + 2 – y 5 x + 2 – y

Similar presentations

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google