UMD logo

CMSC 430: Course Description

Catalog Description

Introduction to compiler construction (emphasis on compiler front ends). Course contents include the following: Formal translation of programming languages, program syntax and semantics. Finite state recognizers and regular grammars. Context-free parsing techniques such as LL(k) and LR(k). Code generation, improvement, syntax-directed translation schema.

Course Objectives

This course focuses on compilation techniques needed to translate programs written in a standard programming language into executable code on microprocessor architectures. Program analysis and optimization techniques are presented in class lectures. Programming projects provide experience with implementation issues and allow students to develop programming and software engineering skills.

Prerequisites

A grade of C or better in CMSC 330, or permission of instructor.

Course Text

Grading

10% each project (5), 15% each midterm (2), 20% final

Grading Policy

Projects must be submitted for grading by the time they are due. Late projects receive a penalty of 20% for the first day, and 10% each additional day. Exceptions may be made for valid medical excuses from a doctor. Project grades will roughly consist of 50% for correct execution on test data made available to students at time of the assignment, and 50% for correct execution on the instructor's test data. There will be no partial credit for partial correct execution.

Academic Integrity

All work that you submit in this course must be your own. See the Undergraduate Catalog for definitions and sanctions. Academic dishonesty is a serious offense which may result in suspension or expulsion from the University. In addition to any other action taken, the grade "XF" denoting "failure due to academic dishonesty" will normally be recorded on the transcript of students found responsible for acts of academic dishonesty. Sharing of code on programming assignments or solutions of homework assignments are forms of academic dishonesty.