Compiler Construction - Northwestern University

Compiler Construction - Northwestern University

Compiler Construction Vana Doufexi [email protected] office #317 @ CS dept 1 Administrative info class webpage http://www.cs.northwestern.edu/academics/courses/ 322 contains: news staff information lecture notes & other handouts

homeworks & manuals policies, grades newsgroup portal useful links 2 What is a compiler A program that reads a program written in some language and translates it into a program written in some other language Modula-2 to C Java to bytecodes COOL to MIPS code

3 Why study compilers? Application of a wide range of theoretical techniques Good SW engineering experience Better understand languages 4 Features of compilers Correctness preserve the meaning of the code Speed of target code

vs. speed of compilation? Good use of resources (size, power) Good error reporting/handling 5 Compiler structure source code Front End IR

Back End target code Use intermediate representation Why? 6 Compiler Structure Front end Recognize legal/illegal programs report/handle errors

Generate IR The process can be automated Back end Translate IR into target code instruction selection register allocation instruction scheduling lots of NPC problems -- use approximations 7

Compiler Structure Optimization: Middle stage goals improve running time of generated code improve space, power consumption, etc. how? perform a number of transformations on the IR multiple passes important: preserve meaning of code 8

The Front End Scanning (a.k.a. lexical analysis) recognize "words" Parsing (a.k.a. syntax analysis) check syntax Semantic analysis examine meaning (e.g. type checking) Other issues: symbol table (to keep track of identifiers) error detection/reporting/recovery 9

The Scanner Its job: given a character stream, recognize words (tokens) e.g. x = 1 becomes IDENTIFIER EQUAL INTEGER collect identifier information e.g. IDENTIFIER corresponds to a lexeme (the actual word x) and its type (acquired from the declaration of x). ignore white space and comments report errors Good news the process can be automated

10 The Parser Its job: Check and verify syntax based on specified syntax rules e.g. IDENTIFIER LPAREN RPAREN make up an EXPRESSION. Coming soon: how context-free grammars specify syntax Report errors Build IR often a syntax tree

Good news the process can be automated 11 Semantic analysis Its job: Check the meaning of the program e.g. In x=y, is y defined before being used? Are x and y declared? e.g. In x=y, are the types of x and y such that you can assign one to the other? Meaning may depend on context Report errors

12 IRs Graphical e.g. parse tree, DAG Linear e.g. three-address code Hybrid e.g. linear for blocks of straight-line code, a graph to connect blocks Low-level or high-level

13 The scanning process Main goal: recognize words How? by recognizing patterns e.g. an identifier is a sequence of letters or digits that starts with a letter. Lexical patterns form a regular language Regular languages are described using regular expressions (REs) Can we create an automatic RE recognizer? Yes! (Hold that thought) 14

The scanning process Definition: Regular expressions (over alphabet ) is an RE denoting {} If , then is an RE denoting {} If r and s are REs, then (r) is an RE denoting L(r) r|s is an RE denoting L(r)L(s) rs is an RE denoting L(r)L(s)

r* is an RE denoting the Kleene closure of L(r) Property: REs are closed under many operations This allows us to build complex REs. 15 The scanning process Definition: Deterministic Finite Automaton a five-tuple (, S, , s0, F) where is the alphabet S is the set of states is the transition function (SS) s0 is the starting state F is the set of final states (F S)

Notation: Use a transition diagram to describe a DFA DFAs are equivalent to REs Hey! We just came up with a recognizer! 16 The scanning process Goal: automate the process Idea: Start with an RE Build a DFA How? We can build a non-deterministic finite automaton (Thompson's construction)

Convert that to a deterministic one (Subset construction) Minimize the DFA (Hopcroft's algorithm) Implement it Existing scanner generator: flex 17

Recently Viewed Presentations

  • Orientation to Martin High School - Weebly

    Orientation to Martin High School - Weebly

    Martin High School Things to Know for Parents ….and Students. Attendance Being in school is the BEST way to not fall behind. Please avoid non-emergency appointments during school time. If a student misses class - their current homework is due...
  • CSIR-INDIAN INSTITUTE OF TOXICOLOGY RESEARCH COUNCIL OF SCIENTIFIC

    CSIR-INDIAN INSTITUTE OF TOXICOLOGY RESEARCH COUNCIL OF SCIENTIFIC

    Immunotoxicity. Nephrotoxicity. Hepatotoxicity. Neuro-immunotoxicity. Phototoxicity. CSIR-INDIAN INSTITUTE OF. TOXICOLOGY RESEARCH. COUNCIL OF SCIENTIFIC & INDUSTRIAL RESEARCH. Models and methods for the toxicity/safety of ENMs and products . In vivo . models . Immunotoxicity.
  • Three-Tier Model for Elementary Mathematics

    Three-Tier Model for Elementary Mathematics

    The strength and quality of Tier 1 instruction determines the number of students who need Tier 2…This is an important concept within the RTI model. Improving general classroom instruction is the first and important aspect of implementing the RTI process....
  • Chapter 1 - Introduction to Computers and C++ Programming

    Chapter 1 - Introduction to Computers and C++ Programming

    Introduction Polymorphism "Program in the general" Derived-class object can be treated as base-class object "is-a" relationship Base class is not a derived class object Virtual functions and dynamic binding Makes programs extensible New classes added easily, can still be processed...
  • Survey of Art I History of Art - hs.hscud5.org

    Survey of Art I History of Art - hs.hscud5.org

    Survey of Art I History of Art limestone colossus of Ramses II now rests in a Memphis museum, stretching more than 40 feet (12 meters) long even without its missing legs. Larger than life as a ruler, builder, and sire,...
  • Instructional Services - FY2020

    Instructional Services - FY2020

    needed to complement the training component of the IET. Don't think about all the things you could do. Think about things you should do. An IET class is . not the same as a GED Preparation class. Trying to teach...
  • GCSE English Language and Literature Introduction to the

    GCSE English Language and Literature Introduction to the

    CPD Training & Development - via our CPD Hub you can access a range of different types of CPD from face-to-face getting to know the specifications, local teacher networks, as well as a range of instantly available interactive training materials...
  • Intruders and password protection - Jordan University of ...

    Intruders and password protection - Jordan University of ...

    Intruders and password protection Presented by: Yanal Kilani ... The DES algorithm is modified using a 12-bit. This value is related to the time at which the password is assigned to the user. ... BJ's in 2004 and now DSW...