CMSC 430: Course 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.
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.
Course has two major objectives:
A grade of C or better in CMSC 330, or permission of instructor.
50% NIP compiler, 5% Other homework and classwork, 18% midterm, 27% final
Projects must be submitted for grading by the time they are due. Late projects receive a penalty of 20% for being submitted late, and 10% for each additional 24-hours that they are late. Exceptions may be made for valid written 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, 45% for correct execution on the instructor's test data, and 5% for documentation, program structure, and efficiency.
Projects must be submitted before the time they are due. The submit server will be used to collect your programs electronically. Only the last version will be kept by the submit program up until the deadline, so submit your programs early and often.
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.