Perl 6 and Parrot have several project suggestions for students, and there are plenty of other places where you or your student can participate. In particular, anything related to a modern virtual machine or compiler or programming language implementation is fair game, including garbage collection, JIT, register allocation, compiler optimizations, and parsing strategies.
The most interesting ideas on the list so far include the integration of parts of LLVM with Parrot, particularly its JIT, though making Parrot compile with LLVM’s clang is an interesting project in its own right.
There are plenty of tasks for someone more interested in building a compiler than a virtual machine, however. Start with Klaas-Jan Stol’s Building a Compiler with Parrot articles on the Parrot weblog, and you’ll be able to build your own small language in a couple of days.
Finally, Bernhard Schmalhofer released Parrot “P&P” 0.6.0 on Tuesday. Besides the inevitable bug fixes, language improvements, and minor spit and polish we always provide, this release features reworked internals of our polymorphic fundamental data types. This was one of our milestones, and we’re still on track to the 1.0 release in the medium-to-near future.