Detail publikace

Generic Source Code Migration Using Decompilation

Originální název

Generic Source Code Migration Using Decompilation

Anglický název

Generic Source Code Migration Using Decompilation

Jazyk

en

Originální abstrakt

Many core parts of software applications have been written several decades ago, and they are still essential in several existing projects. However, maintaining these parts is difficult and expensive. The source language itself may be either ancient and ineffective, or its toolchain does not support new platforms and features. Source code migration to a newer language is often the only solution. In the past, several single-purpose converters have been created. However, such solutions are more or less limited to a particular language and computational platform. In this paper, we present a generic solution of this problem. The proposed solution is independent of any particular source or target language, or on the target platform. We utilize an existing retargetable decompiler and the LLVM Compiler System for the conversion process. At present, the Python language is used as the target language, while other languages are under development. As can be seen from the experimental results, we are able to migrate source code from many particular languages (e.g. C/C++, D, Fortran) into a functional equivalent and highly readable code in Python.

Anglický abstrakt

Many core parts of software applications have been written several decades ago, and they are still essential in several existing projects. However, maintaining these parts is difficult and expensive. The source language itself may be either ancient and ineffective, or its toolchain does not support new platforms and features. Source code migration to a newer language is often the only solution. In the past, several single-purpose converters have been created. However, such solutions are more or less limited to a particular language and computational platform. In this paper, we present a generic solution of this problem. The proposed solution is independent of any particular source or target language, or on the target platform. We utilize an existing retargetable decompiler and the LLVM Compiler System for the conversion process. At present, the Python language is used as the target language, while other languages are under development. As can be seen from the experimental results, we are able to migrate source code from many particular languages (e.g. C/C++, D, Fortran) into a functional equivalent and highly readable code in Python.

BibTex


@inproceedings{BUT96941,
  author="Lukáš {Ďurfina} and Jakub {Křoustek} and Petr {Zemek}",
  title="Generic Source Code Migration Using Decompilation",
  annote="Many core parts of software applications have been written several decades ago,
and they are still essential in several existing projects. However, maintaining
these parts is difficult and expensive. The source language itself may be either
ancient and ineffective, or its toolchain does not support new platforms and
features. Source code migration to a newer language is often the only solution.
In the past, several single-purpose converters have been created. However, such
solutions are more or less limited to a particular language and computational
platform. In this paper, we present a generic solution of this problem. The
proposed solution is independent of any particular source or target language, or
on the target platform. We utilize an existing retargetable decompiler and the
LLVM Compiler System for the conversion process. At present, the Python language
is used as the target language, while other languages are under development. As
can be seen from the experimental results, we are able to migrate source code
from many particular languages (e.g. C/C++, D, Fortran) into a functional
equivalent and highly readable code in Python.",
  address="EUROSIS",
  booktitle="10th Annual Industrial Simulation Conference (ISC'2012)",
  chapter="96941",
  edition="NEUVEDEN",
  howpublished="print",
  institution="EUROSIS",
  year="2012",
  month="june",
  pages="38--42",
  publisher="EUROSIS",
  type="conference paper"
}