Please note that this syllabus includes this page and those pages hyperlinked to it
Instructor
Joe Pfeiffer, SH 136, 646-1605, pfeiffer@cs.nmsu.edu
Communications
In general, the best way to get hold of me is to send me email at the above address. Second best is to see me in my office; any time my door is open, you should feel free to interrupt me (my "official" office hours are below, but don't feel like you can only talk to me during them). You can try calling me in my office; if you can't reach me there really isn't much point in leaving a message on my phone. I'm almost certain to see an email before I hear a voicemail.
Most information I need to send you will be by email or posted to the class web page (when there's a change to the web page you need to know about, I'll send an email to tell you).
This semester, a system called Mobile Campus is being used to notify students of discounts at local vendors and about campus conditions using text messaging. As an experiment, I'm going to try setting up groups for my classes, and see about sending announcements through that system. Anything I send through Mobile Campus will also be sent by email.
Office Hours
MWF 11:30 - 12:30 PM (after CS 573 class) and by appointment Text
Louden, K. C., Compiler Construction: Principles and Practice, 1997
prerequisites
at least C in C S 271, C S 272, C S 273, and C S 278.
Objectives
To study and learn about the theory and practice of language processors (i.e. compilers).
Topics
A common thread in all interesting programs is they must process input and generate output. The input may be configuration files, data files, user interface events, or a mixture of all three, but a program that doesn't deal with input can't do anything interesting. Similarly, a program has to be able to manipulate that input and provide output based on it.
In this class, we'll be studying input languages, and the programming techniques used to process them. We'll also be examining symbol table techniques, and output generation. A detailed list of topics is:
- Regular Languages
- Regular Expressions
- Finite State Machines (deterministic and non-deterministic)
- Regular Grammars
- Tokenizers (handmade and lex)
- Context-Free Languages
- Push-down Automata
- Context-Free Grammars
- Parsers
- Top-down recursive descent
- Bottom-up (yacc)
- Abstract Syntax Trees
- Semantic Analysis
- Symbol Table
- Attributes and attribute grammars
- Code Generation
- Memory Organization During Program Execution
- Expression Evaluation
- Control Structures
- Functions
- Code Optimization
My intent is to cover the material through "Semantic Analysis" in the first half of the semester, and the remainder of the topics in the second half.
In general, we'll be following the presentation in the book; where I feel the text is lacking I'll be putting notes on the web.
Grading
Your course grade will be based on two equally-weighted components:
Grade Assignment
You must turn in at least half of the homework and take both exams, or you will get an F. Beyond that, grades will be assigned on the following scale:
A: 81 - 100% B: 61 - 80% C: 41 - 60% D: 0 - 40% Note: this doesn't mean it's easy to get an A, it means my assignments, my exams and my grading are all rigorous
Due Dates, Late Homework and Makeup Exams
Unless stated otherwise, homework is due before class on the due date.
Late homework will be accepted, subject to the following penalties:
When the deadline for the assignment passes, there will be a 20% deduction: the maximum score will become 80% (so the highest possible grade will be a B)
48 hours later, there will be another 20% deduction: the maximum score will become 60% (so the highest possible grade will be a C)
After another 48 hours, there will be another 20% deduction: the maximum score will become 40% (so the highest possible grade will be a D)
After another 48 hours, the assignment will not be accepted.
I will accept late homework without penalty under the following conditions:
If you will be unable to complete an assignment on time, send me e-mail in advance explaining the circumstances, and the desired extension. If, in my judgement, the circumstances are unavoidable and the extension is reasonable, I will grant the extension (note that students on University business have an automatic right to a reasonable extension). I reserve the right to require documentation of the circumstances.
If, as a result of an emergency (such as a medical emergency), you are unable to turn in an assignment on time, let me know the circumstances as soon as possible. If, in my judgement, the circumstances were an unavoidable emergency, I will take the homework late. I reserve the right to require documentation of the circumstances.
Note: conflicts with homework in other classes, simply failing to complete an assignment on time, and oversleeping, are not reasons I will accept for late homework.
Please note that this only applies to homework. If this is a course which does paper summaries, they must be submitted on time.
Attendance and Automatic Withdrawals
I don't take attendance, and your presence or absence in my class won't have any (direct) bearing on your grade. However, you are responsible for any material covered in class, including course material, clarifications and changes to homework assignments, and information regarding exams, whether you are in class or not.
I do not drop students for persistent absence nor persistent failure to turn in assignments. If you don't turn in the assignments or take the exams, and you don't withdraw from the course, you will fail.
Grading Standards
It's important to remember that, while I will supervise the TA and I will discuss the grading with him or her, I will not in general review in detail the grading of the problems (if I did, there wouldn't be any point in having TAs; I'd spend as much time looking over their shoulders as I would have grading). So, if in your opinion these standards are not being adhered to, you need to inform me of the situation as soon as possible.
The TA will grade the assignments and I will grade the exams.
Each question will be given a clearly stated maximum point value, on the original assignment or exam. Subparts of questions may or may not have such a maximum. The points don't have to add up to 100; your score will be converted to a percentage.
The assignments are equally weighted, not the points. If one assignment is graded on a total of ten points, and another is graded on a total of twenty points, then the points on the latter assignment are only worth half as much as the ones on the former.
Some questions lend themselves to having particular point values removed (ie -1, -5, etc) for particular mistakes, while for others it is more appropriate to simply assign an overall score based on the quality of an answer. In either case, there will be a note on your assignment stating why you didn't get full credit on every problem.
Incompletes
Under university policy, Incompletes may be given only if a student has passed the first half of the course, and is precluded from successful completion of the second half of the course by a documented illness or family crisis that the instructor believes genuinely precluded successful completion.
Cheating
Definitions
I am informed that in some cultures, copying work is a sign of respect, and it is assumed that everyone will work together for the common good in accomplishing homework. I do not subscribe to this notion, and this is not the basis for this class. Regardless of your home culture or background, the standards stated in this syllabus will apply to this class.
This class adopts the definition of "plagiarism" found in the NMSU Student Handbook, with clarifications to follow:
Please note the following clarifications of this definition, and policies relating to both plagiarism and attributed copying:
Unless specifically stated otherwise, all assignments in this class are individual assignments. You must not do these assignments in teams, nor have someone else do the assignment for you and then turn in the work, nor turn in a solution you find on the internet or elsewhere. This includes presentations, papers, programs, and all other assignments.
Copying answers to exam questions is likewise not permitted.
In cases of copying, both parties (i.e. both the person who actually did the work and the person who copied it) will be considered equally guilty of cheating. It is your responsibility to ensure that your files are not readable by other students (see the
chmodandumaskcommands under Linux and Solaris), and to take reasonable care that your exam answers cannot be seen by others.If you are unclear as to what constitutes plagiarism, there are several excellent resources on-line, including the NMSU library's web site, The UMKC School of Law, wikipedia articles on plagiarism and academic dishonesty, and others. Please familiarize yourself with these sources (the pages linked above focus on a failure to properly cite sources. Note that if you use a substantial amount of someone else's work in your assignment, it's still cheating even if you do provide citations). Also, if you are in any doubt as to what constitutes cheating, feel free to ask me.
You are responsible for being aware of the definition of plagiarism on this page, and for taking care that you don't do it. Claiming that plagiarism was "unintentional" (i.e. that you didn't realize some particular copying was plagiarism; students have made this claim in regard to material copied from the web, for instance) does not excuse you from sanctions.
Penalties
In the event of cheating as described above, penalties may be assessed up to and including failing the class, or requesting the student be expelled from the university.
If you have or believe you have a disability and would benefit from any accommodations, you may wish to self-identify by contacting the Services for Students with Disabilities (SSD) Office located in Room 244 of Corbett Center (phone: 646-6840). If you have already registered, please make sure that your instructor receives a copy of the accommodation memorandum from SSD within the first two weeks of classes. It is your responsibility to inform either your instructor or SSD representative in a timely manner if services/accommodations provided are not meeting your needs.
If you have a condition which may affect your ability to exit safely from the premises in an emergency or which may cause an emergency during class, you are encouraged to discuss any concerns with the instructor and/or Michael Armendariz, SSD Coordinator. Also, feel free to call Mr. Armendariz with any questions you may have on student issues related to the Americans with Disabilities Act (ADA) and/or Section 504 of the Rehabilitation Act of 1973. All medical information will be treated confidentially.
Feel free to call Jerry Nevarez, Director of Institutional Equity, at 505-646-3635 with any questions you may have about NMSU's Non-Discrimination Policy and complaints of discrimination, including sexual harassment.
Last modified: Wed Sep 13 08:16:12 MDT 2006