[文章泛读] The varying faces of a program transformation systems (ACM Inroads, 2012)
Beevi S. Nadera, D. Chitraprasad, and Vinod S. S. Chandra. 2012. The varying faces of a program transformation systems. ACM Inroads 3, 1 (March 2012), 49-55. (gs:2)
这篇文章是对“Programing transformation Systems”的综述,作者的单位是TKM College of Engineering(印度)。
1. 文中认为目前代码转换的技术可以分为两类(S1):
- using framework
- pure translators
在Table1里,作者又把代码转化技术细分为三种: frameworks, source to source program translators, translators as anaylsis tools。
2. (S2)介绍了代码转换框架。
(S3)介绍了面向代码迁移的"source to source"代码转换。
(S4)介绍了多语言(multilingual)分析工具。
(S5)介绍了支持多种源语言的编译框架。
- Vortex:支持纯面向对象语言(Cecil, Self, Concurrent Aggregate),混合型面向对象语言(C++, Modula-3, Java)
- Suif compiler system:本身用C++实现。支持C, FORTRAN.
- .NET framework:支持Java, C#等。
- Toronto Portable Optimizer(TPO):本身用C++实现。支持C, C++, FORTRAN.
3. (S3)中介绍了3种代码转换的方法,分别是
- 源码级别的转换(S3.1):比如把C++代码转换成Java代码。
- Native Binary Code的集成(S3.2):比如使用JNI和CNI(Cygnus Native Interface)。
- Source to Binary Converter(S3.3):把C语言转化成JVM上的机器码。
4. (S3.1)介绍了几种Source-to-Source Translator
- MoHCA-Java: pure C++ –> Java
- Cappuccino: C++ –> Java
- C2j and C2j++: C/C++ –> Java
- Epebdra: C -> Java
5. 这篇文章里的"Program Transformation”偏向于讨论不同程序语言之间的转换。