编译器可以生成相同的环境下运行的目标代码
编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码 ,这种编译器又叫做“本地”编译器。
另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。
“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器。例如: 自动并行化编译器经常采用一种高级语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令)
1 package Com.Table; 2 /*========= 3 * * 4 *** 5 ***** 6 ******* 7 ***** 8 *** 9 * 10 ========= */ 11 public class SixTable { 12 public static void main(String [] args){ 13 for (int i = 0; i < 4; i++) 14 { 15 for (int j = 0; j < 7; j++) 16 { 17 if (i == 0 && j == 3) 18 { 19 System.out.print("*"); 20 } 21 else if(i == 1 && j < 5 && j > 1) 22 { 23 System.out.print("*"); 24 } 25 else if(i == 2 && j < 6 && j > 0) 26 { 27 System.out.print("*"); 28 } 29 else if (i == 3) 30 { 31 System.out.print("*"); 32 } 33 else 34 { 35 System.out.print(" "); 36 } 37 } 38 System.out.println(); 39 } 40 41 for (int i = 0; i < 3; i++) 42 { 43 for (int j = 0; j < 7; j++) 44 { 45 if(i == 0 && j < 6 && j > 0) 46 { 47 System.out.print("*"); 48 } 49 else if (i == 1 && j < 5 && j > 1) 50 { 51 System.out.print("*"); 52 } 53 else if (i == 2 && j ==3) 54 { 55 System.out.print("*"); 56 } 57 else 58 { 59 System.out.print(" "); 60 } 61 } 62 System.out.println(); 63 } 64 } 65 } 66 67