Advanced Compilers CSE 231 Instructor: Sorin Lerner.

Slides:



Advertisements
Similar presentations
Advanced Compiler Design CSE 231 Instructor: Sorin Lerner.
Advertisements

Intro to CIT 594
CS/CMPE 535 – Machine Learning Outline. CS Machine Learning (Wi ) - Asim LUMS2 Description A course on the fundamentals of machine.
Recap from last time We saw various different issues related to program analysis and program transformations You were not expected to know all of these.
Cpeg421-08S/final-review1 Course Review Tom St. John.
CAS CS 330 Algorithms Administrativia 6/15/2015Gene Itkis, CS330 Algorithms3 General info Instructor: Gene Itkis
Administrative info Subscribe to the class mailing list –instructions are on the class web page, click on “Course Syllabus” –if you don’t subscribe by.
Administrative info Subscribe to the class mailing list –instructions are on the class web page, which is accessible from my home page, which is accessible.
CS 331 / CMPE 334 – Intro to AI CS 531 / CMPE AI Course Outline.
Chair of Software Engineering Fundamentals of Program Analysis Dr. Manuel Oriol.
Advanced Compilers CSE 231 Instructor: Sorin Lerner.
Advanced Compilers CSE 231 Instructor: Sorin Lerner.
Computer Security Foundations COS 597B Prof David Walker.
From last time S1: l := new Cons p := l S2: t := new Cons *p := t p := t l p S1 l p tS2 l p S1 t S2 l t S1 p S2 l t S1 p S2 l t S1 p L2 l t S1 p S2 l t.
Recap from last time We saw various different issues related to program analysis and program transformations You were not expected to know all of these.
From last class. The above is Click’s solution (PLDI 95)
CSCD 330 Network Programming Winter 2012 Lecture 1 - Course Details.
Welcome to CS 395/495 Measurement and Analysis of Online Social Networks.
EECS 395/495 Algorithmic Techniques for Bioinformatics General Introduction 9/27/2012 Ming-Yang Kao 19/27/2012.
CS 415: Programming Languages Course Introduction Aaron Bloomfield Fall 2005.
Intro to CIT 594
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
CPSC 388 – Compiler Design and Construction Lecture: MWF 11:00am-12:20pm, Room 106 Colton.
Platforms for Learning in Computer Science July 28, 2005.
Fall 2010 Instructor: Emily Batty.  Emily Batty   is the BEST way to reach me!!!
Overview of the Course. Critical Facts Welcome to CISC 672 — Advanced Compiler Construction Instructor: Dr. John Cavazos Office.
Cpt S 471/571: Computational Genomics Spring 2015, 3 cr. Where: Sloan 9 When: M WF 11:10-12:00 Instructor weekly office hour for Spring 2015: Tuesdays.
EECE 310 Software Engineering Lecture 0: Course Orientation.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2011 Course Overview John Cavazos University.
1 CS 233 Data Structures and Algorithms 황승원 Fall 2010 CSE, POSTECH.
CSE 436 Software Engineering Workshop Course Overview Christopher Gill CSE 436 January 2007 Department of Computer Science and Engineering.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
CSSE 513 – COURSE INTRO With homework and project details Wk 1 – Part 2.
CSCD 330 Network Programming Fall/Winter/Spring 2014 Lecture 1 - Course Details.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Advanced Compilers CMPSCI 710 Spring 2004 Lecture 1 Emery Berger University of Massachusetts,
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
Welcome to / Bienvenue à A Introduction to Computing II Instructor: William Renner TA: TBA Course website: Fall Session.
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
Compiler Construction (CS-636)
CS 105: LISP GRG 424 MW 1:00-2:00pm About Me Jacob Schrum: call me Jacob BS in Computer Science, Math and German at Southwestern University Currently.
Intro to CIT 594
CSCD 330 Network Programming Winter 2015 Lecture 1 - Course Details.
Compilers: Prelim/0 1 Compiler Structures Objective – –to give some background on the course , Semester 1, Who I am: Andrew Davison.
Data Structures and Algorithms in Java AlaaEddin 2012.
Lecture 1 Page 1 CS 236 Online Introduction CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
Course topics Representing programs Analyzing and transforming programs Applications of these techniques.
PROBLEM SOLVING AND PROGRAMMING ISMAIL ABUMUHFOUZ | CS 170.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
CS6501 Advanced Topics in Information Retrieval Course Policy
CSC207 Fall 2016.
Advanced Compiler Design
CSE 662 – Languages and Databases Class Overview
Purpose of Class To prepare students for research and advanced work in security topics To familiarize students working in other networking areas with important.
Advanced Compilers CMPSCI 710 Spring 2003 Lecture 1
CSCD 330 Network Programming Spring
CSCD 330 Network Programming Spring
Cpt S 471/571: Computational Genomics
Exam Topics Hal Perkins Autumn 2009
CS510 Concurrent Systems Jonathan Walpole.
CSCD 330 Network Programming Spring
Advanced Compiler Design
Intro to CIT 594
Intro to CIT 594
Optimizing Compilers CISC 673 Spring 2009 Course Overview
Advanced Compiler Design
Exam Topics Hal Perkins Winter 2008
CSE 444 Database Management Systems Autumn 1997 University of Washington Introduction and Welcome © 1997 UW CSE 12/12/2019.
Presentation transcript:

