Advanced Compiler Design. CSE 231 Instructor: Sorin Lerner
|
|
- Geraldine Lawrence
- 5 years ago
- Views:
Transcription
1 Advanced Compiler Design CSE 231 Instructor: Sorin Lerner
2 Let s look at a compiler if ( ) { x := ; } else { y := ; } ; Parser Compiler Compiler Optimizer Code Gen Exec
3 Let s look at a compiler Compiler Parser Optimizer Code Gen
4 Advanced Optimizer Design CSE 231 Instructor: Sorin Lerner
5 What does an optimizer do? Compiler Parser Optimizer Code Gen 1. Compute information about a program 2. Use that information to perform program transformations (with the goal of improving some metric, e.g. performance)
6 What do these tools have in common? Bug finders Program verifiers Code refactoring tools Garbage collectors Runtime monitoring system And optimizers
7 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
8 Program Analyses, Transformations, and Applications CSE 231 Instructor: Sorin Lerner
9 Course goals Understand basic techniques cornerstone of a variety of program analysis tools useful no matter what your future path Get a feel for compiler research/implementation useful for research-oriented students useful for implementation-oriented students
10 Course topics Representing programs Analyzing and transforming programs Applications of these techniques
11 Course topics (more details) Representations Abstract Syntax Tree Control Flow Graph Dataflow Graph Static Single Assignment Control Dependence Graph Program Dependence Graph Call Graph
12 Course topics (more details) Analysis/Transformation Algorithms Dataflow Analysis Interprocedural analysis Pointer analysis Rule-based analyses and transformations Constraint-based analysis
13 Course topics (more details) Applications Scalar optimizations Loop optimizations Object oriented optimizations Program verification Bug finding
14 Course pre-requisites No compilers background necessary No familiarity with lattices I will review what is necessary in class Familiarity with functional/oo programming Optimization techniques for these kinds of languages Familiarity with C/C++ Project will be in C++ Standard ugrad cs curriculum likely enough Talk to me if you re concerned
15 Course work In-class midterm (30%) Date posted on web site In-class final (30%) Date published by official calendar Course project (35%) Class participation (5%)
16 Course project Goal of the project Get some hands on experience with compilers Two options, most will do option 1 Option 1: LLVM project Implement some analyses in LLVM, three milestones Hand in your code and it s auto-graded Option 2: Research (by instructor approval) Pick some interesting idea, and try it out Proposals due at the beginning of the second week Can leverage your existing research
17 LLVM Project M1: Simple instrumentation M2: Analysis framework M3: Implement Analyses in framework You will extend LLVM. This will require C++ If you don t know C++, you will learn If you don t think you can learn C++, think about dropping this class? To be done alone
18 Research Project Requires instructor approval You need to come up with your own idea by the end of week 1 Most students doing this will be PhD students It s ok to leverage or overlap with existing research I envision at most 10 people doing this
19 Readings Paper readings throughout the quarter Seminal papers and state of the art Gives you historical perspective Shows you lineage from idea to practice
20 Administrative info Class web page is up (or Google Sorin Lerner, follow Teaching Now ) Will post lectures, readings, project info, etc. Piazza link on web page Use for questions, answers Especially LLVM/project Q&A
21 Academic Integrity Governed by Policy on Integrity of Scholarship ( Manual/Appendices/2) Allegations are handled by Academic Integrity Office ( Course penalty for any cheating in 231 will be a failing grade for the entire class Cheaters may be subject to additional administrative sanctions
22 Questions?
23 Program Analyzer Issues (discuss) Input Program Analyzer Output
24 Program Analyzer Issues (discuss) Input Program Analyzer Output
25 Program Analyzer Issues (discuss) Input Program Analyzer Output
26 Instructor s discussion notes Input issues Input Program Analyzer Output Input is a program, but What language is the program written in? imperative vs. functional vs. object-oriented? maybe even declarative? what pointer model does the language use? reflection, exceptions, continuations? type system trusted or not? one often analyzes an intermediate language... how does one design such a language?
27 Instructor s discussion notes Input issues Input Program Analyzer Output How much of the program do we see? all? one file at a time? one library at a time? reflection Any additional inputs? any human help? profile info?
28 Instructor s discussion notes Analysis issues Input Program Analyzer Output Analysis/compilation model Separate compilation/analysis quick, but no opportunities for interprocedural analysis Link-time allows interprocedural and whole program analysis but what about shared precompiled libraries? and what about compile-time? Run-time best optimization/analysis potential (can even use run-time state as additional information) can handle run-time extensions to the program but severe pressure to limit compilation time Selective run-time compilation choose what part of compilation to delay until run-time can balance compile-time/benefit tradeoffs
29 Instructor s discussion notes Analysis issues Input Program Analyzer Output Does running-time matter? for use in IDE? or in overnight compile?
30 Instructor s discussion notes Output issues Input Program Analyzer Output Form of output varies widely, depending on analysis alias information constantness information loop terminates/does not terminate Correctness of analysis results depends on what the results are used for are we attempting to design algorithms for solving undecidable problems? notion of approximation statistical output
31 Program Transformation Issues (discuss) Input Program Transformer Output
32 Instructor s discussion notes Input issues Input Program Transformer Output A program, and Program analysis results Profile info? Environment: # of CPUs, # of cores/cpu, cache size, etc. Anything else?
33 Instructor s discussion notes Transformation issues Input Program Transformer Output What is profitable? What order to perform transformations? What happens to the program representation? What happens to the computed information? For example alias information? Need to recompute?
34 Instructor s discussion notes Output issues Input Program Transformer Output Output in same IL as input? Should the output program behave the same way as the input program?
Advanced Compiler Design. CSE 231 Instructor: Sorin Lerner
Advanced Compiler Design CSE 231 Instructor: Sorin Lerner Let s look at a compiler if ( ) { x := ; } else { y := ; } ; Parser Compiler Compiler Optimizer Code Gen Exec Let s look at a compiler Compiler
More informationAdvanced Compiler Design. CSE 231 Instructor: Sorin Lerner
Advanced Compiler Design CSE 231 Instructor: Sorin Lerner Let s look at a compiler if ( ) { x := ; } else { y := ; } ; Parser Compiler Compiler Optimizer Code Gen Exec Let s look at a compiler Compiler
More informationUsually, target code is semantically equivalent to source code, but not always!
What is a Compiler? Compiler A program that translates code in one language (source code) to code in another language (target code). Usually, target code is semantically equivalent to source code, but
More informationHi! My name is Sorin. Programming Languages. Why study PL? (discussion) Why study PL? Course Goals. CSE : Fall 2017
Hi! My name is Sorin CSE 130-230 : Fall 2017 Programming Languages Sorin Lerner UC San Diego Why study PL? (discussion) Why study PL? A different language is a different vision of life - Fellini - Hypothesis:
More informationCSE 501: Compiler Construction. Course outline. Goals for language implementation. Why study compilers? Models of compilation
CSE 501: Compiler Construction Course outline Main focus: program analysis and transformation how to represent programs? how to analyze programs? what to analyze? how to transform programs? what transformations
More informationCSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity)
CSE 417 Practical Algorithms (a.k.a. Algorithms & Computational Complexity) Outline for Today > Course Goals & Overview > Administrivia > Greedy Algorithms Why study algorithms? > Learn the history of
More informationCSE506: Operating Systems CSE 506: Operating Systems
CSE 506: Operating Systems Introduction Today s Lecture Course Overview Course Topics Grading Logistics Academic Integrity Policy Key concepts from Undergrad Operating Systems Course Overview (1/3) Caveat
More informationCSE506: Operating Systems CSE 506: Operating Systems
CSE 506: Operating Systems Introduction Today s Lecture Course Overview Course Topics Grading Logistics Academic Integrity Policy Homework #1 (of 1) Quiz #1 (of 1) Key concepts from Undergrad Operating
More informationECE573 Introduction to Compilers & Translators
ECE573 Introduction to Compilers & Translators Tentative Syllabus Fall 2005 Tu/Th 9:00-10:15 AM, EE 115 Instructor Prof. R. Eigenmann Tel 49-41741 Email eigenman@ecn Office EE334C Office Hours Tu 10:15-11:30
More informationProgram Analysis And Its Support in Software Development
Program Analysis And Its Support in Software Development Qing Yi class web site: www.cs.utsa.edu/~qingyi/cs6463 cs6463 1 A little about myself Qing Yi B.S. Shandong University, China. Ph.D. Rice University,
More information15-411/ Compiler Design
15-411/15-611 Compiler Design Jan Hoffmann Fall 2016 http://www.cs.cmu.edu/~janh/courses/411/16 Teaching Staff Instructor: Jan Hoffmann Office hours: Tue 10:30am-noon Thu 1:00pm-2:30pm at GHC 9105 Teaching
More informationProgramming Languages
CSE 130 : Fall 2016 Programming Languages Sorin Lerner UC San Diego Hi! My name is Sorin Why study PL? (discussion) Why study PL? A different language is a different vision of life - Fellini - Hypothesis:
More informationCS 241 Data Organization using C
CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am
More informationIntroduction to Programming System Design CSCI 455x (4 Units)
Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,
More informationCSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers
CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers Leonidas Fegaras CSE 5317/4305 L1: Course Organization and Introduction 1 General Course Information Instructor:
More informationCS 553: Algorithmic Language Compilers (PLDI) Graduate Students and Super Undergraduates... Logistics. Plan for Today
Graduate Students and Super Undergraduates... CS 553: Algorithmic Language Compilers (PLDI) look for other sources of information make decisions, because all research problems are under-specified evaluate
More informationAdvanced Compiler Construction
CS 526 Advanced Compiler Construction http://misailo.cs.illinois.edu/courses/cs526 Goals of the Course Develop a fundamental understanding of the major approaches to program analysis and optimization Understand
More informationIntroduction to Computer Systems
Introduction to Computer Systems Today: Welcome to EECS 213 Lecture topics and assignments Next time: Bits & bytes and some Boolean algebra Fabián E. Bustamante, Spring 2010 Welcome to Intro. to Computer
More informationIntroduction to Computer Systems
Introduction to Computer Systems Today:! Welcome to EECS 213! Lecture topics and assignments Next time:! Bits & bytes! and some Boolean algebra Fabián E. Bustamante, 2007 Welcome to Intro. to Computer
More informationCS 241 Data Organization. August 21, 2018
CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/
More informationCS240: Programming in C
CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special
More informationSyllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)
Syllabus COSC-051-x - Computer Science I Fall 2018 Instructor: Jeremy Bolton, Ph.D. Asst Teaching Professor Department of Computer Science Office: TBD (see Course calendar for office hours) Email: jeremy.bolton@georgetown.edu
More informationCSE 544 Principles of Database Management Systems
CSE 544 Principles of Database Management Systems Lecture 1 - Introduction and the Relational Model 1 Outline Introduction Class overview Why database management systems (DBMS)? The relational model 2
More informationECE Introduction to Compilers and Translation Engineering
ECE 46800 Introduction to Compilers and Translation Engineering Instructor: Xiaokang Qiu Teaching Assistants: Chris Wright Office: EE 334C Office: EE 207 Fall 2018 Course Information Phone: 765-494-9987
More informationCS503 Advanced Programming I CS305 Computer Algorithms I
Syllabus: CS503 Advanced Programming I CS305 Computer Algorithms I Course Number: CS503-50/CS305-50 Course Title: Advanced Programming I/Computer Algorithms I Instructor: Richard Scherl Office: Howard
More informationPrinciples of Program Analysis. Lecture 1 Harry Xu Spring 2013
Principles of Program Analysis Lecture 1 Harry Xu Spring 2013 An Imperfect World Software has bugs The northeast blackout of 2003, affected 10 million people in Ontario and 45 million in eight U.S. states
More informationIntroduction to Computer Systems
Introduction to Computer Systems Syllabus Web Page http://www.cs.northwestern.edu/~pdinda/icsclass Instructor Peter A. Dinda 1890 Maple Avenue, Room 338 847-467-7859 pdinda@cs.northwestern.edu Office hours:
More informationIntroduction to Computer Systems
Introduction to Computer Systems Web Page http://pdinda.org/ics Syllabus See the web page for more information. Class discussions are on Piazza We will make only minimal use of Canvas (grade reports, perhaps
More information378: Machine Organization and Assembly Language
378: Machine Organization and Assembly Language Spring 2010 Luis Ceze Slides adapted from: UIUC, Luis Ceze, Larry Snyder, Hal Perkins 1 What is computer architecture about? Computer architecture is the
More informationCS 406/534 Compiler Construction Putting It All Together
CS 406/534 Compiler Construction Putting It All Together Prof. Li Xu Dept. of Computer Science UMass Lowell Fall 2004 Part of the course lecture notes are based on Prof. Keith Cooper, Prof. Ken Kennedy
More informationChris Riesbeck, Fall Introduction to Computer Systems
Chris Riesbeck, Fall 2011 Introduction to Computer Systems Welcome to Intro. to Computer Systems Everything you need to know http://www.cs.northwestern.edu/academics/courses/213/ Instructor: Chris Riesbeck
More informationHi! My name is Sorin. Programming Languages. Why study PL? (discussion) Why study PL? Course Goals. CSE 130 : Fall 2014
Hi! My name is Sorin CSE 130 : Fall 2014 Programming Languages Sorin Lerner UC San Diego Why study PL? (discussion) Why study PL? A different language is a different vision of life - Fellini - Hypothesis:
More informationCSE 544 Advanced Systems Security
Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA CSE 544 Advanced Systems
More informationCOMP 401 COURSE OVERVIEW
COMP 401 COURSE OVERVIEW Instructor: Prasun Dewan (FB 150, help401@cs.unc.edu) Course page: http://www.cs.unc.edu/~dewan/comp401/current/ COURSE PAGE Linked from my home page (google my name to find it)
More informationHi! My name is Sorin. Programming Languages. Why study PL? (discussion) Why study PL? Course Goals. CSE 130 : Fall 2013
Hi! My name is Sorin CSE 130 : Fall 2013 Programming Languages Sorin Lerner UC San Diego Why study PL? (discussion) Why study PL? A different language is a different vision of life - Fellini - Hypothesis:
More informationProgramming Languages
CSE 130 : Fall 2013 Programming Languages Sorin Lerner UC San Diego Hi! My name is Sorin Why study PL? (discussion) Why study PL? A different language is a different vision of life - Fellini - Hypothesis:
More informationKOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)
Programming Concepts & Algorithms Course Syllabus Course Title Course Code Computer Department Pre-requisites Course Code Course Instructor Programming Concepts & Algorithms + lab CPE 405C Computer Department
More informationCOURSE OUTLINE. School of Engineering Technology and Applied Science
COURSE OUTLINE SCHOOL: School of Engineering Technology and Applied Science DEPARTMENT: PROGRAM: COURSE TITLE: Information and Communication Engineering Technology (ICET) Computer and Communication Networking
More informationCS/SE 153 Concepts of Compiler Design
San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: Website: Office Hours:
More informationUndergraduate Compilers in a Day
Question of the Day Backpatching o.foo(); In Java, the address of foo() is often not known until runtime (due to dynamic class loading), so the method call requires a table lookup. After the first execution
More informationCSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers
CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers Leonidas Fegaras CSE 5317/4305 L1: Course Organization and Introduction 1 General Course Information Instructor:
More informationCS153: Compilers Lecture 1: Introduction
CS153: Compilers Lecture 1: Introduction Stephen Chong https://www.seas.harvard.edu/courses/cs153 Source Code What is this course about?? Compiler! Target Code 2 What is this course about? How are programs
More informationCSE 501! Principles and Applications! of Program Analysis! " Alvin Cheung" Spring 15"
CSE 501! Principles and Applications! of Program Analysis! " Alvin Cheung" Spring 15" Welcome to CSE 501!" The Cast" J K J K J J K K JhQ, D,, hi, ek!hq 0, D 0,, h 0 i,( 0, e) force(q 0, D 0,( 0, e))! Q
More informationCOMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web
COMP 117: Internet Scale Distributed Systems (Spring 2018) COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah
More informationCSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers
CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers Leonidas Fegaras CSE 5317/4305 L1: Course Organization and Introduction 1 General Course Information Instructor:
More informationOptimized C++ o Websites and handouts Optional: Effective C++, Scott Meyers. Fall 2013
Optimized C++ Gam 371/471/391/491 Instructor: Ed Keenan Email: ekeenan2@cdm.depaul.edu office hours: Tues 9-10 pm, Wed 3-5pm or by Appt office: CDM 830 phone: (312) 362-6747 Ed Keenan Fall 2013 Course
More informationAdvanced Compiler Construction
Advanced Compiler Construction Qing Yi class web site: www.cs.utsa.edu/~qingyi/cs6363 cs6363 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science
More informationWelcome to CS 241 Systems Programming at Illinois
Welcome to CS 241 Systems Programming at Illinois Marco Caccamo & Brighten Godfrey Copyright : University of Illinois CS 241 Staff 1 The Team Marco Caccamo Office: 4118 SC (office hours: Friday 11.50-12.50)
More informationGeneral Course Information. Catalogue Description. Objectives
General Course Information CSE4305: Compilers for Algorithmic Languages CSE5317: Design and Construction of Compilers Instructor: Leonidas Fegaras Office: ERB 653 (Engineering Research Bldg) Phone: (817)
More informationCOS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University
COS 333: Advanced Programming Techniques Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions Course Overview Resources Topics Assignments Project (briefly) Schedule (briefly)
More informationCSCI 4250/6250 Fall 2013 Computer and Network Security. Instructor: Prof. Roberto Perdisci
CSCI 4250/6250 Fall 2013 Computer and Network Security Instructor: Prof. Roberto Perdisci perdisci@cs.uga.edu CSCI 4250/6250 What is the purpose of this course? Combined Undergrad/Graduate Intro to Computer
More informationIn this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".
**Disclaimer** This syllabus is to be used as a guideline only. The information provided is a summary of topics to be covered in the class. Information contained in this document such as assignments, grading
More informationWe made it! Java: Assembly language: OS: Machine code: Computer system:
We made it! C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine code: get_mpg: pushq movq... popq ret %rbp %rsp, %rbp %rbp 0111010000011000
More informationWELCOME TO CS 16! Enrollment status: 117/ Problem Solving with Computers-I
WELCOME TO CS 16! Problem Solving with Computers-I https://ucsb-cs16-s18-mirza.github.io/ Enrollment status: 117/105 2 About me Diba Mirza (diba@ucsb.edu) PhD (Computer Engineering, UCSD) First year as
More informationCS 240 Fall 2015 Section 004. Alvin Chao, Professor
CS 240 Fall 2015 Section 004 Alvin Chao, Professor Today Course overview Data Structures / Algorithms Course policies The C language Motivation Computers are digital Data is stored in binary format (1's
More informationEDIT571-5T1 Fireworks CRN Credits 2 Online August 30 November 6
EDIT 571 - Fireworks Fall 209 p. 1 EDIT571-5T1 Fireworks CRN 72324 Credits 2 Online August 30 November 6 Instructor Heather Tillberg-Webb, PhD Blackboard Login Page http://courses.gmu.edu/ Stay Connected
More informationCS/SE 153 Concepts of Compiler Design
San José State University Department of Computer Science CS/SE 153 Concepts of Compiler Design Section 1 Fall 2018 Course and Contact Information Instructor: Ron Mak Office Location: ENG 250 Email: ron.mak@sjsu.edu
More informationCMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009
CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming Summer 2009 About these notes Originally by Cyrus Bazeghi Overhauled by Andrea Di Blas Modified by me (Alexandra
More informationCMPE 152 Compiler Design
San José State University Department of Computer Engineering CMPE 152 Compiler Design Section 1 (Class) Sections 2 and 3 (Labs) Spring 2019 Course and Contact Information Instructor: Ron Mak Office Location:
More informationIntroduction. CS 2210 Compiler Design Wonsun Ahn
Introduction CS 2210 Compiler Design Wonsun Ahn What is a Compiler? Compiler: A program that translates source code written in one language to a target code written in another language Source code: Input
More informationOverview of the Class
Overview of the Class Copyright 2015, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University of Southern California (USC) have explicit permission to make copies
More informationIntroduction to Computer Systems
15-213 The Class That Gives CMU Its Zip! Introduction to Computer Systems David O Hallaron August 27, 2002 Topics: Staff, text, and policies Lecture topics and assignments Lab rationale class01b.ppt CS
More informationCSCI 565 Compiler Design and Implementation Spring 2014
CSCI 565 Compiler Design and Implementation Spring 2014 Instructor: Description: Prerequisites: Dr. Pedro C. Diniz, e-mail pedro@isi.edu Lectures: Thursday, 8.00 10.50 AM, RTH 217, phone: (213) 740 4518
More informationECONOMICS 5317: CONTEMPORARY GOVERNMENT AND BUSINESS RELATIONS
1 ECONOMICS 5317: CONTEMPORARY GOVERNMENT AND BUSINESS RELATIONS Fall 2011, MWF 9:05-9:55, HCB 408 INSTRUCTOR: David VanHoose OFFICE HOURS: OFFICE: 339 Hankamer MWF 8:00-9:00 & 12:15-1:15; OFFICE PHONE:
More informationOverview. CSE 101: Design and Analysis of Algorithms Lecture 1
Overview CSE 101: Design and Analysis of Algorithms Lecture 1 CSE 101: Design and analysis of algorithms Course overview Logistics CSE 101, Fall 2018 2 First, relevant prerequisites Advanced Data Structures
More informationSyllabus: Capstone Web
Syllabus: Capstone Web CE 000C 01 Design CE 000C Course Information: Location: Dates: Note: Course Description: This course is designed to provide you with the opportunity to demonstrate the skills and
More informationLanguages and Compilers
Languages and Compilers Nate Nystrom Amanj Sherwany usi-compilers@googlegroups.com http://usi-pl.github.io/lc/sp2015 University of Lugano About me 2009 2010 Assistant Professor 1998 1999 compiler engineer
More informationIntroduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)
Introduction to 3110 Prof. Clarkson Fall 2015 Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski) Welcome! Programming isn t hard Programming well is very hard
More informationCS 6371: Advanced Programming Languages
CS 6371: Advanced Programming Languages Dr. Kevin Hamlen Spring 2017 Fill out, sign, and return prereq forms: Course number: CS 6371 Section: 1 Prerequisites: CS 5343: Algorithm Analysis & Data Structures
More informationCSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1
CSE 332: Data Abstractions Ruth Anderson Spring 2014 Lecture 1 Welcome! We have 10 weeks to learn fundamental data structures and algorithms for organizing and processing information Classic data structures
More informationCOS 333: Advanced Programming Techniques
COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University Please pick up handouts at the back of the room 1 COS 333: Course Overview Copyright 2018 by Robert M. Dondero, Ph.D.
More informationIntroduction to Computer Systems
CS-213 Introduction to Computer Systems Yan Chen Topics: Staff, text, and policies Lecture topics and assignments Lab rationale CS 213 F 06 Teaching staff Instructor TA Prof. Yan Chen (Thu 2-4pm, Tech
More informationCS 553 Compiler Construction Fall 2009 Project #1 Adding doubles to MiniJava Due September 8, 2009
CS 553 Compiler Construction Fall 2009 Project #1 Adding doubles to MiniJava Due September 8, 2009 In this assignment you will extend the MiniJava language and compiler to enable the double data type.
More informationSpring 2017 :: CSE 506. Introduction. Nima Honarmand
Introduction Nima Honarmand What is an Operating System? (1) App 1 App 2 App n Operating System Processor Disk Memory Network What are the main tasks of an OS? What is an Operating System? (2) What are
More informationEECE.2160: ECE Application Programming Spring 2017
Course Meetings Section 201: MWF 8-8:50, Ball 314 Section 202: MWF 12-12:50, Kitson 305 Course Website Main page: http://mjgeiger.github.io/eece2160/sp17/ Schedule: http://mjgeiger.github.io/eece2160/sp17/schedule.htm
More informationCSE 501 Midterm Exam: Sketch of Some Plausible Solutions Winter 1997
1) [10 pts] On homework 1, I asked about dead assignment elimination and gave the following sample solution: 8. Give an algorithm for dead assignment elimination that exploits def/use chains to work faster
More informationCS 150 Introduction to Computer Science 1
CS 150 Introduction to Computer Science 1 Professor: Chadd Williams CS150 Introduction to Computer Science 1 Chadd Williams http://zeus.cs.pacificu.edu/chadd chadd@pacificu.edu Office 202 Strain Office
More informationWelcome! COMS 4118 Opera3ng Systems I Spring 2018
Welcome! COMS 4118 Opera3ng Systems I Spring 2018 Teaching staff 5 Teaching Assistants (TAs) John Hui jzh2106@columbia.edu (Head TA) JiaYan Hu jh3541@columbia.edu Mert Ussakli mu2228@columbia.edu Kundan
More informationOverview of the ECE Computer Software Curriculum. David O Hallaron Associate Professor of ECE and CS Carnegie Mellon University
Overview of the ECE Computer Software Curriculum David O Hallaron Associate Professor of ECE and CS Carnegie Mellon University The Fundamental Idea of Abstraction Human beings Applications Software systems
More informationCIS192: Python Programming
CIS192: Python Programming Introduction Harry Smith University of Pennsylvania January 18, 2017 Harry Smith (University of Pennsylvania) CIS 192 Lecture 1 January 18, 2017 1 / 34 Outline 1 Logistics Rooms
More informationCourse Administration
CS 246: Software Abstraction and Specification (Software Engineering Section) Lecture 1 Course Administration http://www.student.cs.uwaterloo.ca/~cs247 Calendar Description CS 247 Software Engineering
More informationCMPE 150/L : Introduction to Computer Networks
CMPE 150/L : Introduction to Computer Networks Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 1 Slides source: Kurose and Ross, Simon Lam, Katia Obraczka Introduction 1-1 Notetaker Position
More information61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013
61A LECTURE 1 FUNCTIONS, VALUES Steven Tang and Eric Tzeng June 24, 2013 Welcome to CS61A! The Course Staff - Lecturers Steven Tang Graduated L&S CS from Cal Back for a PhD in Education Eric Tzeng Graduated
More informationComputer Science Technology Houston Community College
Computer Science Technology Houston Community College UNIX Operating Systems I Course Syllabus Instructor Course Reference Number (CRN) WECM Course Description: Course Prerequisite(s) Course Semester Credit
More informationWelcome to CS61A! Last modified: Thu Jan 23 03:58: CS61A: Lecture #1 1
Welcome to CS61A! This is a course about programming, which is the art and science of constructing artifacts ( programs ) that perform computations or interact with the physical world. To do this, we have
More informationCIS 3308 Web Application Programming Syllabus
CIS 3308 Web Application Programming Syllabus (Upper Level CS Elective) Course Description This course explores techniques that are used to design and implement web applications both server side and client
More informationComputer Science Technology Department
Computer Science Technology Department Houston Community College Department Phone Number: 713-718-6776 Houston Community College ITMT 2373 - Configuring Advanced Windows Server 2012 Services Course Syllabus
More informationIn this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".
**Disclaimer** This syllabus is to be used as a guideline only. The information provided is a summary of topics to be covered in the class. Information contained in this document such as assignments, grading
More informationWelcome to CS 241 Systems Programming at Illinois
Welcome to CS 241 Systems Programming at Illinois Robin Kravets Copyright : University of Illinois CS 241 Staff 1 The Team Robin Kravets Office: 3114 SC rhk@illinois.edu TAs Wade Fagen, Farhana Ashraf,
More informationCS313T ADVANCED PROGRAMMING LANGUAGE
CS313T ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 1 : Introduction Lecture Contents 2 Course Info. Course objectives Course plan Books and references Assessment methods and grading
More informationCSC209H Lecture 1. Dan Zingaro. January 7, 2015
CSC209H Lecture 1 Dan Zingaro January 7, 2015 Welcome! Welcome to CSC209 Comments or questions during class? Let me know! Topics: shell and Unix, pipes and filters, C programming, processes, system calls,
More informationRecap: Pointers. int* int& *p &i &*&* ** * * * * IFMP 18, M. Schwerhoff
Recap: Pointers IFMP 18, M. Schwerhoff int* int& *p &i &*&* ** * * * * A 0 A 1 A 2 A 3 A 4 A 5 A 0 A 1 A 2 A 3 A 4 A 5 5 i int* p; A 0 A 1 A 2 A 3 A 4 A 5 5 i p int* p; p = &i; A 0 A 1 A 2 A 3 A 4 A 5
More information[301] Introduction. Tyler Caraza-Harter
[301] Introduction Tyler Caraza-Harter Welcome to Data Programming! Data is exploding in many fields Biology, physics, chemistry Psychology, sociology, economics, business Engineering (mechanical, electrical,
More informationCIS 101 Orientation Document Fall 2017
CIS 101 Orientation Document Fall 2017 Fall 2017 ONLINE section 23989 To be successful in an online section you must be motivated, disciplined, and able to read and understand the material in the books
More informationITNW 1425 Fundamentals of Networking Technologies Course Syllabus fall 2012
ITNW 1425 Fundamentals of Networking Technologies Course Syllabus fall 2012 Instructor Course Reference Number (CRN) Course Description: Course Prerequisite(s) Course Semester Credit Hours (SCH) (Lecture,
More informationCSCE 5013: Cloud Computing Spring 2017
CSCE 5013: Cloud Computing Spring 2017 Lecture: M/W/F 11:50AM-12:40PM, JBHT 239 Course Management Website: moodle.csce.uark.edu Instructor: Miaoqing Huang Office: JBHT 526 Tel: 479-575-7578 Email: mqhuang@uark.edu
More informationCSC116: Introduction to Computing - Java
CSC116: Introduction to Computing - Java Course Information Introductions Website Syllabus Computers First Java Program Text Editor Helpful Commands Java Download Intro to CSC116 Instructors Course Instructor:
More informationCS61C Machine Structures. Lecture 3 Introduction to the C Programming Language. 1/23/2006 John Wawrzynek. www-inst.eecs.berkeley.
CS61C Machine Structures Lecture 3 Introduction to the C Programming Language 1/23/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L03 Introduction to C (1) Administrivia
More informationSyllabus of ENPM 691: Secure Programming in C
Syllabus of ENPM 691: Secure Programming in C Spring Semester 2018 Instructor: Dharmalingam Ganesan, PhD Contact: dganesan@umd.edu Class hours: Thursday 7:00 PM to 9:40 PM Class location: TBA Course Description:
More informationCPSC 213 Labs Cheat-Manual
CPSC 213 Labs Cheat-Manual Phoenix, Ksenia, Harlin Inspired by Jordon Johnson s The Hitchhiker s Guide to CPSC213 Labs and Assignments Outline Assignments Brief. What about Labs. Get/Renew CS Account CS
More information