TITLE:
Source-to-Source Translation and Software Engineering
AUTHORS:
David A. Plaisted
KEYWORDS:
Source-to-Source Translation; Libraries; Legacy Code
JOURNAL NAME:
Journal of Software Engineering and Applications,
Vol.6 No.4A,
April
29,
2013
ABSTRACT: Source-to-source
translation of programs from one high level language to another has been shown
to be an effective aid to programming in many cases. By the use of this
approach, it is sometimes possible to produce software more cheaply and
reliably. However, the full potential of this technique has not yet been
realized. It is proposed to make source-to-source
translation more effective by the use of abstract languages, which are
imperative languages with a simple syntax and semantics that facilitate their
translation into many different languages. By the use of such abstract languages and by translating only often-used fragments of
programs rather than whole programs, the need to avoid writing the same program
or algorithm over and over again in different languages can be reduced. It is
further proposed that programmers be encouraged to write often-used algorithms
and program fragments in such abstract languages. Libraries of such abstract
programs and program fragments can then be constructed, and programmers can be
encouraged to make use of such libraries by translating their abstract programs
into application languages and adding code to join things together when coding
in various application languages. This approach can also improve program
reliability, because it is only necessary to
verify the abstract programs once instead of verifying them separately in each
application language. Also, this approach makes it possible to generate code
faster than programming from scratch each time. This approach is compared to
the use of libraries and to other methods in current use for communication
between programming languages and translation
between languages.