Resources
The following are some of the resources available to students of this course. If you feel at any point that you need additional assistance, please let us know!
Instructor
The instructor for this course is Zachary Palmer. My office hours are as follows:
Monday | 11:00 AM - 12:30 PM |
Wednesday | 10:00 AM - 11:30 AM |
Thursday | 1:30 PM - 3:00 PM |
You can also contact me via e-mail (zachary --dot-- palmer --at-- swarthmore --dot-- edu
) to make an appointment or just ask a question. You’re also welcome to drop by anytime my door is open; I’ll help if I’m around and available. My office is Science Center 270.
Course Forum
We have a course forum where you can ask questions and discuss the course material. When posting public questions, please make sure to follow the Academic Integrity Policy: don’t give answers to homework in your public posts, for instance.
Reference Materials
There is no textbook for this course. You may, however, find the following reference materials helpful:
- OCaml
- A local OCaml installation guide to set up OCaml for your user account on the CS network computers.
- A local development environment setup guide for your CS network development environment.
- A remote setup guide which will allow you to use your own computer to work remotely (although your work, such as compilation, still runs on the CS network for consistency).
- An OCaml transition guide to help you become accustomed to the language.
- The Real World OCaml book, a free online textbook which aims to teach OCaml to existing programmers. (You can purchase a hard copy version of the book as well.)
- The OCaml Documentation from
ocaml.org
, which includes installation instructions (if you need them) and some handy reference sheets. - The Batteries Included API Documentation. Batteries Included is a third-party OCaml library which we will use to replace the built-in OCaml standard library, which has a rather poor reputation.
- Intel x86 Assembly
- A Wikibook on x86 assembly.
- An x86 Assembly instruction reference.
- A summary of x86 calling conventions via Wikipedia.
- Some tips on how to use GDB when debugging your compilers assignments.
- Compilers
- A tutorial on compiler construction by Abdulaziz Ghuloum, which inspired the structure of this course.
- Modern Compiler Implementation in ML, a textbook that we will not follow but which describes compiler construction in a functional language. (Note: OCaml is not the same language as ML!)
- Matt Might’s blog, which contains a wealth of information on compilation (and on other topics that students of Computer Science may find interesting).
Academic Accommodations
If you believe you need accommodations for a disability or a chronic medical condition, please visit the Student Disability Services website for details about the accommodations process. Since accommodations require early planning and are not retroactive, contact Student Disability Services as soon as possible. You are also welcome to contact your instructor privately to discuss your academic needs. However, all disability-related accommodations must be arranged, in advance, through Student Disability Services.