Advanced Compilers CSE 231 Instructor: Sorin Lerner

Let’s look at a compiler if (…) { x := …; } else { y := …; } …; Exec Compiler Parser Code Gen Compiler Optimizer

Parser Code Gen Compiler Let’s look at a compiler Optimizer

Advanced Optimizers CSE 231 Instructor: Sorin Lerner

What does an optimizer do? Optimizer

What does an optimizer do? 1.Compute information about a program 2.Use that information to perform program transformations (with the goal of improving some metric, e.g. performance) Optimizer

What do these tools have in common? Bug finders Program verifiers Code refactoring tools Garbage collectors Runtime monitoring system And… optimizers

What do these tools have in common? Bug finders Program verifiers Code refactoring tools Garbage collectors Runtime monitoring system And… optimizers They all analyze and transform programs We will learn about the techniques underlying all these tools

Program Analyses, Transformations, and Applications CSE 231 Instructor: Sorin Lerner

Course goals Understand basic techniques for doing program analyses and transformations –these techniques are the cornerstone of a variety of program analysis tools –they may come in handy, no matter what research you end up doing Get a feeling for what research is like in the area by reading research papers, and getting your feet wet in a small research project –useful if you don’t have a research area picked –also useful if you have a research area picked: seeing what research is like in other fields will give you a broader perspective

Course topics Techniques for representing programs Techniques for analyzing and transforming programs Applications of these techniques

Course topics (more details) Representations –Abstract Syntax Tree –Control Flow Graph –Dataflow Graph –Static Single Assignment –Control Dependence Graph –Program Dependence Graph –Call Graph

Course topics (more details) Analysis/Transformation Algorithms –Dataflow Analysis –Interprocedural analysis –Pointer analysis –Abstract interpretation –Rule-based analyses and transformations –Constraint-based analysis –Interaction between transformations and analyses –Maintaining the program representation intact

Course topics (more details) Applications –Scalar optimizations –Loop optimizations –Object oriented optimizations –Program verification –Bug finding

Course pre-requisites No compilers background necessary Some familiarity with lattices –I will review what is necessary in class, but it helps if you know it already Some familiarity with functional programming and object- oriented programming –we will look at optimization techniques for these kinds of languages A standard undergrad cs curriculum will most likely cover the above –Talk to me if you think you don’t have the pre-requisites

Course work Participation in class (10%) Take-home midterm and final (45%) Course project (45%)

Course project Goal of the project –Get some hands on experience with compilers and/or Get a feel for what research is like in PL Two kinds of projects: –research-y: explore some interesting ideas and try them out. –implementation-y: pick some existing idea out there, and implement it –paper-y: read 10 good papers on a topic, and write a report summarizing and integrating

Course project Groups of 2-3 (1 ok in some cases) I encourage you to pick something that (is related to)/(will advance) your research outside of this class Milestones –Project proposal (due 2 weeks in) –Mid-point status report (5 weeks in) –Final presentation/written report (end of quarter)

Administrative info Class web page: – Will post lectures, project info, etc.

Questions?

Program Analyzer Issues (discuss) Program Analyzer InputOutput

Program Analyzer Issues (discuss) Program Analyzer InputOutput

Program Analyzer Issues (discuss) Program Analyzer InputOutput