What is a versioning system?

 While developing software a programmer or a team of programmers make different mistakes that are necessary to be solved. Sometimes customers demand to change a software program. It is easy to add or cancel something if only it doesn`t contain many files. Furthermore members of the team work far from each other because it complicates communication – the participants may mix up correct and incorrect versions of the project.

To simplify programmers` working process one developed versioning systems. They save all changes that were done while developing and correcting. Thus it is possible to restore a program at any stage of development.

“Here is a simple example of how to use a versioning system. For instance, programmers have 3-4 months to develop a software program. But at one point it turns out that the program has been canceled because of technical deficiency. Thus using a control system, which have saved the previous version, they can present it to the customer, who is usually interested in interim result,” commented on Mr. Skorokhodov.

 

How to solve the problem?

There are different versioning systems. Some of them are not effective and easy to use.

“While working as a programmer I faced that some systems operated incorrectly. When I made simple changes in the code, they analyze and process it as changing the whole file…So I decided to analyze and improve this system by correcting it,” said the participant of Science Slam ITMO University.

The young expert represented initial codes as abstract syntax trees that range elements of data by their importance. Thus a statement sentence is a software file, the less important parts are presented by functions that perform some operations.

“If one has changed a function the typical control system will change one data area for another, which is equivalent to changing the whole file. While using of trees  gives an opportunity to change only one line,” noted the student.

 

How to apply it in other way?

Apart for programming this invention can be applied for other areas such as comparing various texts.

“This programs can be used in plagiarism detectors and translate checkers, for example, to compare texts with their translations. Basically versioning systems based on syntax trees focus on text structure instead of content that can be equal written differently. It can be used in other fields…” said the developer.

Maksim Skorokhodov plans to finish this development and then present it as an Open Source project. If it is interesting for business the project might be commercialized.

“I take part in different student contests such as Science Slam, hackathons and so forth. They help to develop presentation skills, make startups and research projects popular as well as commercialize one`s ideas. I also like to collaborate with motivated students while participating in team competitions,” underlined Mr. Skorokhodov.