CS 526 Advanced Topics in Compiler Construction. 1 of 12

Similar documents
CS426 Compiler Construction Fall 2006

CS415 Compilers Overview of the Course. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

UG3 Compiling Techniques Overview of the Course

Compiler Design. Dr. Chengwei Lei CEECS California State University, Bakersfield

Compiling Techniques

LCPC Arun Chauhan and Ken Kennedy

CS415 Compilers Overview of the Course. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

Introduction to Computer Systems

Object-Oriented Programming CSCI-UA

CPS352 Database Systems Syllabus Fall 2012

Lecture Notes CPSC 321 (Fall 2018) Today... Survey. Course Overview. Homework. HW1 (out) S. Bowers 1 of 8

Introduction To Data Processing COMP 153 Business Administration Program/Administrative Studies. Course Outline

Compilers for High Performance Computer Systems: Do They Have a Future? Ken Kennedy Rice University

CS 4349 Lecture October 18th, 2017

understanding recursive data types, recursive functions to compute over them, and structural induction to prove things about them

Compiler Architecture for High-Performance Problem Solving

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

Generation of High Performance Domain- Specific Languages from Component Libraries. Ken Kennedy Rice University

CS120 Computer Science I. Instructor: Jia Song

Can you name one application that does not need any data? Can you name one application that does not need organized data?

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Introduction to Computer Systems

CS 4120 and 5120 are really the same course. CS 4121 (5121) is required! Outline CS 4120 / 4121 CS 5120/ = 5 & 0 = 1. Course Information

Administrivia. Compilers. CS143 10:30-11:50TT Gates B01. Text. Staff. Instructor. TAs. The Purple Dragon Book. Alex Aiken. Aho, Lam, Sethi & Ullman

High Performance Computing. Without a Degree in Computer Science

CS 502 Introduction to Operating Systems. Fall 98 Waltham Campus

PLAGIARISM. Administrivia. Compilers. CS143 11:00-12:15TT B03 Gates. Text. Staff. Instructor. TAs. Office hours, contact info on 143 web site

CS420/CSE 402/ECE 492. Introduction to Parallel Programming for Scientists and Engineers. Spring 2006

Lecture 1: Introduction and Basics

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

1DL321: Kompilatorteknik I (Compiler Design 1)

Central Washington University Department of Computer Science Course Syllabus

15-411/ Compiler Design

CS313T ADVANCED PROGRAMMING LANGUAGE

CS 3230 Object Oriented UI Development With Java Syllabus

Topic 1: Introduction

Topics on Compilers

Introduction to Programming Languages and Compilers. CS164 11:00-12:30 TT 10 Evans. UPRM ICOM 4029 (Adapted from: Prof. Necula UCB CS 164)

Introduction. Distributed Systems. Introduction. Introduction. Instructor Brian Mitchell - Brian

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

SYLLABUS, MAJOR TOPICS & COMPUTERS

CS 113: Introduction to

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

CVEN 302. Computer Applications in Engineering and Construction. Dr. Tony Cahill Environmental and Water Resources Division

Introduction & Logistics

CSC 111 Introduction to Computer Science (Section C)

Erik Jonsson School of Engineering and Computer Science THE UNIVERSITY OF TEXAS AT DALLAS HISTORY OF EE 2310

Prof. David Yarowsky

URL: Offered by: Should already know: Will learn: 01 1 EE 4720 Computer Architecture

TTh 9.25 AM AM Strain 322

CSCI 565 Compiler Design and Implementation Spring 2014

Operating Systems (ECS 150) Spring 2011

Compiler Design 1. Introduction to Programming Language Design and to Compilation

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CS 241 Data Organization using C

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

URL: Offered by: Should already know: Will learn: 01 1 EE 4720 Computer Architecture

Computer Science Department

During initial conversations about the

Compilers and Run-Time Systems for High-Performance Computing

Telescoping MATLAB for DSP Applications

Logic and Discrete Mathematics

Programming Language Design and Implementation. Cunning Plan. Your Host For The Semester. Wes Weimer TR 9:30-10:45 MEC 214. Who Are We?

ECE 588/688 Advanced Computer Architecture II

CS 536. Class Meets. Introduction to Programming Languages and Compilers. Instructor. Key Dates. Teaching Assistant. Charles N. Fischer.

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

Physics 2660: Fundamentals of Scientific Computing. Lecture 7 Instructor: Prof. Chris Neu

CSC Operating Systems Fall Lecture - I Introduction. Tevfik Ko!ar. Louisiana State University. August 25 th, Contact Information

Preface A Brief History Pilot Test Results

