KAIST Research Team Develops Translation Technology for ‘Extreme Minority’ Programming Languages,

Comparison between existing translation results of C code using unions and translation results with proposed method. The existing translation results did not prevent memory issues by not replacing unions with tagged unions. On the other hand, translation results with the proposed method replaced unions with tagged unions, preventing memory issues. / Photo = KAIST,
, ‘A domestic computer science research team has developed a programming language translation technology known for not finding a sharp solution even in the U.S. Department of Defense.’,
,
, “KAIST announced on the 13th that the research team led by Professor Ryu Seok-young of the Department of Computer Science (Programming Language Research Lab) has developed the ‘C-Rust Code Translation Technology’ to prevent memory issues in the core functions of the C language. This research result was adopted by the international academic conference ‘International Conference on Automated Software Engineering (ASE).’ “,
,
, “A programming language is a language used to operate computer software. Among them, the C language is known for its fast execution speed and ease of maintenance. One of the key functions of the C language is the ‘union,’ which stores various types of data in the same space to increase memory efficiency. However, unions have a critical issue in memory management because they cannot distinguish the types of data being stored.”,
,
, “The technology that addresses this issue is ‘tagged union.’ It attaches tags (markers) to different types of data stored in the same space to distinguish them. This tagged union technology is directly incorporated in ‘Rust,’ a programming language.”,
,
, ‘The research team developed a technology to translate unions in existing C code into Rust code. According to the team, the gap between C and Rust is significant, and the team that successfully developed the C-Rust code translation technology is extremely rare worldwide. ‘,
,
, ‘C-Rust code translation is based on an analysis technique that locates the storage location of tag values in each union, allowing related information to be identified even in complex structures. It enhances efficiency by analyzing only the parts where unions are used, not the entire program. In cases of inaccurate analysis, a new algorithm was introduced to accurately locate the tag values. The research team stated, “We confirmed successful results by applying this to actual C program translation.”‘,
,
, ‘KAIST explained, “In February of this year, the White House urged the discontinuation of the use of the C language, and the Defense Advanced Research Projects Agency (DARPA) in the United States also announced a research project to develop a technology that automatically translates code written in C language into Rust.” The institute described this research as being preemptively developed and led by domestic researchers.’,
,
, ‘Professor Ryu, who led the research, stated, “We aimed to produce safe software and early recognized the importance of C-Rust code translation research. By actively incorporating various programming language techniques into code translation, we were able to achieve these results.” The research team plans to continue further research to reach the stage of ‘completely automatic translation.’,
,
, ‘This research was conducted with the support of the Korea Research Foundation’s Leading Research Center and Mid-level Researcher Support Project, the Institute for Information & Communications Technology Promotion (IITP), and Samsung Electronics.’,
,
,

Professor Ryu Seok-young, Department of Computer Science, KAIST / Photo = KAIST ,
, ‘article_split’,
,