Programming can be similar to a crossword. Writing in wrong answers can lead one astray, changing the entire outcome of the puzzle.
黑料网 computer science Professor Jonathan Maletic, Ph.D., and computer science alumnus Michael Decker, Ph.D. '17, may just have solved the puzzle.
As Maletic explains it, tracking changes through lines of code can be an impossible task. Changing a line early in the sequence can spark a chain reaction, destroying the entire system.
鈥淵ou have millions of lines of source code in a system. These are big, with multiple people working on them,鈥 Maletic said. 鈥淪omebody changes something then they submit that change to the system. And it breaks something. The system fails. Okay, so what did they change?鈥
Decker and Maletic are developing a new software solution, creating a world where the computer science community can effectively track changes and improve group code development.
SrcML, previously developed by Maletic, acts as infrastructure to explore, analyze and manipulate source code.
Maletic and Decker鈥檚 new software, srcDiff, is a scalable syntactic-aware differencing tool for source code that describes changes to the code in a way that is easy for a programmer to understand. SrcDiff has been built on srcML鈥檚 foundation.
This three-year project is being funded by a $750,000 grant from the National Science Foundation.
This grant is unlike many other projects funded by the National Science Foundation. Typically, these grants are given to produce research papers. This funding supports the construction of infrastructure to expand technology needed to produce future research. A portion of the funding will be used to hire graduate and undergraduate students to work on the project. Maletic hopes that by increasing the number of people who interact with the software, they will build a broader understanding of its purpose and the many fields it can be used in.
鈥淲e are building a differencing tool that actually understands what syntax is,鈥 Maletic said.
Lines of code are connected, changing a line early on in the code can break lines further down in the block. Previous tools were incapable of identifying these connections, but srcDiff understands the context of these lines and how their arrangement impacts the entire block of code.
This tool will help programmers better identify changes in code that are impacting the entire program. SrcDiff understands the relationship between lines of code and how the entire structure functions.
This software concept originated during Decker鈥檚 time at the University of Akron, but blossomed when he started his dissertation at Kent State under Maletic鈥檚 teaching.
Time passed by and the duo continued to consider creating this software. Decker finally asked Maletic to dive in.
鈥淲e've been working on the idea for 10 years,鈥 Maletic said. 鈥淲e probably had a rough prototype for the past three or four, but we haven't made any movement on improving it, because it takes time.鈥
The pair are eager to improve the current infrastructure, developing an easy way to track changes when programming.
鈥淲e're really interested in having this work and looking at changes over the entire history of a system and having a bit better, more programmer-centric view of the changes,鈥 Maletic said.
So how useful is this? Maletic believes this tool will serve a broad global audience.
鈥淥pen-source is neat because it allows the public to use this software for free,鈥 Maletic said. 鈥淭hey can install it on their system, they can even alter it if they want.鈥
Open-source tools are usable, modifiable and distributable by all, making them ideal for educational purposes.
"Mainly, we built this for researchers,鈥 Maletic said. 鈥淧ractitioners are using it internally in their organizations, and students, mainly graduate students, are using it to support their research endeavors.鈥
鈥淲e started building this and then people started saying, 鈥楬ey, I can use this here?鈥 and 鈥業'm using it!鈥 Our srcML open-source system gets about 1,000 downloads a year,鈥 Maletic said.
SrcDiff has yet to receive many downloads, but Maletic anticipates it to be widely used once released. He continues to incorporate this software into his classes, with each of his 22 doctoral students using it. He also has introduced it to his undergraduate students.
鈥淚n my freshman-level class, they have a project that actually uses some of this. It kind of makes for a neat project because they're using some external tools,鈥 Maletic said. 鈥淚t also fills the needs of the actual kind of learning objectives of the class. In fact, many people across Europe and the U.S. have used it as part of their class for doing programming analysis. There are a lot of people who have used it internationally in their undergrad and grad classes.鈥
In addition to its use in college-level courses, the computer science community is all in to improve srcDiff, according to Maletic.
鈥淲e鈥檙e building infrastructure that supports research, and getting feedback from the community is essential as we continue developing our tool,鈥 Maletic said. 鈥淚n addition to creating awareness of our tool, we鈥檙e helping researchers understand how they can use srcDiff as part of their research.鈥
Decker and Maletic are eager to see the impact of their differencing tool.
鈥淚'm excited to take this tool from the prototype that it is and make it into a full-fledged tool that others besides myself can use,鈥 Decker said. 鈥淚 want to see and grow it into something that the software community finds value in. And that would make me feel good because I've contributed to that.鈥
Learn more about the computer science department
Photo Caption: Jonathan Maletic smiling for a group photo with his former Ph.D. students and their Ph.D. students