Graduate Programs in Programming Language Design/Research/Implementation?

I have a passion for Programming Language Design; designing compilers, languages and dreaming up functional code; I just finished undergraduate studies from Purdue University (BS: Computer Engineering) and would like to pursue the above for further studies...which schools and deptt. that humble readers of LtU may know of, would you recommend? It doesn't have to be in US necessarily but that helps...just a bit more on myself; so far, I've not done anything ingenious; just followed standard compiler texts and replicated their code to understand what's going this way, I've implemented compilers for very simple subsets of Java and C. There's obviously so much to do! PS: planning to start with graduate studies in Fall '10 (currently working as .NET developer with an IT Consultancy). Any help/advice greatly appreciated! LtU rocks! (and "yes", I DO know what a y-combinator is! (yay!)).

(PS: I see there is a "Course">""Graduate Programs in Program Design" Link in this blog but I am seeking a more forthcoming response; of course I will scour through all the listings in detail but where is the action happening RIGHT NOW? Which schools? Under which professors?


Shubham Harnal.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I'm not sure if you should

I'm not sure if you should be looking at specific programs as you should be looking at specific people. What professor do you want to work with? Then try to figure out if you could actually work with that professor. A direct email might help, but you really have to sell yourself strongly and quickly otherwise your mail will just be seen as SPAM.

Otherwise, look for a grad school with lots of strong PL people. Europe is the place for theory/FP, while America does better at pragmatics (lots of exceptions of course). Figure out what you'd like to do and see what the academic market is like. There is a huge market for those who are interested in and willing to work on static verification or heuristic bug detection, while a only a very small market exists for those who want to design their own languages. After you figure out what direction you wan tot go in, I think the schools that you need to look at will be obvious.

Also, this might effect you: Google has snapped up many of the really great PL people over the last few years. There are still many left in academia, but if you want to be exposed to great PL people your best bet is to probably land a job at Google.


Thanks Sean! I really appreciate your advice; incidentally it is quite the same I heard from another place:

This looks like the way to go...thanks again,
Shubham Harnal.

If you're still near Purdue...

...then you should talk to the people there. They've got a pretty good group of PL researchers -- off the top of my head, Jan Vitek, Suresh Jaganathan, and Tony Hosking come to mind -- and could probably give you good advice, especially if you can talk to them in person.

My Alma Mater

I got my BS there in 2002. Of these three, I'd say that Suresh Jagannathan is strongest in PLT, Tony is the strongest in compilers, and Jan Vitek seems to be on extended sabbatical, so he shows up everywhere but Purdue. I was originally working for Jan Vitek but then I switched to Jens Palsberg right about the time he decided to go to UCLA, and I went with him :-)

I agree with Sean though, you should look at particular people and see if they are in an area that interests you. By all means email them and talk to them--better to visit in person if you can manage.

I don't know if you have or will take the GREs, but even if you don't do that great, if you impress a faculty member they can pull strings and get you into their program.


Thanks so much neelk! I'm so glad I find myself in the midst of such helpful kind people.
Thanx again!

If you send email

Do not sent a long note of the form "here are 20 things I have done where I am the best in some group that you know nothing about, I have a lot of web programming experience, my resume is attached, can I work with you?" By the beginning of my second year, the authors of those letters immediately went into my reject pile, and I did not look at their applicant file.


  • If I don't know the quality of the comparison group, the 20 wonderful things that you have done do not tell me anything at all. In China, everyone has received ten different prizes. Most of them seem to be awarded for breathing. A few are valid, but as an American reader I could not tell which ones were which, and I did not have time to inquire for each of the hundred emails I would receive. The result is that these lists have no value. They waste your time and mine.

  • The information that is requested in the admission process is needed to evaluate the candidate. We review hundreds of files, so believe me, if it wasn't needed we would not ask. If the file is not complete, the professor cannot evaluate the candidate and no response is possible. If you cannot take the time to follow the application rules, why should I take the time to respond to your email?

    Exception: No CS professor cares about GRE scores unless they are bad. You can start a conversation without those.

  • If you write something like "I am interested in your areas A and B, and your work on X, Y, Z", take the time to make sure that these are actually what the faculty member does. If you have read and considered the papers, and can comment knowledgeably on something that the paper says, do so. It is also okay to say something like "I've been working on reading X, but I'm struggling with <question>". If you can't say something specific that makes your statement believable, don't bother.

I did not begin with this grumpy view. It took many many letters for me to learn that most letters should be ignored or subtracted from the application.

So what should you send? Perhaps something like:

Dear Professor X,

I have applied to the program in <subject> at <place>. I have confirmed that my application file is now complete. I am very interested in working with you because of your work on <something specific>. I would appreciate a chance to talk with you about what you are working on now (remember: the most recent paper reflects work from three years ago).

I would appreciate if you might take a moment to review my application. If you feel that it is appropriate based on the application, perhaps we can arrange time for a phone conversation to determine whether I might be a good student for you or for someone in a related area in your department.

I look forward to hearing from you.

Others will have strong opinions of their own, and each faculty member is different. This is just one reaction, but most faculty members do not like having their time wasted.

Disclaimer: I'm not on

Disclaimer: I'm not on faculty but I'm a researcher in Beijing who gets to go through a lot of this. Especially in China, where grades/ranking/etc... really have no relationship with candidate quality, and CVs/emails are often so unprofessional and pointless they can't even get past the SPAM filter.

My recommendation for contact with a researcher/professor only makes sense if you really know what the professor does, you really are interested in working on that, and you can really make the case. A strong, brief, concise, professional CV attached to an email might be useful, depending on the professor. In this case, CV highlights project experience that the professor might find interesting.

Really, if you are good, your main problem is just finding a professor who does work that you can be interested in working on. That is the main purpose of contacting a professor; you just assume that they would already want you and you need to find out if you want them :). If you aren't that good, then better to spend your time working on getting good (explore your interests by doing your own projects).

Now, if there are any good PhD/master candidates in PL, graphics or physics in China looking for an internship, please feel free to send me a private message ;)

Thank You!

Thank You! Thank You! Thank You!

Portland State

I'm a grad student studying functional programming languages (and related topics) at Portland State University in Portland, Oregon. My group, HASP (including many of the people formerly associated with the Programatica group at OGI and PSU) is led by faculty members Jim Hook, Mark Jones, and Andrew Tolmach, and is focused on developing a new systems programming languages that uses lessons learned from functional programming language design. Tim Sheard, Andrew Black, and Sergio Antoy are other faculty members at PSU researching PL-related topics.

My group is actively looking for more grad students. See our web page:
for more info.

Any prospective students shouldn't hesitate to contact the faculty members listed on that page; they don't bite.

Thanks Tim! This is quite

Thanks Tim! This is quite concrete information...I'll certainly follow-up on this.
Shubham Harnal.