Translating PL/I Macro Procedures into Java Using Automatic Templatization and Large Language Models
By: Takaaki Tateishi, Yasuharu Katsuno
Potential Business Impact:
Helps computers rewrite old code into new code.
Modernizing legacy enterprise systems often involves translating PL/I programs into modern languages such as Java. This task becomes significantly more complex when PL/I macro procedures are involved. The PL/I macro procedures are considered string-manipulating programs that generate PL/I code, and they make automated translation more complex. Recently, large language models (LLMs) have been explored for automated code translation. However, LLM-based code translation struggles to translate the PL/I macro procedures to Java programs that reproduce the behavior of the plain PL/I code generated by the original PL/I macro procedures. This paper proposes a novel method called templatization, which uses symbolic execution to generate code templates (code with named placeholders) as an intermediate representation. In this approach, symbolic values are treated as parts of macro-generated code. By symbolically executing macro procedures and generating code templates, our approach facilitates LLMs to generate readable and maintainable Java code. Our preliminary experiment on ten PL/I macro procedures shows that the LLM-based translation through templatization successfully generates Java programs that reproduce the behavior of the macro-generated PL/I programs.
Similar Papers
Leveraging LLMs for Automated Translation of Legacy Code: A Case Study on PL/SQL to Java Transformation
Software Engineering
Helps old computer code become new code.
On Effective Semantic Translation for Code: A Study Based on Pseudocode
Software Engineering
Translates computer code better by explaining it first.
Cost-Efficient Long Code Translation using LLMs while Leveraging Identifier Replacements
Software Engineering
Translates long computer code accurately and faster.