[ad_1]
Behind the scenes of every web service, from a secure web browser to an entertaining application, is a carefully crafted programmer code to ensure everything runs quickly, smoothly, and securely. For years, MIT Associate Professor Adam Chlipala has worked tirelessly developing tools to help programmers generate their code faster and easier – and to prove that he is doing what he is supposed to do.
By browsing through the many publications on the Chlipala webpage, you will discover commonly used keywords, such as "easy", "automated" and "proof". Much of his work focuses on the design of simplified programming languages and application creation tools for programmers, systems that automatically generate optimized algorithms for specific tasks, and compilers that automatically prove that complex mathematics written in the code are correct.
"I hope to save a lot of time doing boring repetitive work, automating programming work and lowering the cost of building secure and reliable systems," said Chlipala, a professor of computer science since a researcher at the lab. Computer and artificial (CSAIL) and responsible group Languages programming and verification.
One of Chlipala's recent systems automatically generates optimized – and mathematically proven – cryptographic algorithms, allowing programmers to manually write and verify code. And this system is now behind almost all secure communications from Google Chrome.
But Chlipala's mathematical test and code generator systems can be used for a wide range of applications, from the protection of financial transactions against fraud to the guarantee of autonomous vehicle safety. The goal, he says, is to detect code errors before they lead to real consequences.
"Today, we simply badume that there will be a steady stream of serious security issues in all major operating systems. But by using formal mathematical methods, we should be able to automatically guarantee that there will be far fewer surprises of this type, "he said. "With a fixed engineering budget, we can do a lot more suddenly without causing annoying disasters or endangering everyday life."
A heart for the system infrastructure
As he grew up in the Lehigh Valley area of Pennsylvania, programming became "an important part of my identity," Chlipala said. In the late 1980s, when Chlipala was young, his father, a researcher who conducted physics experiments for AT & T Bell Labs, taught him some basic programming skills. He quickly became addicted.
In the late 1990s, when the family finally connected to the Internet, Chlipala had access to various development resources that helped him to deepen his research, which meant designing larger programs and more complex. He worked on compilers – programs that translate the programming language into machine-readable code – and on Web applications, "when applications were a vanguard."
In fact, the applications were then called "CGI scripts". CGI is the acronym for Common Gateway Interface, a protocol that allows a program (or a "script") to communicate with a server. In high school, Chlipala and some friends designed CGI scripts that connected them to an online forum for young programmers. "It was a way for us to start building our own system infrastructure," he says.
And as a pbadionate computer player, the logical thing for a teenager Chlipala was to design his own games. His first attempts were textual adventures encoded in the BASIC programming language. Later, in the C programming language, he designed a game called "Street Fighter", called Brimstone, as well as table games simulation games.
It was an exciting thing for a high school student. "But my heart has always been in systems infrastructure, like code compilers and creating help tools for older Windows operating systems," says Chlipala.
From that moment on, Chlipala has worked extensively in the field of web services, laying the groundwork for programming for developers. "I am at many levels of abstraction removed from the type of computer programming that interests any end user," he says with a laugh.
Impact in the real world
After high school in 2000, Chlipala enrolled at Carnegie Melon University, where he specialized in computer science and became involved in a research group on programming language compilers. In 2007, he earned his Ph.D. in Computer Science from the University of California at Berkeley, where his work focused on developing methods to prove the mathematical accuracy of algorithms.
After completing a post-doctoral degree at Harvard University, Chlipala joined MIT in 2011 to begin her teaching career. What drew Chlipala to MIT is partly an opportunity "to fill a gap where no one proves me the merits of computer systems," he says. "I liked to build this topic here from scratch."
Testing the source code that is now feeding web services and computer systems takes a lot of computing time. It consists mainly of executing the code using tons of simulations and correcting the detected bugs until the code produces the desired result. But it's almost impossible to run the code through all the possible scenarios to prove that it's completely error-free.
The Chlipala research group focuses instead on eliminating these simulations by designing proven mathematical theorems that accurately capture the behavior of a particular web service or computer system. From this, they build algorithms that check if the source code works according to this theorem, which means that it works exactly as it is supposed to, mainly during code compilation.
Although these methods can be applied to any application, Chlipala likes to lead their research group as a startup, encouraging students to target specific and practical applications for their research projects. In fact, two of his former students have recently joined startups doing work related to their thesis.
A student is developing a platform for users to quickly design, build and test their own computer chips. Another is to design mathematically proven systems to ensure that the source code for driverless car systems does not contain errors that can lead to errors on the road. "In driverless cars, a bug could literally cause an accident, not just the type of crash" on a blue screen, "said Chlipala.
On sabbatical from this summer until the end of the year, Chlipala divides her time between MIT research projects and launches her own startup based on tools that allow people without programming experience to create new ideas. advanced applications. One of these tools, which allows non-experts to create planning applications, has already found users among faculty and staff in his own department. Regarding the new company, he said: "I have embarked on an entrepreneurial spirit in recent years. But now that I have the mandate, it's the right time to start. "
Source link