Re: education suggestions

Randolph Crawford <crwfrd@umich.edu>
5 Apr 2003 15:40:27 -0500

          From comp.compilers

Related articles
education suggestions lstavenhagen@hotmail.com (ls) (2003-03-30)
Re: education suggestions newsfeed2@boog.co.uk (Peter Cooper) (2003-04-05)
Re: education suggestions crwfrd@umich.edu (Randolph Crawford) (2003-04-05)
| List of all articles for this month |

From: Randolph Crawford <crwfrd@umich.edu>
Newsgroups: comp.compilers
Date: 5 Apr 2003 15:40:27 -0500
Organization: University of Michigan Engineering
References: 03-03-189
Keywords: courses, books
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,
among them:


Compiler front end:


Allen and Kennedy's "Optimizing Compilers for Modern Architectures: A
Dependence-based Approach"
http://net.gurus.com/bk/a/1558602860


Wolfe's "High Performance Compilers for Parallel Computing"
http://net.gurus.com/bk/a/0805327304


Compiler back end:


Steven Muchnick's "Advanced Compiler Design and Implementation"
http://net.gurus.com/bk/a/1558603204


Robert Morgan's "Building an Optimizing Compiler"
http://net.gurus.com/bk/a/155558179X


(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).


          Randy




ls wrote:
> 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
crwfrd_DESPAM_@umich.edu http://www-personal.engin.umich.edu/~crwfrd



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.