CSCI 1260
Compilers and Program Analysis
Fall 2025
Introduction
Welcome to CSCI 1260 at Brown University!
IMPORTANT NOTE FOR FALL 2025 REGISTRATION: We expect there to be room in compilers for everyone who wants a seat. If the course is full, please request an override on CAB. I will not respond to these until shopping period at the earliest. During shopping period, please check enrollment regularly and register directly if there are open seats. Please do not email Rob or the TA staff about getting into this course.
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 3:00 - 4:20 PM in CIT 368. All course lectures will be recorded and livestreamed on Panopto.
Assignments
Homework | Out | In |
---|---|---|
0. OCaml Warmup | Sep. 3 | Sep. 10 |
1. S-expressions | Sep. 10 | Sep. 17 |
2. Characters | Sep. 17 | Sep. 24 |
3. DMAOC (div, mul, and, or, case) | Sep. 24 | Oct. 8 |
4. Error handling and the heap | Oct. 8 | Oct. 17 |
5. Fun with files | Oct. 22 | Oct. 29 |
6. Apply, variadic functions | Oct. 29 | Nov. 12 |
7. MiniML | Nov. 12 | Nov. 19 |
8. Optimizations | Nov. 19 | Dec. 12 (benchmarks Dec 3) |
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. 3 | Sep. 7 |
Drill 2 | Sep. 15 | Sep. 18 |
Exam | Date |
---|---|
Midterm | Oct. 20 |
Final | Dec. 20 |
Lectures
Lectures take place every Monday and Wednesday from 3:00 - 4:20 PM in CIT 368. 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.

Lukas Strelecky 🍔
HTA | lstrelec
Hi! I'm a senior from New Jersey studying CS. In my free time, I enjoy weightlifting, distance running, and cooking. Pronouns: he/him/his.

Matthias Yee 🐟
UTA | mgyee
Hi, I'm a senior from Palos Verdes California studying Computer Science. Apart from coding I like playing golf, table tennis, and Clash Royale. Pronouns: he/him/his.

Berny Li 🥳
UTA | bli116
Hi everyone! I'm a senior from the sunny Bay Area and the not-so-sunny Edmonton, Canada studying CS and Applied Math. I love road biking, baking, and am an avid Webtoons fan (ask me for recs)! Pronouns: he/him/his.

Andrew Chen 😄
UTA | azchen
Hi! I'm a senior from Massachusetts studying APMA-CS. I like to play tennis, run, and read cool things. Pronouns: he/him/his.