+ All Categories
Home > Documents > September 4, 2014

September 4, 2014

Date post: 21-Jan-2016
Category:
Upload: kiley
View: 37 times
Download: 0 times
Share this document with a friend
Description:
Computer Science at Azusa Pacific University. CS400 Compiler Construction. Sheldon X. Liang Ph. D. September 4, 2014. Azusa, CA. 1. September 4, 2014. Azusa Pacific University, Azusa, CA 91702, Tel: (800) 8 25-5278 - PowerPoint PPT Presentation
Popular Tags:
12
June 17, 2022 1 June 17, 2022 June 17, 2022 Azusa, Azusa, CA CA Sheldon X. Liang Ph. D. Computer Science at Computer Science at Azusa Azusa Pacific University Pacific University Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/ CS400 Compiler Construction CS400 Compiler Construction
Transcript
Page 1: September 4, 2014

April 21, 20231

April 21, 2023April 21, 2023 Azusa, CAAzusa, CA

Sheldon X. Liang Ph. D.

Computer Science at Computer Science at Azusa Pacific UniversityAzusa Pacific University

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

CS400 Compiler ConstructionCS400 Compiler Construction

Page 2: September 4, 2014

• Be able to build a compiler for a (simplified) (programming) language

• Know how to use compiler construction tools, such as generators of scanners and parsers

• Be familiar with virtual machines, such as the JVM and Java bytecode

• Be able to define LL(1), LR(1), and LALR(1) grammars• Be familiar with compiler analysis and optimization

techniques• … learn how to work on a larger software project!

April 21, 20232

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Objectives Objectives

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Page 3: September 4, 2014

• “Compilation”– Translation of a program written in a source language

into a semantically equivalent program written in a target language

Compiler

Error messages

SourceProgram

TargetProgram

Input

OutputApril 21, 2023

3Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Compilers and InterpretersCompilers and Interpreters

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Page 4: September 4, 2014

Interpreter

SourceProgram

Input

Output

Error messages

• “Interpretation”– Performing the operations implied by the source

program

April 21, 20234

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Compilers and InterpretersCompilers and Interpreters

Page 5: September 4, 2014

• There are two parts to compilation:– Analysis determines the operations implied by

the source program which are recorded in a tree structure

– Synthesis takes the tree structure and translates the operations therein into the target program

April 21, 20235

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

The Analysis-Synthesis Model of CompilationThe Analysis-Synthesis Model of Compilation

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Page 6: September 4, 2014

• Editors (syntax highlighting)

• Pretty printers (e.g. Doxygen)

• Static checkers (e.g. Lint and Splint)

• Interpreters

• Text formatters (e.g. TeX and LaTeX)

• Silicon compilers (e.g. VHDL)

• Query interpreters/compilers (Databases)April 21, 2023

6Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Other Tools that Use Analysis-Synthesis ModelOther Tools that Use Analysis-Synthesis Model

Page 7: September 4, 2014

Preprocessor

Compiler

Assembler

Linker

Skeletal Source Program

Source Program

Target Assembly Program

Relocatable Object Code

Absolute Machine Code

Libraries andRelocatable Object Files

Try for example:gcc -v myprog.c

April 21, 20237

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Preprocessors, Compilers, Assemblers, and LinkersPreprocessors, Compilers, Assemblers, and Linkers

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Page 8: September 4, 2014

Phase Output Sample

Programmer (source code producer) Source string A=B+C;

Scanner (performs lexical analysis) Token string ‘A’, ‘=’, ‘B’, ‘+’, ‘C’, ‘;’And symbol table with names

Parser (performs syntax analysis based on the grammar of the programming language)

Parse tree or abstract syntax tree ; | = / \A + / \ B C

Semantic analyzer (type checking, etc)

Annotated parse tree or abstract syntax tree

Intermediate code generator Three-address code, quads, or RTL

int2fp B t1+ t1 C t2:= t2 A

Optimizer Three-address code, quads, or RTL

int2fp B t1+ t1 #2.3 A

Code generator Assembly code MOVF #2.3,r1ADDF2 r1,r2MOVF r2,A

Peephole optimizer Assembly code ADDF2 #2.3,r2MOVF r2,A

The Phases of a CompilerThe Phases of a Compiler

Page 9: September 4, 2014

• Compiler front and back ends:– Front end: analysis (machine independent)

– Back end: synthesis (machine dependent)

• Compiler passes:– A collection of phases is done only once (single pass)

or multiple times (multi pass)• Single pass: usually requires everything to be defined before

being used in source program

• Multi pass: compiler may have to keep entire program representation in memory

April 21, 20239

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

The Grouping of PhasesThe Grouping of Phases

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Page 10: September 4, 2014

• Software development tools are available to implement one or more compiler phases– Scanner generators– Parser generators– Syntax-directed translation engines– Automatic code generators– Data-flow engines

April 21, 202310

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

Compiler-Construction ToolsCompiler-Construction Tools

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Page 11: September 4, 2014

• Ch. 1: Introduction

Walkthrough: a Miniature Compiler• Ch. 2: A simple One-Pass Compiler for the JVM

Technology: Analysis and Methods• Ch. 3: Lexical Analysis and Lex/Flex• Ch. 4: Syntax Analysis and Yacc/Bison

Front-end: Intermediate Code Generation• Ch. 5: Syntax-Directed Definition and Translation• Ch. 6: Intermediate Code Generation

Back-end: Object Code Generation• Ch. 8: Code Generation

Advanced topics: Runtime and Parallelism Env.• Ch. 7: Run-Time Environments• Ch.11: Optimization for parallelism

April 21, 202311

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

OutlineOutline

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Page 12: September 4, 2014

Thank you very much!

Questions?

April 21, 202312

Azusa Pacific University, Azusa, CA 91702, Tel: (800) 825-5278 Department of Computer Science, http://www.apu.edu/clas/computerscience/

CS@APU: CS400 Compiler ConstructionCS@APU: CS400 Compiler Construction

Introduction to CompilerIntroduction to Compiler


Recommended