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 | 2:00 PM - 3:30 PM |
Thursday | 10:00 AM - 11:30 AM |
Friday | 1:00 PM - 2:30 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 even 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).
Computer Lab
You can use your student ID card to gain access to the computer labs during the nights and on weekends. Just wave your ID over the card reader next to the lab doors. When the green light turns on, just push the door to get in (the knob will not turn). If you have problems getting in, visit Bridget in the department office or send her an e-mail (local-staff --at-- cs.swarthmore.edu
) to have your number added to the system. If the building is locked, you can use your ID to enter the door between Martin and Cornell library. For this class, you will have access to Science Center 238, 240, and 256 as well as Clothier 016.
Academic Accommodations
If you believe you need accommodations for a disability or a chronic medical condition, please contact Student Disability Services via email at studentdisabilityservices@swarthmore.edu
to arrange an appointment to discuss your needs. As appropriate, the office will issue students with documented disabilities or medical conditions a formal Accommodations Letter. Since accommodations require early planning and are not retroactive, please contact Student Disability Services as soon as possible. For details about the accommodations process, visit the Student Disability Service Website. 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.