Compilers. Introduction. Yannis Smaragdakis, U. Athens (original slides by Sam

CS 3030 Scripting Languages Syllabus

programming exercises.

CMPT 126: Introduction to Computing Science and Programming Fall 2007, Harbour Centre

Who, where, when. Database Management Systems (LIX022B05) Literature. Evaluation. Lab Sessions. About this course. After this course...

RISC Principles. Introduction

Outline. When we last saw our heros. Language Issues. Announcements: Selecting a Language FORTRAN C MATLAB Java

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

Grade Weights. Language Design and Overview of COOL. CS143 Lecture 2. Programming Language Economics 101. Lecture Outline

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

CMPSCI 645 Database Design & Implementation

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

CS535: Interactive Computer Graphics

Overview of Digital Design with Verilog HDL 1

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Semiconductor Physics Devices Donald Neamen 4th Edition File Type

Evolution of Fortran. Presented by: Tauqeer Ahmad. Seminar on Languages for Scientific Computing

Component Architectures

Advanced Compiler Construction

COMP250: Introduction to Computer Science. Jérôme Waldispühl & Carlos Oliver Gonzalez School of Computer Science McGill University

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda

EE 7722 GPU Microarchitecture. Offered by: Prerequisites By Topic: Text EE 7722 GPU Microarchitecture. URL:

CS1 Lecture 2 Jan. 16, 2019

CS639: Data Management for Data Science. Lecture 1: Intro to Data Science and Course Overview. Theodoros Rekatsinas

Development Systems: A Review

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

CS 242. Fundamentals. Reading: See last slide

Transcription:

CS 526 Advanced Topics in Compiler Construction 1 of 12

Course Organization Instructor: David Padua 3-4223 padua@uiuc.edu Office hours: By appointment Course material: Website Textbook: Randy Allen and Ken Kennedy Optimizing Compilers for Modern Architectures Web papers and Photocopies (oldies) polaris.cs.uiuc.edu/~padua/cs526 2 of 12

25% Homeworks 25% Presentations Grading 25% Midterm Exam (take home exam due on the Ides of March) 25% Final Exam (take home exam due the first day of final exams week) 3 of 12

Course subject Optimizing compiler technology and some notions of program generation. Topics in program analysis, and program transformation for sequential performance, parallelism, and locality. The study of compilers involve both theoretical and engineering issues. 4 of 12

Block diagram of compilers and program generators Algorithm Program Generation Internal representation Program Transformation Source Program Executable Program 5 of 12

Importance of optimizing compilers Compilers facilitate programming by Presenting a high-level interface Enabling portability/machine independence For computational intensive applications, the acceptance of a programming language largely depends on the availability of effective compilers. For some classes of applications performance is not that important (e.g. web applications in which all program does is to wait.) 6 of 12

Optimizing compilers liberate the programmer from concerns about machine-related issues and in this way make programs easy to port without performance loss. Compilers enable the programmer to focus on the development of clean (easy to understand and debug) programs. However, programmers still need to choose a good algorithm. And, usually, more efficient algorithms are more complicated. 7 of 12

A difficult problem Like most of the early hardware and software systems, Fortran was late in delivery, and didn t really work when it was delivered. At first people thought it would never be done. Then when it was in field test, with many bugs, and with some of the most important parts unfinished, many thought it would never work. It gradually got to the point where a program in Fortran had a reasonable expectancy of compiling all the way through and maybe even running. This gradual change of status from an experiment to a working system was true of most compilers. It is stressed here in the case of Fortran only because Fortran is now almost taken for granted, as it were built into the computer hardware. Saul Rosen Programming Languages and Systems McGraw Hill 1967 8 of 12

Question: How far we can go with program transformation? 9 of 12

Performance and compilers "It was our belief that if FORTRAN, during its first months, were to translate any reasonable "scientific" source program into an object program only half as fast as its hand coded counterpart, then acceptance of our system would be in serious danger. This belief caused us to regard the design of the translator as the real challenge, not the simple task of designing the language."... "To this day I believe that our emphasis on object program efficiency rather than on language design was basically correct. I believe that has we failed to produce efficient programs, the widespread use of language like FORTRAN would have been seriously delayed. John Backus FORTRAN I, II, and III Annals of the History of Computing Vol. 1, No 1, July 1979 Is performance equally important today? 10 of 12

What drives optimizing compiler technology? High-level language, applications, and computer architecture define the character of the optimizing compiler technology that connects them. High-level languages: General purpose language evolve slowly. Most of the constructs popular today were available in the 1960s. Nevertheless they evolve. Object orientation is an example of evolution. Two future directions: parallel programming and higher levels of abstraction. 11 of 12

Applications Applications determine the programming patterns that guide optimization strategies. Architecture Parallelism in the form of global address space will dominate Need to develop compiler technology for this. Compiling parallel programming languages. Automatic parallelization. 12 of 12