• 6 Pages lecture4_4up
    Lecture4_4up

    School: Portland

    Course: Lang Compiler Design II

    Prog = = =

  • 2 Pages hw05
    Hw05

    School: Portland

    Course: Lang Compiler Design II

    CS 322 HM LANGUAGES & COMPILER DESIGN HW 5 PSU HomeWork 5, L1 Sim, 200 Points (5/10/2005) Due Date: Subject: Monday May 30th, 2005 Design, implement, and test a simulator for the L1 machine, L1 Sim General Rules: Implement Homework in C or C+. An

  • 47 Pages S09InterpretingIR1
    S09InterpretingIR1

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #8, April 26, 2007 Using comments Example output from Phase1 Language Semantics (Operational, Axiomatic, Denotational) An interpreter for IR1 05/21/09 1 Cse322, Programming Languages and Compile

  • 23 Pages S15DebuggingAssembler
    S15DebuggingAssembler

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #16, May 24, 2007 Runtime.c Running the code debugging assembler division strings for println making test files 05/21/09 1 Cse322, Programming Languages and Compilers Project #3 project #3 is

  • 30 Pages S14Project3
    S14Project3

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #15, May 22, 2007 Project 3 C calling convention The IA32 module Translating 05/21/09 1 Cse322, Programming Languages and Compilers Project #3 In class today we describe project #3 It is due

  • 12 Pages part2
    Part2

    School: Portland

    Course: Lang Compiler Design II

    1 &g fe @ Bk d 0 12$ @ 0 I S@ $ h & )0 1 $ Ydc ar U A ` U U UB P @ q `X Bi o E D8 s sB El `X sGp @B h h h A PF Gn h SB TQ h SB h SB qW fWXY D IIA P D I@ @AB 9 B Y Y a tgsp EG d P Pp TRS Fl Fl Fl A @H B @Ey l gi DGB DGB DGB DE FG DE D

  • 13 Pages jvm_s
    Jvm_s

    School: Portland

    Course: Lang Compiler Design II

    Java Virtual Machine Jingke Li Portland State University Jingke Li (Portland State University) CS322 Java Virtual Machine 1 / 25 Java Virtual Machine JVM is an abstract computer that executes Java bytecode. Input Interface: .class files Internal

  • 58 Pages S07X86Arch
    S07X86Arch

    School: Portland

    Course: Lang Compiler Design II

    Lecture #13, May 17, 2007 Analyzing the target language. The IA32 architecture Register, Addressing Modes, Instructions Flags, Jumps, the stack. RISC vs CISC Gnu assembler Translating strategies An ML example Optimization Summary Midterm review.

  • 10 Pages ho02
    Ho02

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 2 PSU SPRING 2001 (3/3/2001) Handout 2, PAda Implementation Compiler + Run Time System Quadruple Data Structure: Abstract q_node_struct_tp, has 4 logical fields; other ancillary fields exist too. Hence quad is not str

  • 27 Pages S04StringsStructControlFlow
    S04StringsStructControlFlow

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #4, April 12, 2007 Strings (representation, byte operation, copying), Structures (representation, anonymous value, field information, layout), Control Flow (basic blocks, generating code, loops).

  • 2 Pages ho01
    Ho01

    School: Portland

    Course: Lang Compiler Design II

    CS 322 HM LANGUAGES & COMPILER DESIGN PSU HO 1 Handout 1 (4/26/2005) Course Title: CRN: Time: Room: Dates: No School: Schedule change: Makeup Date: Office hours: Instructor: Grader: Media: Sirius: Mailing list: Class material: Languages and Compile

  • 2 Pages Assign01
    Assign01

    School: Portland

    Course: Lang Compiler Design II

    CS322 Prog Lang & Compilers Prog Assignment #1 Assigned Wednesday April 5, 2007. Due Monday, April 10, 2007 This assignment is to extend the program discussed in class for translating Arithmetic expressions to IR code. Th

  • 39 Pages S16MoreControlFlow
    S16MoreControlFlow

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #16, May 31, 2007 Data flow equations, available expressions live variables, solving data flow equations, constant propagation, using associativity and commutativity computing dominators. 05/16/0

  • 37 Pages S08MoreAboutIR1
    S08MoreAboutIR1

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #7, April 24, 2007 More about IR1 Library Functions Canonicalization OO runtime issues Object size initialization 05/16/09 1 Cse322, Programming Languages and Compilers Assignments Project #

  • 3 Pages hw01
    Hw01

    School: Portland

    Course: Lang Compiler Design II

    CS 322 HM LANGUAGES & COMPILER DESIGN HW 1 PSU HomeWork 1, L1 Spec, 100 Points (4/2/2005) Due Date: Subject: Monday April 4th, 2005 Design, specify, and document the programming language L1, L1 Spec General Rule: Use a word processing tool to doc

  • 3 Pages hw04
    Hw04

    School: Portland

    Course: Lang Compiler Design II

    CS 322 HM LANGUAGES & COMPILER DESIGN HW 4 PSU HomeWork 4, L1 Compiler, 200 Points, +25 for Case Statement (5/10/2005) Due Date: Subject: Monday May 16h, 2005 Design, implement, and test a compiler for language L1, L1 Compiler General Rules: Impl

  • 7 Pages hw03
    Hw03

    School: Portland

    Course: Lang Compiler Design II

    CS 322 HM LANGUAGES & COMPILER DESIGN HW 3 PSU HomeWork 3, L1 Parse, 100 Points (4/17/2005) Due Date: Subject: Monday April 18th, 2005 Design and test a parser for the complete programming language L1, L1 Parse General Rules: Implement Homework i

  • 1 Page Assign03
    Assign03

    School: Portland

    Course: Lang Compiler Design II

    CS322 Prog Lang & Compilers Prog Assignment #3 Assigned Tuesday April 17, 2007. Due Thursday, April 19, 2007 This assignment is to extend the stmt program discussed in class (and available for download) so that it can tran

  • 32 Pages S03BooleansArrays
    S03BooleansArrays

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #3, April 11, 2007 Boolean expressions Positional encoding Short circuit evaluation Conditional move Array expressions 04/28/09 1 Cse322, Programming Languages and Compilers Assignments Readi

  • 38 Pages S02Arithmetic
    S02Arithmetic

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #2, April 5, 2007 Overview of backend issues (storage locations, registers, aliasing), Translating arithmetic, Register allocation, Reducing demand for registers, Reuse of registers, List.find,

  • 35 Pages S11Optimizations
    S11Optimizations

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #11, May 10, 2007 More optimizations (local, loop, global) Liveness Analysis, Spilling, Problems with Jumps, Ranges, Intervals, Linear Scan register allocation. 04/28/09 1 Cse322, Programming La

  • 24 Pages S05ArrayCaseProcOO
    S05ArrayCaseProcOO

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #5, April 17, 2007 Array Access Case stmt Jump tables Procedure call Machine dependent strategy OOlangauages 04/27/09 1 Cse322, Programming Languages and Compilers Assignments Reading Read ch

  • 11 Pages ho10
    Ho10

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 10 PSU SPRING 2001 Handout 10, Code Generation for Case Statement (3/3/2001) Background: Case Statements (aka Switch Statements) are akin to If Statements in offering a selection of 1 of many for execution. Depending o

  • 4 Pages ho09
    Ho09

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 9 PSU SPRING 2001 Handout 9, Type Checking (3/3/2001) Definition and example: Type checking is the process of comparing two objects for type compatibility. For example, an assignment statement of the form a := b+c; has

  • 33 Pages S12BasicBlocksLivenessAnaly
    S12BasicBlocksLivenessAnaly

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #12, May 15, 2007 Basic Blocks, Control flow graphs, Liveness using data flow, dataflow equations, Using fixedpoints. 04/27/09 1 Cse322, Programming Languages and Compilers Assignments Reading

  • 7 Pages ho03_2
    Ho03_2

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 3.2 PSU SPRING 2001 (4/15/2001) Handout 3, Run Time Stack for x86 Motivation: High level programming requires logical (and physical) modularization. The key tool for logical modularization is the creation of procedure

  • 34 Pages S01Intro
    S01Intro

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #1, April 3, 2007 Course Mechanics Text Book Downloading SML Themes Backend tasks Language design issues I.R. Machine Code Optimization Interpretation This weeks assignment 04/25/09 1 Cse322, Pr

  • 54 Pages MLIntro
    MLIntro

    School: Portland

    Course: Lang Compiler Design II

    Cse321, Programming Languages and Compilers Standard ML Inthiscoursewewilluseanimplementationofthe languageStandardML NotesbyRiccardoPucella,aboutprogramminginML http:/www.cs.cornell.edu/riccardo/smlnj.html TheSML/NJHomepagehaslotsofuseful info

  • 8 Pages dataflow_s
    Dataflow_s

    School: Portland

    Course: Lang Compiler Design II

    k s | z y z k 'x k rix4z k x xw k u z k '5 F z gk rix d k u&iz k r& q rix w ' ri d z k u k r&z k & k V z k gV ~ } | { z y k i cx5rx | { { xx5z d` s t X 5Pq4h 4Vfu p r

  • 14 Pages S18SsaDominators
    S18SsaDominators

    School: Portland

    Course: Lang Compiler Design II

    Lecture #17, June 5, 2007 Static Single Assignment phi nodes Dominators Dominance Frontiers Dominance Frontiers when inserting phi nodes Assignments Reminders project #3 is Now due Friday, June 8, 2007 at 5:00 PM In order to get the course graded

  • 41 Pages S10Project2Peephole
    S10Project2Peephole

    School: Portland

    Course: Lang Compiler Design II

    Cse322, Programming Languages and Compilers Lecture #9, May 3, 2007 Project #2 Peephole optimizations Midterm Histogram x x x xx x x x xx x xx xxx x x x x x -30 40 50 60 70 80 90 04/25/09 1 Cse322, Programming Languages and Compilers Assignment

  • 10 Pages ho08
    Ho08

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 8 PSU SPRING 2001 Handout 8, Yacc (5/30/2001) Brief History: t.b.d. Grammars and BNF notation: Context free grammars of the class we have discussed can be used as generating or reducing tools. Generating means: beginni

  • 12 Pages ho03
    Ho03

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 3 PSU SPRING 2001 (3/3/2001) Handout 3, Run Time Stack PAda-like Parameter Passing + the Run Time Stack: This Handout describes key instructions of the PAda machine related to calling, returning, and parameter passing

  • 6 Pages ho06
    Ho06

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 6 PSU SPRING 2001 (3/3/2001) Handout 6, Control Flow Graph Control Flow Graphs: This Handout describes the generation of a Control Flow Graph (cfg) from Basic Blocks (BB). Definition: A Control Flow Graph (cfg) of som

  • 5 Pages irtree-manual
    Irtree-manual

    School: Portland

    Course: Lang Compiler Design II

    The IR Tree Language (for CS321/322 compiler courses) Jingke Li Dept. of Computer Science Portland State University (version 1.0 s'06) For our MINI compiler, we use a tree intermediate representation, which is a modified version from Andrew Appel's I

  • 10 Pages jvm_s
    Jvm_s

    School: Portland

    Course: Lang Compiler Design II

    Java Virtual Machine Jingke Li Portland State University Jingke Li (Portland State University) CS322 Java Virtual Machine 1/1 Java Virtual Machine JVM is an abstract computer that executes Java bytecode. Input Interface: .class les Internal Archi

  • 2 Pages proj5
    Proj5

    School: Portland

    Course: Lang Compiler Design II

    CS322 Winter'09: Languages and Compiler Design II Prof. Jingke Li (FAB 120-06, li@cs.pdx.edu), Classes: TTh 2-3:50pm, URBAN 304, Office Hours: TTh 10-11am. 2/24/09 Project #5: SPARC Assembly Code Generation (Due Tuesday 3/10/09 @ 5pm) This (last) p

  • 7 Pages mini-manual
    Mini-manual

    School: Portland

    Course: Lang Compiler Design II

    2 p p s p p s p p s p p s p p s p p s `T5@H%GTveG)v s p s p p i p pGGpGYaq Vg" i s p p i s p p i i s p p s 9 w w s p s p s p up s p tp s p ip 9 9 T5@s 9 9 v@s 9 g 9 s 9 i 9 vTs 9 s 9 s yx9 vp R Gp X v`@GC%GHrqi " Ti hgPfe"i@$dc"0Vx TDhRx0

  • 12 Pages RA_Graph_Coloring
    RA_Graph_Coloring

    School: Portland

    Course: Lang Compiler Design II

    RA via Graph Coloring HM Register Allocation via Graph Coloring (5/22/2005) The register allocation (RA) method outlined assumes object code has been generated, regardless of whether optimization has been applied or not. Object exists in some inter

  • 7 Pages ho07
    Ho07

    School: Portland

    Course: Lang Compiler Design II

    CS 302 HM COMPILER DESIGN HO 7 PSU SPRING 2001 Handout 7, Lex (5/30/2001) Lex is a venerable Unix tool that generates scanners. Input to lex is a text file that specifies the scanner; more precisely: specifying tokens, a yet to be made scanner mus

Back to course listings