The course will teach modern compiler techniques applied to general-purpose programming language. The goal of the course is to give students a working knowledge of the foundations, tools, and engineering approaches used in developing formal language translators. The emphasis is on the construction of compilers to position students to build translators for little languages in their careers.
Compilers and interpreters, including description of languages, finite state scanners, parsing, symbol tables, syntax directed semantics, code generation, and static analysis.
This course is based on a course that was originally designed by Laurie J. Hendren and Michael I. Schwartzbach which has been taught at a number of universities over the past decade. The course received a significant update by Robby and Matthew B. Dwyer in 2005 with respect to the projects and the tools that are used for compiler implementation; this update achieves a modernization of compiler construction technologies. This is primarily an introductory compiling course that has been designed to recognize that most people will not build a large application like a compiler from scratch and that people learn by doing. Towards this end, the project for the course involves the enhancement of an existing compiler code base. Students will be given a working compiler and will be required to extend it in significant ways. This will give them insights into how a compiler is designed and written that they can leverage for their enhancements. While serving this purpose, the course does present significantly more content on static analysis than is typically found in an introductory compiling course; thus it can serve as an effective introduction on advanced topics for graduate students.
Compilers: Principles, Techniques, and Tools (2nd Edition), a.k.a. “Purple Dragon Book” by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman (required)
The Definitive ANLTR4 Reference, by Terence Parr (recommended)
Principles of Program Analysis, by Flemming Nielson, Hanne Riis Nielson, and Chris Hankin (recommended)
Design Patterns: Elements of Reusable Object-Oriented Sofware, by Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides (recommended)
Solo Project (30%)
Final Project (25%)
Final Project Presentation (5%)
The course Schedule page gives the due dates for all of the homework. This is to facilitate your planning and time-management. Given this, we expect assignments to be turned in on the due date unless prior arrangements have been made; late assignments receive a reduction of 1% of the total possible points for each hour after the due date/time.
Course grades are absolute, that is, there is no curve, and will be calculated based on your overall percentage on assignments as follows:
A: 90% – 100%
B: 80% – 89%
C: 70% – 79%
D: 60% – 69%
F: below 60%
There is one additional constraint on your final grade. To receive a letter grade of A, you must achieve at least a B on the exam. Similarly, to receive a B you must achieve a C, C you must achieve a D on the exam.
This course involves a lot of programming, and it makes significant use of software tools. Many of these can be accessed by you (for free) and installed on your own machine. If you prefer, we have everything you need on our CIS department machines so you can get an account on our machines. See the Notes page for information on how to get an account and use our machines.
In general, there will be NO make-up quizzes or exams! Special consideration will be given in only exceptional circumstances. Exceptional circumstances are generally limited to:
Emergencies: death in student’s immediate family, or near-death experience of the student.
Non-emergencies: certified excused absences for official university activities.
If you believe you qualify for exceptional treatment, you must notify the instructor prior to the date of the quiz or exam to be missed.
Kansas State University has an Honor & Integrity System based on personal integrity which is presumed to be sufficient assurance in academic matters one’s work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, acknowledge the jurisdiction of the Honor & Integrity System. The policies and procedures of the Honor System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning.
A component vital to the Honor & Integrity System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: “On my honor, as a student, I have neither given nor received unauthorized aid on this academic work.”
The default in this class is that ALL work will be accomplished individually, UNLESS my permission is given in advance of an assignment/quiz/exam/take-home exam/final. If you are in doubt, please ask.
A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.
For more information, visit the Honor & Integrity System home web page at: http://www.k-state.edu/honor/
Students with disabilities who need classroom accommodations, access to technology, or information about emergency building/campus evacuation processes should contact the Student Access Center and/or their instructor. Services are available to students with a wide range of disabilities including, but not limited to, physical disabilities, medical conditions, learning disabilities, attention deficit disorder, depression, and anxiety.
If you are a student enrolled in campus/online courses through the Manhattan or Olathe campuses, contact the Student Access Center at email@example.com, 785-532-6441; for K-State Polytechnic campus, contact Julie Rowe, Diversity, Inclusion and Access Coordinator, at firstname.lastname@example.org or call 785-826-2971.
All student activities in the University, including this course, are governed by the Student Judicial Conduct Code as outlined in the Student Governing Association By Laws, Article V, Section 3, number 2. Students who engage in behavior that disrupts the learning environment may be asked to leave the class.
To protect the health and safety of the K-State community, students, faculty, staff and visitors must wear face coverings over their mouths and noses while on K-State campuses in all hallways, public spaces, classrooms and other common areas of campus buildings, and when in offices or other work spaces or outdoor settings when 6-feet social distancing cannot be maintained. In addition, all students, faculty, and staff are required to take the COVID-19 and Face Mask Safety training. Employees who need reasonable accommodations and assistance related to required face coverings may contact the ADA coordinator at email@example.com, and students needing accommodations may contact the Student Access Center at firstname.lastname@example.org.
In classrooms, faculty have the right to deny a student entry into the room if the student is not wearing a face covering. Students not wearing a face covering will be reminded to do so and offered a clean face covering, if one is available. If the student does not comply, the faculty member will ask the student to leave the space, and if available, join the class remotely. As a last resort, campus police will be called. The faculty members will complete the Code of Conduct form and the Office of Student Life will look further into the issue and take the non-compliance with the request to leave into consideration of further ccountability measures.
At no point should the professor or other students put themselves into an unsafe situation while attempting to enforce the face-covering policy. Manhattan campus police: 785-532-6412.
Kansas State University is a community of students, faculty, and staff who work together to discover new knowledge, create new ideas, and share the results of their scholarly inquiry with the wider public. Although new ideas or research results may be controversial or challenge established views, the health and growth of any society requires frank intellectual exchange. Academic freedom protects this type of free exchange and is thus essential to any university’s mission.
Moreover, academic freedom supports collaborative work in the pursuit of truth and the dissemination of knowledge in an environment of inquiry, respectful debate, and professionalism. Academic freedom is not limited to the classroom or to scientific and scholarly research, but extends to the life of the university as well as to larger social and political questions. It is the right and responsibility of the university community to engage with such issues.
Kansas State University is committed to providing a safe teaching and learning environment for student and faculty members. In order to enhance your safety in the unlikely case of a campus emergency make sure that you know where and how to quickly exit your classroom and how to follow any emergency directives. To view additional campus emergency information go to the University’s main page, http://www.k-state.edu, and click on the Emergency Information button, located at the bottom of the page.
K-State has many resources to help contribute to student success. These resources include accommodations for academics, paying for college, student life, health and safety, and others found at http://www.k-state.edu/onestop
Student academic creations are subject to Kansas State University and Kansas Board of Regents Intellectual Property Policies. For courses in which students will be creating intellectual property, the K-State policy can be found at University Handbook, Appendix R: Intellectual Property Policy and Institutional Procedures (part I.E.). These policies address ownership and use of student academic creations.
Your mental health and good relationships are vital to your overall well-being. Symptoms of mental health issues may include excessive sadness or worry, thoughts of death or self-harm, inability to concentrate, lack of motivation, or substance abuse. Although problems can occur anytime for anyone, you should pay extra attention to your mental health if you are feeling academic or financial stress, discrimination, or have experienced a traumatic event, such as loss of a friend or family member, sexual assault or other physical or emotional abuse.
If you are struggling with these issues, do not wait to seek assistance.
Kansas State University Counseling Services (https://k-state.edu/counseling/) offers free and confidential services to assist you to meet these challenges.
Lafene Health Center (https://www.k-state.edu/lafene) has specialized nurse practitioners to assist with mental health.
The Office of Student Life (https://k-state.edu/studentlife) can direct you to additional resources.
K-State Family Center offers individual, couple, and family counseling services on a sliding fee scale (https://www.hhs.k-state.edu/familycenter/).
Center for Advocacy, Response, and Education (CARE) provides free and confidential assistance for those in our K-State community who have been victimized by violence (https://www.k-state.edu/care/).
Incompletenes: An incomplete (I) final grade will be given only by prior arrangement in exceptional circumstances conforming to departmental policy in which the bulk of course work has been completed in passing fashion.
Drop Policy: It is your responsibility to drop the course if you are enrolled but decide not to complete the course — there are no “automatic” drops due to nonattendance. The University allows a retake of a course with removal of the prior grade, at most once per course, for a maximum of five courses.
Harrassment: One purpose of your education is to help you develop skills, approaches, and abilities that are necessary for effective teamwork, and for your success in your profession and as a citizen. It is important that you understand your rights and responsibilities regarding the University’s Sexual and Racial Harassment policies (full text of the policies can be found on KSU’s web site at http://www.ksu.edu/uauc/fhbook/fhxj.html). If you experience any situations, in or out of class, that seem inappropriate or that make you uncomfortable, a list of resources and courses of action to assist you can be found on the College of Engineering web site at http://www.engg.ksu.edu/harassment-statement.
Copyright Issues: Class and lecture notes for this course carry a copyright. Students are prohibited from selling (or being paid for taking) notes during this course to or by any person or commercial firm without the express written permission of the professor teaching this course.