CSCI 1260
Compilers and Program Analysis
Fall 2023
Introduction
Welcome to CSCI 1260 at Brown University!
IMPORTANT NOTE FOR FALL 2024 REGISTRATION: to request an override for CS1260, please use the central override form provided by the CS department. Do not email Rob or the CS1260 staff. Direct questions or concerns about the course override process to enroll-questions@lists.cs.brown.edu.
Have you ever wondered why C programs seem to run faster than Python programs? Have you ever been confused by an error message and wondered why Java couldn't understand your program? In CSCI 1260, we'll learn how compilers read in code in one language and produce code in another; in particular, we'll learn how to translate high-level languages to code that your computer's processor can understand. We will get hands-on practice developing compilers for a series of increasingly complex languages. Along the way, we'll learn some general best practices for developing and testing complex software systems.
Lectures take place every Monday and Wednesday from 9:30 - 10:50 AM in CIT 241. All course lectures will be recorded and livestreamed on Panopto.
Assignments
Homework | Out | In |
---|---|---|
0. OCaml Warmup | Sep. 6 | Sep. 13 |
1. S-expressions | Sep. 13 | Sep. 20 |
2. Characters | Sep. 20 | Sep. 27 |
3. DMAOC (div, mul, and, or, case) | Sep. 27 | Oct. 11 |
4. Error handling and the heap | Oct. 11 | Oct. 18 |
5. Fun with files | Oct. 18 | Nov. |
6. Apply, variadic functions | Nov. 1 | Nov. 15 |
7. MiniML | Nov. 15 | Nov. 29 |
8. Optimizations | Nov. 28 | Dec. 17 (benchmarks Dec 9) |
Lab | Handout | Github Classroom |
---|---|---|
Compiler Infrastructure | Handout | Github Classroom |
Debugging Assembly | Handout | Github Classroom |
Parser Generators | Handout | Github Classroom |
Drill | Out | In |
---|---|---|
Drill 1 (Solutions) | Sep. 6 | Sep. 10 |
Drill 2 (Solutions) | Sep. 13 | Sep. 17 |
Drill 3 (Solutions) | Sep. 20 | Sep. 24 |
Drill 4 (Solutions) | Sep. 28 | Oct. 1 |
Drill 5 (Solutions) | Oct. 11 | Oct. 15 |
Drill 6 (Solutions) | Nov. 1 | Nov. 5 |
Drill 7 (Solutions) | Nov. 8 | Nov. 12 |
Drill 9 (Solutions) | Dec. 4 | Dec 11 |
Exam | Date |
---|---|
Midterm | Oct. 25 |
Final | Dec. 13 |
Lectures
Lectures take place every Monday and Wednesday from 9:30 - 10:50 AM in CIT 241. The lecture notes will be updated after every class. Streams and recordings will show up in our Panopto folder and are linked here.
Lecture topics for future dates are very tentative.
Calendar
Zoom links are included in the Google Calendar event, as well as in the Hours Queue.
Resources
Quick Links
- Syllabus
- Software Guide
- Environment Setup Guide
- x86-64 reference
- Compiler from lectures
- EdStem
- Panopto
- Anonymous Feedback Form
- Extension Request Form
Reference Labs
Contact
Staff
Robert Lewis 🦙
Professor | rlewis13
Call me Rob! I'm half computer scientist, half mathematician, and fully excited to learn about compilers with you all this semester. Pronouns: he/him/his
Jiahua Chen 🌵
HTA | jchen345
Hi! I'm a senior from HK and Shanghai studying Math & CS! Talk to me about art, photography, or board games! Pronouns: he/him/his
Yutong Li 🍦
UTA | yli195
Just call me Yuu! I'm a master's student studying CS, and I used to be a ling major. I love strolling around while listening to J-pop/Vocaloid/Post-rock.
Parker Simon 🦖
UTA | psimon2
Hi everyone! I'm a senior from Massachusetts studying Geology and Computer Science. I love climbing, hiking and skiing, and a good bowl of mac and cheese.
Linus Sun 🤠
UTA | lsun23
Hi! I'm from Vancouver and I enjoy climbing, mixology, and keyboards! Pronouns: he/him/his
Nora Tang 🐨
UTA | jtang82
Hello! My name is Nora. Tizzy K's is my favorite spot in Providence. Pronouns: she/her/hers
Conrad Zimmerman 🏃♀️
UTA | czimmer
Hi! I study math, play Pokemon Go, and sometimes run. In no particular order, I love coffee, programming languages, cute (little) dogs, and first order logic. Pronouns: she/her/hers
Etha Hua 🐘
UTA | thua5
Hi! I am a first-year master's student. Before coming to Brown, I studied CS and philosophy at Tufts. I enjoy street photography, 20th-century films, and the mechanical interpretability of language models. Pronouns: he/him/his
Xinrui Zhou 🐰
UTA | xzhou81
Hi! I'm a master's student studying CS. I'm from Chengdu, China, the home to adorable pandas and some of the best hot pot you'll ever taste. I love reading, cooking, listening to R&B and kpop. Pronouns: she/her/hers
Vipul Sharma 🛶
UTA | vsharm44
Hello! I'm a first-year master's student from India. I love trying out new recipes, modern classical music and phonk. Pronouns: he/him/his