CS473 01: Topics: Compiler Design: Home

Home Assignments Schedule Roster Grades

Instructor Information

Instructor: Jon Sorenson
Office:Fairbanks 158 (CSSE Department)
Phone/Voicemail:940-9765
Home Phone:280-1168 (before 9pm please)
E-Mail Address:
jsorenso@butler.edu
Home Page URL: http://euclid.butler.edu/~sorenson/
Office Hours: MTWRF 10:30-11:50, or by appointment

Course Goals

The goal in this course is to write a compiler for a very small Pascal-like language. The main topics we will cover are lexical analysis, syntax analysis, finite automata and grammars, top-down and bottom-up parsing techniques, semantics, error handling, code generation, and some optimization.

The compiler project will dominate this course.

I am not going to set any prerequisites to take this course, but the more of the following courses you have under your belt, the better prepared you are: CS151 & CS252 or MA205 & MA206, CS242 & CS243, CS321, CS351, SE361, CS441, and CS451.

Course Materials

The required text is Introduction to Compiler Construction, by Thomas W. Parsons, Computer Science Press, 1992.

I expect you to use the C++ compiler on thomas. You are welcome to use any other compiler if you wish, but the LAss assembler will only run on a Unix platform (SUN, Linux, etc.), and this is the target language for the compiler project.

All handouts for this course will be made available through the world-wide-web (WWW) home page for this course. The URL is http://euclid.butler.edu/compiler. We will discuss how to access this during the first day of class. If at any time you need a handout from the web, but are unable to print it, just ask me and I will print one for you. (Note that there is a "printer friendly" button at the bottom left.)

Grades

Your grade will be based on homework, the compiler project, and a final exam as follows:

Compiler Project (4 parts) 300 points (75 points each part)
Homework (5) 100 points (20 points each)
Final Exam 100 points
Total: 500 points

There will be opportunities to earn extra credit points on several homework assignments and on some phases of the compiler project.

Note that homework assignments must be typed and all assignments should be turned in to me in hard copy (don't e-mail your assignments to me and make me print them).

Penalties: If you e-mail your homework instead of giving me a hard copy, I will deduct 2 points. If you turn in handwritten homework instead of typed, I will deduct another 2 points.

Letter grades are assigned according to the following scale:

93%90% 87%83%80% 77%73%70% 67%63%60%
AA- B+BB- C+CC- D+DD-

If the class average is low (say, below 70%), then I may curve slightly in your favor.

For a description of the grading criteria for programming assignments, see the Program Grading Criteria page, which is also accessible from the course home page.

Late Days

Each weekday that an assignment is late, you are charged one late day. Weekends, breaks, and holidays do not count as late days. You begin the semester with 12 free late days to use (or not use) as you wish. Once you go over this limit, each additional late day costs you 5 points.

Late days are designed to handle normal problems, such as having an exam or major project due in another course, or missing a day or two with a cold, or going to your cousin's wedding. If you have unusual circumstances please talk to me about it as soon as possible.

Partners

You may work in groups of 2 or 3 on the compiler project. You may collaborate on the homework, but each person should turn in their own homework assignments. You must work alone on the exam.

Help

If you have questions or are confused, please feel free to come see me. I do not expect you to learn all the material the first time you see it; if you could do that, you wouldn't need me! You are welcome to visit me in my office anytime my door is open (which is most of the time). If you do not come during office hours, and I have work I need to do, I may ask you to come back later if you can. Don't take this personally. I enjoy teaching, and I like helping students, so don't think you are imposing on me by asking for help. This is my job.

Students with Disabilities

It is the policy and practice of Butler University to make reasonable accommodations for students with properly documented disabilities. Written notification from Student Disability Services is required. If you are eligible to receive an accommodation and would like to request it for this course, please discuss it with me and allow one week advance notice. Otherwise, it is not guaranteed that the accommodation can be received on a timely basis. Students who have questions about Student Disability Services or who have, or think they may have, a disability (psychiatric, attentional, learning, vision, hearing, physical, medical, etc.) are invited to contact Student Disability Services for a confidential discussion in Jordan Hall 136 or by phone at extension 9308.

I will be happy to comply with your needs as best as I am able.