Studying the relationship between what we think (algorithms) and what we say (programs) in order to create better (more natural, more efficient) languages to solve practical problems which occur in Software Systems Design. It is my crazed belief that another tongue in the cacophonous babble of computer languages can actually solve the problem.
I’d also like to head-butt the concurrency problem into submission, by carefully analyzing the manner in which humans naturally go about solving parallel problems, and orchestrating those concepts into a specific concurrency-oriented language. By making it natural both in syntax and semantics I hope my solution (whatever it is) will gain adoption and displace the currently hackish and low-level solutions.
Failing in my attack on simplifying the concurrency issue, I could put my background in Physics to use by creating a programming language for quantum computers. It’s important that work start on this very soon, because we’d rather have a language ready and waiting when quantum computers become a commercial reality, rather than scramble at the last minute to get something together (as has happened with concurrency).
I’m also very interested in the underpinnings of compilers, syntax trees, representation theory, design philosophy, online learning algorithms for solving optimization problems and by extension all things related to the amalgamated field of Computer Science.