Live data from Hacker News

Advanced Compilers: Self-Guided Online Course

cs.cornell.edu

141–150 of 241 posts

Re: Advanced Compilers: Self-Guided Online Course

#141
post #59

I’ve worked on multiple compilers (optimizations expert) at MSFT on VS and CUDA and gave developed a DSL and worked on Database Compilers. I can’t hire compiler people with right skills. We’re building an IDE and those parsers are written differently, and we use Scala packrat parser combinators. These courses teach very little judgement or industry relevant stuff. When do you use packrat parser vs LALR vs LL? Good lu…

perhaps you should guest lecture at a university and have them record all the lessons? your kind of experience is rare.

Re: Advanced Compilers: Self-Guided Online Course

#142

Domain-specific compilers are a bigger field, where there's more opportunity to do something interesting Take C (or some other language) and its mature optimizing compilers as a foundation, and write a program that compiles a high-level description of a domain-specific program into C For example, NN-512 ( https://NN-512.com ) is a compiler that takes as input a simple text description of a convolutional neural net in…

MATLAB Coder - Generate C and C++ code from MATLAB code https://www.mathworks.com/products/matlab-coder.html

Actually the whole family of embedded code generation products from MathWorks https://www.mathworks.com/solutions/embedded-code-generation...

Re: Advanced Compilers: Self-Guided Online Course

#143
Even if you don't do the course, the first paper they list is a fascinating must-read:

Producing Wrong Data Without Doing Anything Obviously Wrong! Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. ASPLOS 2009.

https://dl.acm.org/doi/10.1145/2528521.1508275

I happened to be at that ASPLOS and I thought it was fascinating. Good to see it recognized as one of the most important papers in compilers.

Re: Advanced Compilers: Self-Guided Online Course

#144
post #105

Earlier quoted context omitted.

> Do you think it is the responsibility of academia to teach "industry relevant stuff"? I don't think that was what ibains was going for, though i don't fault you for seeing this in that comment. (Especially that i don't think this course suffers from that problem and generally i think things are rapidly improving on this front.) That problem to me and i think to him too is that quite a lot of things that such course…

Most languages are context sensitive. Most language tools are context free. How did we go so wrong?

Languages being context sensitive results from hacking in new language features. It's a constant struggle to keep D context free :-/

Re: Advanced Compilers: Self-Guided Online Course

#145
post #59

I’ve worked on multiple compilers (optimizations expert) at MSFT on VS and CUDA and gave developed a DSL and worked on Database Compilers. I can’t hire compiler people with right skills. We’re building an IDE and those parsers are written differently, and we use Scala packrat parser combinators. These courses teach very little judgement or industry relevant stuff. When do you use packrat parser vs LALR vs LL? Good lu…

Hiring for exact skills is what you do when you need the skills ASAP and the actual supply of engineers is there. The time you waste looking for someone with the exact knowledge you need could have been spent getting a good compiler engineer and just teaching them what you know. And magically that good engineer will get better, it's pretty amazing stuff. I've was told multiple times, University/School teaches you how…

I will second this. I would much rather hire an engineer who has a related background and wants to learn over an engineer with the exact skillset but does not want to learn. It may take a few months, but the former engineer will pick up what you want them to know (if you mentor them correctly), and past that inversion point, they are immensely more valuable.

Re: Advanced Compilers: Self-Guided Online Course

#146
post #107

Earlier quoted context omitted.

> Good luck hiring an engineer with advanced compiler courses knowing any of this. Have you tried raising the level of compensation you offer? There are engineers elsewhere doing this at other companies you could presumably get if you put your hands in your pockets?

“We can’t hire for x” almost always means “we can’t hire for x for what we’re willing to pay”

I'm normally fairly laissez-faire about the morality of "exploiting" employees, but that works both ways - if you can't find people for the amount of money you're charging then tough shit

Re: Advanced Compilers: Self-Guided Online Course

#147

Earlier quoted context omitted.

I understand the problem. I teach compilers at a big university. And I would love to hire graduates with compiler skills for my startup, but find it difficult. There are several structural problems that conspire to keep students from acquiring knowledge in low-level programming domain like compilation: a course needs to fit with the rest of the curriculum, and with student interest. I cannot get students interested i…

Thanks. I'm actually very interested in lexing and parsing, because that's probably 99% of the stuff a layman-programmer gets to do with compiler theory in job. I mean not everyone gets chance to write the backend part, but parsing skill is almost used universally.

A fun exercise is writing a lexer generator or a parser generator. It's probably easier starting out with writing a lexer generator like Flex for your favourite language. I recommend using the Flex input format, than you can test your creation using Flex as a testing oracle! This is not something you can do in a weekend.

Re: Advanced Compilers: Self-Guided Online Course

#148
post #84

Earlier quoted context omitted.

Is that such a critical hiring criteria? That seems like something I could learn in a week.

> That seems like something I could learn in a week. So why not learn it in a week then apply for the job? I would suggest the reason is... because you cannot learn it in a week.

You can't gain experience in a week but you aren't working alone.

This is an example of know-how, not theory. Different problems require different things.

Re: Advanced Compilers: Self-Guided Online Course

#149

Earlier quoted context omitted.

Most languages are context sensitive. Most language tools are context free. How did we go so wrong?

Languages being context sensitive results from hacking in new language features. It's a constant struggle to keep D context free :-/

Strictly speaking, D is not context free nor is any statically typed programming language. That said most languages, including D, have supersets that are context free and can be used to build an AST which can then be refined further with context sensitive checks (ie. variables are used after declaration) and then even further with type checks.

Many language tools don't need a full blown language parser and can get by with a context-free parser for the language's superset. Things like autocompletion, spell checking, documentation/highlighting can all be implemented using context-free parsers.

Re: Advanced Compilers: Self-Guided Online Course

#150

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?

Listening to a Russian theoretical physicist mumble about how trivial various results are over a zoom call really makes my day, put it that way.i
Post reply on HN