slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
September 4, 2014 PowerPoint Presentation
Download Presentation
September 4, 2014

Loading in 2 Seconds...

play fullscreen
1 / 12

September 4, 2014 - PowerPoint PPT Presentation


  • 148 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'September 4, 2014' - kiley


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

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) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide2

CS@APU: CS400 Compiler Construction

Objectives

  • 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!

2

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide3

CS@APU: CS400 Compiler Construction

Compilers and Interpreters

  • “Compilation”
    • Translation of a program written in a source language into a semantically equivalent program written in a target language

Input

Compiler

Target

Program

Source

Program

Error messages

Output

3

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide4

CS@APU: CS400 Compiler Construction

Compilers and Interpreters

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

Source

Program

Interpreter

Output

Input

Error messages

4

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide5

CS@APU: CS400 Compiler Construction

The Analysis-Synthesis Model of Compilation

  • 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

5

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide6

CS@APU: CS400 Compiler Construction

Other Tools that Use Analysis-Synthesis Model

  • 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)

6

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide7

CS@APU: CS400 Compiler Construction

Preprocessors, Compilers, Assemblers, and Linkers

Skeletal Source Program

Preprocessor

Source Program

Try for example:

gcc -v myprog.c

Compiler

Target Assembly Program

Assembler

Relocatable Object Code

Libraries and

Relocatable Object Files

Linker

Absolute Machine Code

7

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide9

CS@APU: CS400 Compiler Construction

The Grouping of Phases

  • 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

9

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide10

CS@APU: CS400 Compiler Construction

Compiler-Construction Tools

  • 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

10

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide11

CS@APU: CS400 Compiler Construction

Outline

  • 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

11

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/

slide12

CS@APU: CS400 Compiler Construction

Introduction to Compiler

Thank you very much!

Questions?

12

September 4, 2014

Azusa Pacific University, Azusa, CA 91702,Tel: (800) 825-5278

Department of Computer Science,http://www.apu.edu/clas/computerscience/