Lesson 1:
Welcome & Overview
Gist
- Welcome to CS 6120! I’m really excited for the semester.
- What is a compiler, and why should we care?
- A simplistic answer is all about making programs go fast. And optimization is important, but compare Moore’s law to Proebsting’s law.
- This class is about language implementation more broadly. What else goes into a good language implementation other than optimizations? (Not parsing.) Post your ideas in the discussion topic.
- By the way, lessons in 6120 have an associated discussion thread. We’ll use these for just generally talking about stuff and also for reporting our results.
- New languages + new hardware = lots of interesting problems.
- Either one alone would be plenty to keep compiler engineers busy for a long time.
- Course overview and the syllabus.
- Communication will be on Zulip. Sign up and stay on top of it!
- Class sessions:
- “Lesson” days.
- I’ll do some traditional “lecturing” in class, but that stuff is (mostly) mirrored by the videos attached to each lesson.
- Most (but not all) lessons have associated tasks for you to complete.
- “Discussion” days.
- Everyone’s job is to read the paper ahead of time and post a thoughtful comment.
- The discussion leader’s job is to write a blog post.
- Remember to keep track of the schedule so you know when to do these things!
- Hacking sessions.
- The course project.
- “Michelin star” grading.
- Policies, academic integrity, generative AI, respect, accessibility.
- This lesson’s task is about debugging the course structure.
- Ask questions about the course setup in this lesson’s discussion topic!
- Your first task is below: introduce yourself in the introductions topic right now, and (offline) pick a paper discussion to lead.
- This website and the blog, including the GitHub repository where you’ll send PRs. Work for 6120 is “real,” open source, and for the world.
- When you’ve done those things, submit the L1 marker assignment on CMS.
Tasks
- Read the syllabus! Seriously, please actually read it.
- Sign up for Zulip and introduce yourself in the introductions topic. Mention a compilers topic you’d like to learn about someday, either in this class or beyond.
- Pick a paper from the schedule whose discussion you want to lead.
Claim it by opening a pull request that modifies
content.toml
to fill in your name on one of the leader = "TK"
lines.
(Feel free to ask questions about the papers on Zulip to help you decide!)
- Submit any text file you like to the L1 CMS assignment to indicate that you’ve done the introduction and claimed a paper.
- For this task, submit an empty text file or whatever.
- For others, include a link to your code! I encourage (but don’t require) you to do all your work as open source. If you don’t want to open-source your solutions for some reason, you can upload your code instead.