Catalog Description
Students implement a compiler for a simplified programming language.
The underlying theory of compiler construction is covered, including
regular expressions, finite state automata, grammars (regular and
context-free), and top-down parsing.
The compiler project includes lexical analysis, syntax analysis,
semantic analysis (type checking, symbol table management), runtime
environments (storage organization, accessing nonlocal names, dynamic
storage allocation), and code generation. Optimization may be covered
as time and interest permit.
This course includes a laboratory component.
Prerequisites
CSCI 330 (Programming Languages)
CSCI 340 (Computational Models)
CSCI 362 (Data Structures)
Grade of C- or better in all
Outcomes
At the end of the course, a successful student will be able to
Textbook
Compiler Construction: Principles and Practice
Kenneth Louden
Tentative Content
Other topics may be covered as necessary or if there's time and sufficient interest. Readings will be frequently assigned. Most exam material will come from the lectures and assignments.
Grade Breakdown
Final grades will be assigned using the standard 100-point scale.
Percentage | Grade |
---|---|
93+ | A |
90 – 92 | A- |
87 – 89 | B+ |
83 – 86 | B |
80 – 82 | B- |
77 – 79 | C+ |
73 – 76 | C |
70 – 72 | C- |
67 – 69 | D+ |
63 – 66 | D |
60 – 62 | D- |
59- | F |
Attendance
You are expected to attend class and lab, read the textbook, complete
assigned problems, participate in class discussions, and work
productively during problem sessions and labs. Lab attendance is
REQUIRED. Not attending a lab or leaving before completing all
outstanding assignments will result in a grade reduction of
2% per class period missed.
Classroom Civility
Arrive at class promptly, prepared and ready to participate. Set
your phone to silent mode and, except in cases of emergency, remain
in the classroom for the duration of the meeting. If it is necessary
to leave or enter a room once class has begun, do so quietly and
with as little disruption as possible. Avoid talking which may be
disruptive to your fellow students and professor, avoid phone use,
and avoid using a laptop for a purpose other than note-taking.
You will asked to leave the classroom if you violate one of the principles above, or in some other way disrupt the class, and if this occurs more than TWICE, you may be expelled from the course.
Late Policy
Late submissions will NOT be accepted. If your assignment is
incomplete, submit it for possible partial credit.
Makeup exams will not be given — if you do NOT take an exam at the scheduled time AND location, you will receive a zero. Exceptions may be made at my discretion for truly extraordinary circumstances.
Graded Work
Several assignments will be given. Some will require a computer, others may not. Some will need to be completed by the end of the period, and some will be for extra credit only. For computer problems, you may be asked to demo and explain your solution to receive credit. Missing a lab will result in a score of zero, and no makeups will be given.
Format code according to these REQUIREMENTS. It is imperative that your code is neatly formatted (proper indentation and use of whitespace) and well-documented (comments, identifiers). Correct, but non-compliant, programs will not be accepted. Note well the format of programs distributed in class. A good code editor will help ensure your code is properly formatted.
Programs must compile and run for any credit. Developing your programs incrementally can provide assurance that you will receive some credit for your work.
We will use the Linux Lab (Caputo 130), which has 27 PCs which run a Linux operating system. See Linux Lab for more details.
Unannounced quizzes may be given during any class period.
Two examinations, including a final, will be given. Each MUST be taken in the lab on one of the lab machines (unless you have an accomodation from Learning Services). The exams will cover material from the lectures and assignments. The final will be cumulative, but will emphasize material not covered on prior exams.
Exams are closed book, notes, calculator, and neighbor. Only a pen or pencil is allowed.
For all ONLINE exams, at a minimum the following will be expected.
Academic Honesty
I encourage you to ask me questions — this is always the safest approach. You can do so in person or via email. Tutors are also available. We also have a CS Discord server.
I expect you to complete assignments YOURSELF. You MAY discuss syntax, compiler errors, example code, and concepts with peers, but NOT the details of a homework problem solution. A good litmus test is "Would I be comfortable having this discussion publicly in the CS Discord?". If not, you are likely engaging in inappropriate collaboration. You may NOT copy a partial or full solution from another source. You may NOT use the internet for assignment hints, strategies, OR solutions. If you do so, you are committing academic dishonesty, which may result in failure of the course. Obtaining a solution on the Internet or elsewhere and submitting it as your own work is plagiarism and will result in SEVERE disciplinary measures. Be sure you can explain every step of every solution you submit.
Academic dishonesty WILL be reported to the department chair and provost.
Consult MU's Academic Honesty Policy for more details.
Title IX Reporting
Millersville University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to comply with the requirements of Title IX of the Education Amendments of 1972 and the University's commitment to offering supportive measures in accordance with the new regulations issued under Title IX, the University requires faculty members to report to the University's Title IX Coordinator incidents of sexual violence shared by students. The only exceptions to the faculty member's reporting obligation are when incidents of sexual violence are communicated by a student during a classroom discussion, in a writing assignment for a class, or as part of a University-approved research project. Faculty members are obligated to report to the person designated in the University Protection of Minors policy sexual violence or any other abuse of a student who was, or is, a child (a person under 18 years of age) when the abuse allegedly occurred.
Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence are available HERE.
Counseling Resources
Students sometimes face mental health or drug/alcohol challenges in their academic careers that interfere with their academic performance and goals. Millersville University is a caring community and resources are available to assist students who are dealing with problems. The Counseling Center (871-7821) is an important resource for both mental health and substance abuse issues. Additional resources include Health Services (871-5250), Center for Health Education & Promotion (871-4141), Campus Ministries, and Learning Services (871-5554).