编译程序的目标代码都包括,编译原理 输出目标代码的形式有哪些

1,编译原理 输出目标代码的形式有哪些实现编译器专业编译器(为某一种用途所设计的语言,比如税务)计算思维(编译原理很好的反映了计算机特点)如何学记笔记勤思考:每个部分 解决什么问题什么叫编译程序编译程序是系统软件中资格最老的我可以传给你·但你要先加分给我
2,C语言程序编译后产生哪些类型的文件这些文件的作用是什么123456不同的系统 , 产生的文件不一样;win:->.obj目标文件->.obj目标文件 ->.exe可执行文件 ->.rc。。。。
3,编译程序把源代码编译为的目标代码是什么代码是不是汇编这个问题比较复杂,其实来说,编译器可以翻译高级语言为任何低级语言或机器语言 。像JAVA,.NET的编译器是编译结果是中间代码(可以理解为一种低级语言) , 由相应解释器执行;像C之类的编译以后可以是根据不同平台相应的机器码,就是01组成的编码,由对应平台的计算机直接执行;除此以外 , gcc等也可以将C编译为汇编输出!建议学习《编译原理》这门课程,你会有更深的理解 。像JAVA,.NET的编译是伪编译 。像C之类的编译以后是机器码,就是01010101这类的编码 , 计算机可以直接执行!【编译程序的目标代码都包括,编译原理 输出目标代码的形式有哪些】
4,代码都有什么代码 code A.一组有序的数字或字母的排列,是代表客观实体及其属性的符号 。B.记录计算机程序的符号 。代码设计的原则包括惟一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等 。1.理论上的概念 源代码是相对目标代码和可执行代码而言的 。源代码就是用汇编语言和高级语言写出来的地代码 。目标代码是指源代码经过编译程序产生的能被cpu直接识别二进制代码 。可执行代码就是将目标代码连接后形成的可执行文件,当然也是二进制的 。2.最直观的概念 在这个网页上右键鼠标,选择查看源文件.出来一个记事本,里面的内容就是此网页的源代码. =================================================== 关于两者的区别联系: 1.从字面意义上来讲,源文件是指一个文件,指源代码的集合.源代码则是一组具有特定意义的可以实现特定功能的字符(程序开发代码). 2."源代码"在大多数时候等于"源文件". 枫舞在上面说过"2.最直观的概念 在这个网页上右键鼠标,选择查看源文件.出来一个记事本,里面的内容就是此网页的源代码."这句话就体现了他们的关系,此处的源文件是指网页的源文件,而源代码就是源文件的内容,所以又可以称做网页的源代码..5,编译程序分为哪几个主要部分1、词法分析词法分析的任务是对由字符组成的单词进行处理 , 从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序 。执行词法分析的程序称为词法分析程序或扫描器 。2、语法分析编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序 , 按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位 。3、中间代码生成中间代码是源程序的一种内部表示,或称中间语言 。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确 , 特别是可使目标代码的优化比较容易实现 。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间 。4、代码优化代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码 。所谓等价,是指不改变程序的运行结果 。所谓有效,主要指目标代码运行时间较短 , 以及占用的存储空间较小 。这种变换称为优化 。5、目标代码生成目标代码生成是编译的最后一个阶段 。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码 。扩展资料:特点数据结构分析和综合时所用的主要数据结构,包括符号表、常数表和中间语言程序 。符号表由源程序中所用的标识符连同它们的属性组成 。其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等),以及目标程序所需的其他信息 。常数表由源程序中用的常数组成,其中包括常数的机内表示,以及分配给它们的目标程序地址 。分析部分源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的 。词法分析由词法分析程序(又称为扫描程序)完成 。其任务是识别单词(即标识符、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表,以及将源程序换码为编译程序易于分析和加工的内部形式 。参考资料来源:百度百科-编译程序编译前端主要包括词法分析、语法分析、语义分析、中间代码生成这几个部分,后端则包含代码优化和目标代码生成部分 。前端的特点是仅与编译的源语言有关 , 而后端则仅与编译的目标语言及运行环境有关 。将编译过程划分成前端和后端,主要目的是在多...6,编译程序包括哪几个主要组成部分一个典型的编译系统通常组成部分:词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、表格管理程序、出错处理程序 。各部分的主要功能:词法分析:从左到右一个一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词 。语法分析:在词法分析的基础上将单词序列分解成各类语法短语 。语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息 。中间代码生成:在语法分析和语义分析的工作之后,有的编译程序将源程序变成一种内部表示形式 , 这种内部表示形式叫做中间语言或中间代码 。代码优化:对前一阶段产生的中间代码进行变换或进行改造,使生成的目标代码更为高效 , 即省时间和省空间 。目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码 。表格管理:编译程序在工作过程中需要保持一些列的表格,以登记源程序的各类信息和编译各阶段的进展情况 。出错处理:编译过程中发现源程序有错误,编译程序应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围 , 使得源程序的其余部分可以继续被编译下去,有些编译程序还能自动校正错误 。数据结构分析和综合时所用的主要数据结构 , 包括符号表、常数表和中间语言程序 。符号表由源程序中所用的标识符连同它们的属性组成,其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等) , 以及目标程序所需的其他信息 。常数表由源程序中用的常数组成,其中包括常数的机内表示,以及分配给它们的目标程序地址 。中间语言程序是将源程序翻译为目标程序前引入的一种中间形式的程序 , 其表示形式的选择取决于编译程序以后如何使用和加工它 。常用的中间语言形式有波兰表示、三元组、四元组以及间接三元组等 。分析部分源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的 。词法分析由词法分析程序(又称为扫描程序)完成,其任务是识别单词(即标识符、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表 , 以及将源程序换码为编译程序易于分析和加工的内部形式 。语法分析程序是编译程序的核心部分,其主要任务是根据语言的语法规则,检查源程序是否合乎语法 。如不合乎语法 , 则输出语法出错信息;如合乎语法,则分解源程序的语法结构,构造中间语言形式的内部程序 。语法分析的目的是掌握单词是怎样组成语句的,以及语句又是如何组成程序的 。语义分析程序是进一步检查合法程序结构的语义正确性,其目的是保证标识符和常数的正确使用 , 把必要的信息收集和保存到符号表或中间语言程序中,并进行相应的语义处理 。综合部分综合阶段必须根据符号表和中间语言程序产生出目标程序,其主要工作包括代码优化、存储分配和代码生成 。代码优化是通过重排和改变程序中的某些操作 , 以产生更加有效的目标程序 。存储分配的任务是为程序和数据分配运行时的存储单元 。代码生成的主要任务是产生与中间语言程序符等价的目标程序,顺序加工中间语言程序,并利用符号表和常数表中的信息生成一系列的汇编语言或机器语言指令 。结构 编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、 语义分析、 代码优化、存储分配和代码生成等六个相继的逻辑步骤 。这六个步骤只表示编译程序各部分之间的逻辑联系,而不是时间关系 。编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行 。在确定编译程序的具体结构时,常常分若干遍实现 。对于源程序或中间语言程序,从头到尾扫视一次并实现所规定的工作称作一遍 。每一遍可以完成一个或相连几个逻辑步骤的工作 。例如,可以把词法分析作为第一遍;语法分析和语义分析作为第二遍;代码优化和存储分配作为第三遍;代码生成作为第四遍 。反之,为了适应较小的存储空间或提高目标程序质量,也可以把一个逻辑步骤的工作分为几遍去执行 。例如,代码优化可划分为代码优化准备工作和实际代码优化两遍进行 。一个编译程序是否分遍,以及如何分遍,根据具体情况而定 。其判别标准可以是存储容量的大小、源语言的繁简、解题范围的宽窄,以及设计、编制人员的多少等 。分遍的好处是各遍功能独立单纯、相互联系简单、逻辑结构清晰、优化准备工作充分 。缺点是各遍之中不可避免地要有些重复的部分,而且遍和遍之间要有交接工作,因之增加了编译程序的长度和编译时间 。一遍编译程序是一种极端情况 , 整个编译程序同时驻留在内存,彼此之间采用调用转接方式连接在一起(图2) 。当语法分析程序需要新符号时,它就调用词法分析程序;当它识别出某一语法结构时,它就调用语义分析程序 。语义分析程序对识别出的结构进行语义检查,并调用“存储分配”和“代码生成”程序生成相应的目标语言指令 。随着程序设计语言在形式化、结构化、直观化和智能化等方面的发展 , 作为实现相应语言功能的编译程序,也正向自动程序设计的目标发展,以便提供理想的程序设计工具 。参考书目陈火旺、钱家骅、孙永强编:《编译原理》 , 国防工业出版社,北京,1980

    推荐阅读