DOC PREVIEW
U of I CS 421 - Programming Languages and Compilers

This preview shows page 1-2-16-17-18-33-34 out of 34 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 34 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Programming Languages and Compilers (CS 421)Contact Information - Elsa L GunterContact Information - TAsSome Course ReferencesCourse GradingCourse HomeworkCourse WebsitePersonal HistoryPersonal History - MoralProgramming Language GoalsSlide 11Languages as AbstractionsWhy Study Programming Languages?Study of Programming LanguagesFeatures of a Good LanguageSlide 20Slide 21Slide 22Slide 23Slide 24Slide 25Programming Language ImplementationBasic Machine ComponentsSlide 34Basic Computer ArchitectureInterpretation Versus CompilationSlide 41Program AspectsMajor Phases of a CompilerSlide 44Major Phases of a CompilerSlide 46Example of Intermediate RepresentationExample of OptimizationProgramming Languages and Compilers (CS 421)Elsa L Gunter2112 SC, UIUChttp://www.cs.uiuc.edu/class/fa06/cs421/Based in part on slides by Mattox Beckman, as updated by Vikram Adve and Gul AghaElsa L. Gunter Contact Information - Elsa L Gunter•Office: 2112 SC•Office hours:–Thursdays 9:00am – 10:15am–Also by appointment•Email: [email protected] L. Gunter Contact Information - TAsTeaching Assistants Office: 0207 SC•T. Baris Aktemur–Email: [email protected]–Hours: Mon 9:00am - 10:00am & Thurs 1:00pm - 2:00pm•Chris Osborn–Email: [email protected]–Hours: Tues 9:00am - 10:00am & Wed 12:30pm - 1:30pm•Andrei Popescu–Email: [email protected]–Hours:Tues 4:00pm - 5:00pm & Fri 4:00pm - 5:00pmElsa L. Gunter Some Course ReferencesNo required textbook.•Compilers: Principles, Techniques, and Tools, (also known as "The Dragon Book"); by Aho, Sethi, and Ullman. Published by Addison-Wesley. ISBN: 0-201-10088-6.•Advanced Programming Language Design, by Raphael A. Finkel. Addison Wesley Publishing Company, 1996.•Programming Language Pragmatics, by Michael L. Scott. Morgan Kaufman Publishers, 2000.•Concepts, Techniques, and Models of Computer Programming by Peter Van Roy and Seif Haridi, MIT Press, 2004.•Essentials of Programming Languages (2nd Edition) by Daniel P. Friedman, Mitchell Wand and Christopher T. Haynes, MIT Press 2001.Elsa L. Gunter Course Grading•Homework 35% –About 10 MPs (in Ocaml) and 4 written assignments–MPs submitted by handin•Midterm 25% –In class - Oct 10•DO NOT MISS EXAM DATE! •Final 40% - Dec 16•Percentages are approximate–Exams may weigh more if homework is much betterElsa L. Gunter Course Homework•You may discuss homeworks and their solutions with others•You may not leave the discussion with a written solution•You must write your own solution•You may not look at another written solution when you are writing your own–You may look at examples from class and other similar examplesElsa L. Gunter Course Website•Main page - summary of news items•Policy - rules governing course•Lectures - syllabus and slides•MPs - information about homework•Exams•Unit Projects - for 4 credit students•Resources - tools and helpful info•FAQElsa L. Gunter Personal History•First began programming more than 35 years ago•First languages: basic, DG Nova assembler•Since have programmed in at least 10 different languages–Not including AWK, sed, shell scripts, latex, HTML, etcElsa L. Gunter Personal History - Moral One language may not last you all day, let alone your whole programming lifeElsa L. Gunter Programming Language Goals•Original Model:–Computers expensive, people cheap; hand code to keep computer busy•Today:–People expensive, computers cheap; write programs efficiently and correctlyElsa L. Gunter Programming Language Goals•Mythical Man-Month Author Fred Brookes“The most important two tools for system programming … are (1) high-level programming languages and (2) interactive languages”Elsa L. Gunter Languages as Abstractions• Abstraction from the Machine• Abstraction from the Operational Model• Abstraction of Errors• Abstraction of Data• Abstraction of Components• Abstraction for ReuseElsa L. Gunter Why Study Programming Languages?Helps you to:–understand efficiency costs of given constructs–reduce bugs by understanding semantics of constructs–think about programming in new ways–choose best language for task–design better program interfaces (and languages)–learn new languagesElsa L. Gunter Study of Programming Languages•Design and Organization–Syntax: How a program is written–Semantics: What a program means–Implementation: How a program runs•Major Language Features–Imperative / Applicative / Rule-based–Sequential / ConcurrentElsa L. Gunter Features of a Good Language•Simplicity – few clear constructs, each with unique meaning•Orthogonality - every combination of features is meaningful, with meaning given by each feature•Flexible control constructsElsa L. Gunter Features of a Good Language•Rich data structures – allows programmer to naturally model problem•Clear syntax design – constructs should suggest functionality•Support for abstraction - program data reflects problem being solved; allows programmers to safely work locallyElsa L. Gunter Features of a Good Language•Expressiveness – concise programs•Good programming environment•Architecture independence and portabilityElsa L. Gunter Features of a Good Language•Readability–Simplicity–Orthogonality–Flexible control constructs–Rich data structures–Clear syntax designElsa L. Gunter Features of a Good Language•Writability–Simplicity–Orthogonality–Support for abstraction–Expressivity–Programming environment–PortabilityElsa L. Gunter Features of a Good Language•Usually readability and writability call for the same language characteristics•Sometimes they conflict:–Comments: Nested comments (e.g /*… /* … */ … */ ) enhance writability, but decrease readabilityElsa L. Gunter Features of a Good Language•Reliability–Readability–Writability–Type Checking–Exception Handling–Restricted aliasingElsa L. Gunter Programming Language Implementation•Develop layers of machines, each more primitive than the previous•Translate between successive layers•End at basic layer•Ultimately hardware machine at bottomElsa L. Gunter Basic Machine Components•Data: basic data types and elements of those types•Primitive operations: for examining, altering, and combining data•Sequence control: order of execution of primitive operationsElsa L. Gunter Basic Machine Components•Data access: control of supply of data to operations•Storage


View Full Document

U of I CS 421 - Programming Languages and Compilers

Documents in this Course
Lecture 2

Lecture 2

12 pages

Exams

Exams

20 pages

Lecture

Lecture

32 pages

Lecture

Lecture

21 pages

Lecture

Lecture

15 pages

Lecture

Lecture

4 pages

Lecture

Lecture

68 pages

Lecture

Lecture

68 pages

Lecture

Lecture

84 pages

s

s

32 pages

Parsing

Parsing

52 pages

Lecture 2

Lecture 2

45 pages

Midterm

Midterm

13 pages

LECTURE

LECTURE

10 pages

Lecture

Lecture

5 pages

Lecture

Lecture

39 pages

Load more
Download Programming Languages and Compilers
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Programming Languages and Compilers and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Programming Languages and Compilers 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?