CSC 338: Compiler design and implementation - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

CSC 338: Compiler design and implementation

Description:

CSC 338: Compiler design and implementation Dr. Mohamed Ben Othman – PowerPoint PPT presentation

Number of Views:185
Avg rating:3.0/5.0
Slides: 20
Provided by: kali94
Category:

less

Transcript and Presenter's Notes

Title: CSC 338: Compiler design and implementation


1
CSC 338 Compiler design and implementation
  • Dr. Mohamed Ben Othman

2
Goals
  • Compilers are used everyday in most computers.
  • Allow students to implement big programming
    projects.
  • Parts of most projects (specially those
    containing command language) can be built in the
    same way compilers are built.

3
Introduction
  • Terminology
  • Compilers implementation languages
  • Compiler structure
  • Example

4
Terminology
  • Compilers translate programs written in high
    level languages. The entire program has to be
    translated before execution (compared to a book
    translation).
  • Interpreters translate statement by statement
    (or line by line) and then this statement is
    given to the CPU to be executed before the next
    statement in being translated (compared to a man
    translator).
  • High Level Language
  • Source Language
  • Source Code
  • Implementation language
  • Target machine the machine to which the
    translation will be done.

5
How to choose the compiler implementation language
  • The first compiler was written in assembly
    language
  • The compiler of Fortran77 programming language is
    Pascal.
  • It is preferable to write the compiler in the
    source language from which it will translate to
    machine language.

6
Translation operation
  • The are some compilers do not respect this
    pattern.
  • Load-and-go Compilers gives programs ready for
    execution.
  • Cross-language compilers compilers between high
    level languages.

7
Compiler structure
  • Compiler is divided into two parts Front End
    and Back End.
  • The Front End translates a program from source
    language to an intermediate language.
  • The back End translates from the intermediate
    language to the machine language.

8
The Front End
9
The Back End
10
Lexical analysis
  • The lexical analyzer reads the input program as
    a character stream and produces a stream of
    lexemes (or token strings) as output.
  • The lexical analyzer reads the input program
    character by character until it reads a word
    (symbol).
  • The lexical analyzer searches the current work in
    a table (called symbol table) and adds it if not
    found. The lexical analyzer produces an output
    for each symbol called token. Tokens are
    generally integer numbers.

11
Syntactic Analysis
  • Syntactic Analyzer (or parser) takes as input
    the Token stream produced by the lexical
    analyzer.
  • The parser produces a Parse Tree

12
Semantic Analysis
  • The semantic analyzer determines if the meaning
    is respected in the user program.
  • The syntax rules may be respected without
    respecting the meaning.
  • Semantic analysis is mainly to be sure that data
    types are used properly.
  • Semantic analysis is part of syntactic analysis.

13
Detecting errors in the source program
  • In all phases above the main goal is to determine
    if the program source respects the source
    language rules.
  • Example
  • for (int i 1 iltn i) x
  • if x gt N Y - 3 else Y 3

This error may be detected at lexical analysis
This is a syntax error
14
Intermediate code generation
  • The intermediate code generator produces a code
    that is not related to the target machine. The
    intermediate code has to be very close to the and
    very easy to translate to machine language.

15
Object Code
  • The target code is the machine code.
  • The machine code generation is not the same as
    the intermediate code generation.
  • A assembly language code generation may be done
    in the same time

16
Lexical analysis example (Pascal program)
  • PROGRAM AverageNumbers(Input, Output)
  • CONST Amount 3
  • VAR Average Real
  • x ARRAY1..Amount OF Integer
  • i, Sum Integer
  • BEGIN
  • x13
  • x26
  • x310
  • Sum 0
  • FOR i 1 TO Amount DO Sum Sum xi
  • Average Sum/Amount
  • END. AverageNumbers

17
Lexical analysis result
  • PROGRAM ID (ID , ID )
  • CONST ID NUMLITERAL
  • VAR ID ID
  • ID ARRAY1 .. ID OF ID
  • ID, ID ID
  • BEGIN
  • and so on

18
Miscellaneous
  • Symbol Table contains all keywords and symbols.
  • Symbol Table Handler manages the symbol table.
  • Error Handling gives a clear description of
    errors.

19
Resume
Write a Comment
User Comments (0)
About PowerShow.com