CSCI 1260

Compilers and Program Analysis

Fall 2026

Introduction

Welcome to CSCI 1260 at Brown University!

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. 9 Sep. 16
Exam Date
Midterm Oct. 19
Final Dec. 19

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.

Date Topic Recording
September 09 What is a compiler? Recording
September 14 OCaml intro; S-Expressions Recording
September 16 Unary operations Recording
September 21 Booleans Recording
September 23 More booleans, conditionals Recording
September 28 Binary operations Recording
September 30 Abstract syntax trees Recording
October 05 Naming expression with let Recording
October 07 Pairs and the heap Recording
October 12 NO CLASS Recording
October 14 Handling errrors Recording
October 19 MIDTERM EXAM (In Person) Recording
October 21 Interacting with the environment Recording
October 26 Functions Recording
October 28 Tail calls Recording
November 02 First class functions Recording
November 04 Lambda lifting Recording
November 09 Closures Recording
November 11 Parsing Recording
November 16 Optimization intro -- constant folding Recording
November 18 Inlining, CSE Recording
November 23 IRs and register allocation Recording
November 25 NO CLASS Recording
December 01 Guest lecture Recording
December 02 Trust and Verification Recording
December 19 FINAL EXAM (In Person) Recording

Calendar

Resources

Quick Links

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.

Ilija Ivanov

HTA | iivanov

Hi! I'm a senior from Podgorica, Montenegro studying CS. Looking forward to a great semester with you all! Pronouns: he/him/his.

John Rathgeber

UTA | jrathgeb

Hi! I'm a senior from Madison, Wisconsin studying Math-CS and Music. Outside of CS, I play piano, go to the gym, and play sports. Talk to me about music! My favorite genres recently have been prog rock and yacht rock, and my favorite bands are Electric Light Orchestra, Steely Dan, Dream Theater, Pink Floyd, Genesis, and The Beatles. Excited to meet you all! Pronouns: he/him/his.