Prospective Students

Manas Thakur | CSE, IIT Bombay

PL is a large discipline and my research focuses on a nice balance between theory and implementation, particularly for real-world compilers and toolchains. This page assumes that you are interested in the area. With that and the skills below, believe me, it's fun!

Current Openings


MS/PhD: Two in 2024. Write an email detailing your interests and skill sets.

BTech/MTech: Total four in Autumn 2024. Must have credited at least one of CS6004/CS614/CS618.

Internships: Openings only for semester-long interns; build a background in the area (read below) and then reach out.

What do I expect?

CS skills:

If you want to work with programming languages, you need to be a good programmer. Even if your problem is theoretical, you need to understand the nuances of the language you are working for. In addition, it is important to understand the way a computational system works; for example, the elements involved in the lifecycle of a program as it travels from high-level code to assembly to finally the hardware.

With high probability, you would enjoy working in this area if you liked at least two of your UG courses from programming paradigms, compilers, computer organization/architecture, operating systems, algorithms and data structures, and theory of computation. Also, whether you liked it or not (I can make you do so!), you must have exposure to compiler design via a course taken during UG or PG.

Over the course of your research, you would also be expected to get familiar with working on the command-line (Unix instead of Windows), and use tools such as LaTeX, Makefiles, shell scripts, etc.

Soft skills:

Sincerity to your work, honesty with yourself and your advisor, and integrity towards the institution and the society are general ingredients to a happy survival. It is perfectly fine if you don't know something (nobody knows everything and we constantly learn from each other), but accepting the circumstances instead of cooking up things, and the desire to improve, are the keys to ensuring progress.

Once you finish a particular piece of work, you need to write technical documents (reports, papers) and present your accomplishments (conference talks, institutional seminars) in English. After you join, it will help to inculcate the habits of reading (technical/non-technical) and writing (thoughts/ideas/progress) in English to fill up gaps, if any.

What can you expect?

Regular meetings, group discussions, technical excitement, openness to questions, and friendly help in all relevant matters.

Motto: “You pour love, you get love; the world is circular!”