坚持为客户提供有价值的服务和内容

代码的生成

商企云 | 2021-07-02 | 分享至:
北京网站建设里包括了代码,代码生成是把语法、语义分析后的中间结果(中同语言)转换成等价的目标程序或目的程序摸块的过程。词法分析、语法分析和语义分析一起称为编译系统的前端.属于分析部分。代码生成和码优化一起称为编译系统的后端,属于综合部分。中间结果是用三元式、四元式或逆波兰式等中间语育表示的程序。目标程序是用目标语言书写的;可以是机器语言、汇编语言乃至高级语言,随着计算机编译环境积执行环境的不断完善,不仅能产生可直接执行的目标程序,也能生成可再定位或可连接的目标程序模块.并最终通过连接装入程序构成可直接执行的目标程序。代码生成不但与编译环境有关.而且与运行环境有关。所有生成的目标程序成当符合连接装入所要求的规范。代码生成中存储分配和寄存器分配是直接影响目标程序功效的重要且复杂的问题,应给予足够的重视。
 
运行时存储空间组织与管理是一个复杂而十分重要的问题,首先要了解一个过程(procedure)静态源程序和它的目标程序在运行时的活动之间的关系。一个过程的活动指的是该过程的一次执行。为了管理过程在一次执行中所需要的信息.使用一个连续的存储块,我们把这样的一个连续存储块称为活动记录。活动记录中记录临时单元、内情向量、局部变量、形式单元、静态链、动态链和返回地址。
存储分田策略有三种:静态分配、栈式动态分配和堆式动态分配。栈(stack)是一个特定的存储区,它的一端是固定的,另端是浮动的.对这个存储区.所有的信息存入也称为堆阵式堆栈。栈的概念在编译技术和其他软件技术中被广泛应用。堆(heap)是一个特定的存储区.其分配使用方法是先把它成若干个长度可变的子存储区,有些用干存入数据.有些供自由使用.当创建一片数据时.便需从自由公用区中选出一个足够大自由区,把该数据存人。当该数据不再箭用时,便释放相应的存区.这佯的存储分配方式称为堆式分配。堆式分配适用干理序运中长度可变的数据.如USP语育中的表等.
代玛生成时,帝首先考虑奸相应干每个镣程序或中间捏序的句的目标程序结构,然后一对多地转换过去。其中还可能有些地事先不知道,可先待定,记下位置,拉上蛙,以后知泪了再回缀。为7生成更有效的目标代玛.还有一个要重点考虑的问题是女何更有效地利用寄存器。另外.地址计算、数组引用等也都有不同,就不在此逐一叙述。
扫二维码与项目经理沟通

7*24小时为您服务

解答:网站优化,网站建设,APP开发,小程序开发,H5开发,品牌推广,新闻推广,舆情监测等

  非常感谢您有耐心的读完这篇文章:"代码的生成",更多内容请继续浏览,我们将为您提供更多参考使用或学习交流的信息。我们还可为您提供:网站建设与开发网站优化品牌推广、APP开发、小程序开发新闻推广等服务,我们以“降低营销成本,提高营销效果”的服务理念,自创立至今,已成功服务过不同行业的1000多家企业,获得国家高新技术企业认证,且拥有14项国家软件著作权,将力争成为国内企业心目中值得信赖的互联网产品及服务提供商。如您需要合作,请扫码咨询,我们将诚挚为您服务。
我要咨询
姓名 :
电话 :
文章分类