第十一章编译系统和运行系统本章内容C语言编译系统-预处理器、编译器、汇编器、连接器-目标文件的格式、静态库、动态连接Java运行系统•无用单元收集(垃圾收集)引入本章的目的-掌握从源程序到可执行目标程序的实际处理过程-对实际参与软件开发是直接有用的c源程序可以分成若干个模块(文件)•分别进行预处理、编译和汇编、形成可重定位的目标文件•#if1intbuf[2];#elseintbuf[2]={10,20};#endifvoidswap();#defineAbuf[O]intmain(){scanf(”%d,%d”,buf,buf+1);swap();printf(”%d,%d”,A,buf[l]);return0;[2];int*bufpO=buf;int*bufpl;voidswap(){inttemp;bufpl=buf+1;temp=*bufpO;*bufp0=*bufpl;*bufpl=temp;}},将源程序文件翻译成一个ASCII中间文件,它是经修改后的源程序cpp实现以下功能-文件包含-宏展开-#if1intbuf[2];#elseintbuf[2]={10,20};#endifvoidswap();#defineAbuf[O]intmain(){scanf(”%d,%d”,buf,buf+1);swap();printf(”%d,%d”,A,buf[l]);return0;}#1“”(2)intbuf[2];(4)(5)⑹voidswap();(8)(9)intmain()一--、(10){scanf(,,%d,%d",buf,buf+1);swap();printf(M%d,%d",buf[O],...);return0;}•l产生汇编代码•最简单的汇编器对输入进行两遍扫描•例•L2::.L12:cmpl$0,-4(%ebp)$0,-8(%ebp)•p2align4,,7第一编扫描建立符号表,包括代码标号丄2、.L11等第二遍扫描依据符号表中的信息来产生可重定位代码
编译系统和运行系统 来自淘豆网www.taodocs.com转载请标明出处.