CS 1622

INTRO TO COMPILER DESIGN

FALLSPRINGSUMMER
PRE-REQ: CS 441CS 447
Course DescriptionThis course will introduce the basic concepts of compiler design and implementation. Topics include lexical analysis, various types of parsers, intermediate and object code generation and code optimization. The material will be presented from an implementation point of view rather than a formal approach. The impact of language design on compilers will also be examined.
Credits:3
View this course on Pitt's Website

Testimonials

Term Spring 2020Professor Vinicius Petrucci Difficulty 5/5Quality 5/5

Petrucci was not a good professor for this class. Luckily most of the material were from the textbooks and I was able to learn by myself. Compilers is one of the coolest topics in CS and I highly recommend any student to take the course. The project is building a compiler and it is incredibly difficult. This course involves knowledge from 1501,1502,1550, 449, 447, and 445. I highly recommend!

Term Spring 2020Professor Vinicius Petrucci Difficulty 4/5Quality 5/5

Petrucci is not the best teacher, but he was lenient with the grading. His lectures were bad, but compilers as a subject was my favorite one at Pitt. It was a combination of 1502, algorithms, operating systems, assembly, all in a fun project. You get to work on the compiler with a partner, and while it was pretty challenging, it was a lot of fun. If you are able to learn on your own and enjoy building tough challenging CS projects, I recommend taking this class.

Term Spring 2019Professor Vinicus Petrucci Difficulty 5/5Quality 5/5

This is a hard class. To be honest, this might be one of the hardest undergrad CS classes Pitt offers. If you are specifically GPA sensitive, take this class without other CS classes. If not, just try to keep up on projects. Best Pre-reqs: Take this class last. This class will dip into every ounce of prior knowledge you have. Compilers are hard. In this class, by the end of it, you will have built a compiler on a toy language that is a subset of C. You will need to understand a lot of theoretical material that was not covered in 1502, but the Theory of Computation (Sipser) book is still a big resource. You will have the option to write the compiler from scratch or to implement it using prebuilt tools such as yacc/flex/bison. The tools are easier for sure but building them yourself will throw you through the grinder and you will be better for it. If your GPA can afford it and you're confident, do it by hand. Otherwise, use the tools. I personally put something like 60-70 hours into my compiler and I am very proud of it. In fact, I talked about it in an interview as a project that I built and delivered and that I enjoyed. The exams in this class are difficult but not impossible. Most of the material is compiler-specific theory related to Context Free Grammars. If you hate theory you will not enjoy the exam portion of this class. Dr. Petrucci is wonderful. He understands this class is a drain on your psyche and is very available and lenient with dates. The lectures are dry but the lecture material is basically all theory, so I would say he does a good job with it.

Add your review by filling out this form!