|education suggestions firstname.lastname@example.org (ls) (2003-03-30)|
|Re: education suggestions email@example.com (Peter Cooper) (2003-04-05)|
|Re: education suggestions firstname.lastname@example.org (Randolph Crawford) (2003-04-05)|
|From:||Randolph Crawford <email@example.com>|
|Date:||5 Apr 2003 15:40:27 -0500|
|Organization:||University of Michigan Engineering|
|Posted-Date:||05 Apr 2003 15:40:27 EST|
The classic form of preparation for work in building compilers would
be a degree in computer science. A MS is probably ideal; a BS is
possibly sufficient (with a couple courses in compilers); a PhD is
probably necessary if you want to work in advanced optimization,
autoparallelization, itanium- targeting, or advanced abstract work.
With a background in linguistics, you'd be well-positioned to
undertake compiler front-end work -- parsing, parser-generation,
perhaps source-level code restructuring (if that's done
professionally). But to move beyond the front end, you'll want to
know a lot more about assembly language programming, CPU architecture,
assembly optimization, code profiling, advanced data structures, code
scheduling, threading, low-level O/S services (like scheduling and
context switching), and so on. Then there's the compiler-specific
stuff, which is well-described by a number of advanced textbooks,
Compiler front end:
Allen and Kennedy's "Optimizing Compilers for Modern Architectures: A
Wolfe's "High Performance Compilers for Parallel Computing"
Compiler back end:
Steven Muchnick's "Advanced Compiler Design and Implementation"
Robert Morgan's "Building an Optimizing Compiler"
(I've failed to mention many good introductory texts on compilers,
since you've already seen the Dragon book. The books I've mentioned
will give you a greater sense of the scope of the field.)
IMHO, compilers are one of the deeper, more complex topics in the
realm of computer science, drawing upon many of the research areas
within the field. As a compiler professional, you will very probably
want to acquire substantial awareness of most or all of these before
you hang out your shingle: "Compiler writer for hire".
BTW, one of the best schools in the world for compilers is in your
backyard. Rice University is the home to almost a dozen CS profs who
specialize in programming language implementation and compiler design.
Aside from Rice, choosing a school is pretty much hit-or-miss. You
really need to check out the literature at compiler-related academic
conferences to see who is active in the field and where they teach.
Many (perhaps most) CS departments have no faculty who are actively
working in compilers (in research or development).
> I'm looking for suggestions as to pursuing continuing education in
> compiler work. I worked for 7 years doing compiler QA, but never had
> the opportunity to get into actual compiler development work (I was
> laid off around the time I was trying to get into the actual
> development end of it). ...
> So I'm looking for suggestions on higher education programs. I.e.,
> where do I go to learn compilers? ;)
Randy Crawford http://cac.engin.umich.edu
Return to the
Search the comp.compilers archives again.