Shardul Chiplunkar, a senior in the 18C (Mathematics with Computing) course, entered MIT with an interest in computers, but he quickly tried everything from rotating fire to building firewalls. He dabbled in audio engineering and glassblowing, was a tenor for the MIT / Wellesley Toons a capella group, and learned to sail.
“When I got into MIT, I thought I was just going to get into math and computer science, academics and research,” he says. “Now what I appreciate most is the diversity of people and ideas.”
Academically, he focuses on the interface between people and programming. But his extracurricular activities have helped him understand his secondary goal, to be a kind of translator between the technical world and professional software users.
“I want to create better conceptual frameworks for explaining and understanding complex software systems, and developing better tools and methodologies for large-scale professional software development, through fundamental research on programming language theory and interaction man-machine, ”he says.
It’s a role he was practically born for. Raised in Silicon Valley when the dot-com bubble was at its peak, he was drawn to computers from a young age. He was 8 years old when his family moved to Pune, India for his father’s job as a network software engineer. In Pune, her mother also worked as a translator, editor and radio presenter. Chiplunkar was finally able to speak English, Hindi, French and his native Marathi.
At school, he took part in math and coding contests, and a friend introduced him to language puzzles, which he remembers “were a bit like math.” He went on to excel at the Linguistics Olympics, where high school students solve problems based on the scientific study of languages - linguistics.
Chiplunkar came to MIT to study what he calls “the perfect major,” the 18C course. But as the child of a tech dad and a translator mom, it was perhaps inevitable that Chiplunkar would figure out how to combine the two subjects into a unique career path.
While he was gifted with human languages, it was an undergraduate research opportunities program from the Computer Science and Artificial Intelligence lab that cemented his interest in researching programming languages. Under the guidance of Professor Adam Chlipala, he developed a specification language for Internet firewalls and a formally verified compiler for converting these specifications into executable code, using software synthesis and construction correct proof techniques.
“Suppose you want to block a certain website,” Chiplunkar explains. “You open your firewall and enter the website address, how long you want to block it, and so on. You have parameters in some invented language that tell the firewall what code to run. But how do you know that the firewall will translate this language into code without any errors? This was the essence of the project. I was trying to create a language to mathematically specify the behavior of firewalls, and convert it to code and prove that the code will do what you want it to do. The software would come with a mathematically proven warranty.
He also explored adjacent interests in probabilistic programming languages and program inference through cognitive science research, working under the guidance of Professor Tobias Gerstenberg at Stanford University and later under the guidance of Joshua Rule at the Tenenbaum Lab in the Department of Brain and Cognitive Sciences at MIT.
“In normal programming languages, the basic data you deal with, atoms, are fixed numbers,” Chiplunkar explains. “But in probabilistic programming languages, you deal with probability distributions. Instead of the constant five, you could have a random variable that has an average value of five, but every time you run the program it is somewhere between zero and 10. It turns out that you can also calculate with these probabilities – and it’s a more powerful way to produce a computer model of some aspect of human cognition. language allows you to express concepts that you might not be able to express otherwise. “
“A lot of the reasons I love computational cognitive science are the same reasons I love programming and human language,” he explains. “Human cognition can often be expressed in a representation that resembles a programming language. It’s more of an abstract representation. We have no idea what is really going on in the brain, but the assumption is that at some level of abstraction it is a good model of how cognition works.
Chiplunkar also hopes to bring a better understanding of modern software systems to the public sphere, to empower tech-curious communities such as lawyers, policymakers, doctors and educators. To help him in this quest, he took courses at MIT on Internet policy and copyright, and avidly follows the work of digital rights and freedoms activists. He believes programmers need fundamentally new language and concepts to talk about the architecture of computer systems for broader societal purposes.
“I want us to be able to explain why a surgeon should trust a robotic surgical assistant, or how a data storage law needs to be updated for modern systems,” he says. “I think creating better conceptual languages for complex software is just as important as creating better practical tools. Because complex software is so important to the world now, I want the computer industry – and myself to – be better able to engage with a larger audience.