Live data from Hacker News

Advanced Compilers: Self-Guided Online Course

cs.cornell.edu

21–30 of 241 posts

Re: Advanced Compilers: Self-Guided Online Course

#21

This course is asynchronously delivered. Question for students: how do you find synchronous courses with some discussions during class, vs asynchronous courses where discussions are limited to an online written forum or office hours?

Not a problem at all. For non-introductory courses, this works well.

But needs to have at least some sort of synchronous at some point. In my one class, we use Notion for discussing so it has a live sense of discussion.

Re: Advanced Compilers: Self-Guided Online Course

#22
post #8

What would be some cool use cases to design your own compiler?

There are various weird and wonderful niche languages out there, if you appreciate programming languages as an end in themselves. Two examples: Sentient [0] and Factor [1][2].

[0] https://sentient-lang.org/

[1] https://factorcode.org/

[2] Factor's home-page does a poor job of presenting examples to give a flavour for the language, so here's one on GitHub: https://github.com/factor/factor/blob/master/basis/roman/rom...

Re: Advanced Compilers: Self-Guided Online Course

#23
post #17

The course materials look good. But what is a "PhD level course"? All I've seen is undergrad and graduate, and the difference between masters and PhD has nothing to do with classes.

> the difference between masters and PhD has nothing to do with classes. huh ? what's your education system ? in europe it's generally 3 year bachelor, then 2 year masters, then 3 years phd so when you have classes during your phd hopefully they are different that the one you get during your masters

In the US, it's typically a 4 year undergrad, 2 year masters, and a ~5-7 year PhD depending on the program itself. From what I understand, while there are some classes you take as a PhD student, a majority of your work is doing research

Re: Advanced Compilers: Self-Guided Online Course

#25
post #8

What would be some cool use cases to design your own compiler?

A (not)compiler can be made to look for issues in your codebase that already exists. It would need all the tools of a compiler, just that the target is the same as the source language.

Re: Advanced Compilers: Self-Guided Online Course

#27
post #17

The course materials look good. But what is a "PhD level course"? All I've seen is undergrad and graduate, and the difference between masters and PhD has nothing to do with classes.

> the difference between masters and PhD has nothing to do with classes. huh ? what's your education system ? in europe it's generally 3 year bachelor, then 2 year masters, then 3 years phd so when you have classes during your phd hopefully they are different that the one you get during your masters

Depends on the field. I studied philosophy (Ph.D. program, but finished with an M.A.), and the M.A. is often just a degree given after the first few years of the Ph.D. There are a handful of required first year courses (logic, basic metaphysics, philosophy of science and ethics), but otherwise students take whatever courses are relevant to their interests. It helps that philosophy typically has fewer classes with explicit prerequisites. If you take an advanced course, you might be lost, but it doesn't feel the same as not being knowing a formula or how to derive something.

Some courses are more basic, and some are more like collaborative research seminars. Advanced students gravitate towards the latter (and typically take fewer courses and/or audit more of them), but a first year with the right background can still take them. Conversely, an advanced student might take an introductory course in an area they lack background in to broaden their knowledge.

There also are terminal M.A. programs, but they're less common, and the majority of students who do Ph.Ds at prestigious institutions don't do one.

Re: Advanced Compilers: Self-Guided Online Course

#28
I took the undergraduate version of this course while at Cornell. It was a wonderful course. I taught me a lot how computers work, and how to organize a large (for me at the time) software project.

One of the most painful parts of the the project was using Scala which had ridiculously long compile times which made iterating quite a pain.

My favorite memory was that for one project we had to submit a program written meant to stress test everyone's parser.

Re: Advanced Compilers: Self-Guided Online Course

#29
post #12

On the related note, what would you guys recommend as an introduction to compilers, say for beginners?

Engineering a compiler is by far the best introductory book that is also modern.

Advanced compiling for high performance is one of not many good accounts of scheduling for non-toy architectures.

Muchnick's book is a good encyclopedia of optimisations although the code is unreadable and buggy.

Post reply on HN