For the class project, he instructor recommends Java because he's got the course set up for it, but he says people have used C# in the past, and that ML would be fine (in other words, he's secretly hoping someone will do it in ML). He stresses that working with someone else on the project is especially a good idea if you're not doing Java.
Java is not exactly on my career path, so of course I'll do C#. But wait... compiler geeks know that functional languages are made to write compilers! C# + ML = F#!
I'm wondering if that's feasible when he mentions "oh, and someone wanted to use F#, which I think could be cool but risky. Is the person from the F# team here?"
A guy I know raises his hand, and he and the instructor share a special moment. He was on the Visual Basic team and used to carpool with me to a different class. He's now a tester on the F# team, and I know him to be a pretty smart guy. And he claims there are scanner and parser generators for F#. So we're going to do the project together.
So yeah... things are coming together amazingly well. And if F# turns out not to be ready-for-primetime enough, it can interoperate with C#, so we always have that safety net.
Today was all review though, but a fulfilling lecture nonetheless. Mostly scanners, automata, regular grammars, history, and a tidbit on bottom-up parsing.