当前位置:首页 » 编程软件 » 编译阶段的主要任务是

编译阶段的主要任务是

发布时间: 2022-02-24 19:18:00

1. c语言源程序的编译过程包括哪三个阶段

编译:将源程序转换为扩展名为.obj的二进制代码
连接:将obj文件进行连接,加入库函数等生成可执行文件
运行:执行可执行文件,有错返回修改,无错结束

2. 编译原理中词法分析和语法分析的任务分别是什么

在编译原理中,语法规则和词法规则不同之处在于:规则主要识别单词,而语法主要识别多个单词组成的句子。
词法分析和词法分析程序:
词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。
语法分析(Syntax analysis或Parsing)和语法分析程序(Parser)
语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.
语义分析(Syntax analysis)
语义分析是编译过程的一个逻辑阶段. 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查.语义分析将审查类型并报告错误:不能在表达式中使用一个数组变量,赋值语句的右端和左端的类型不匹配.

3. 编译程序包括哪几个主要组成部分

编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、语义分析、代码优化、存储分配和代码生成等六个相继的逻辑步骤。这六个步骤只表示编译程序各部分之间的逻辑联系,而不是时间关系。

编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行。在确定编译程序的具体结构时,常常分若干遍实现。对于源程序或中间语言程序,从头到尾扫视一次并实现所规定的工作称作一遍。每一遍可以完成一个或相连几个逻辑步骤的工作。

(3)编译阶段的主要任务是扩展阅读:

对于c编译程序来说,其语言的特点如下:

1、c语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护,而且表现能力和处理能力极强。

2、c语言具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。

3、由于c语言实现了对硬件的编程操作,因此集高级语言和低级语言的功能于一体。它既可用于系统软件的开发,也适合于应用软件的开发。

4、此外,c语言还具有效率高、可移植性强等特点。因此它广泛地移植到了各类各型计算机上,从而形成了多种版本。

4. 编译原理这科里词法分析器的主要任务是什么单词常分为哪几类识别出的单词在编译程序中如何表示

1、识别出源程序中的各个单词符号,并转换成内部编码形式
2、删除无用的空白字符回车字符以及其他非实质性字符
3、删除注释
4、进行词法检查,报告所发现的错误。

5. 请简述编译分为哪几个过程,它们的任务分别是什么

编译阶段也常常划分为两大步骤,分析步骤和综合步骤 分析步骤和综合步骤 分析步骤是指对源程序的分析 -线性分析(词法分析或扫描) -层次分析(语法分析) -语义分析 综合步骤是指后端的工作,为目标程序的生成而进行的综合

6. 编译过程分为哪几个阶段各阶段的遵循的原则、识别机构、使用的文法编译原理

编译原理中的遍概念
编译阶段也常常划分为两大步骤,分析步骤和综合步骤 分析步骤和综合步骤 分析步骤是指对源程序的分析 -线性分析(词法分析或扫描) -层次分析(语法分析) -语义分析 综合步骤是指后端的工作,为目标程序的生成而进行的综合

你分析过吗?若按照这种组合方式实现编译程序,可以设想,某一编译程序的前端加上相应不同的后 端则可以为不同的机器构成同一个源语言的编译程序。也可以设想,不同语言编译的前端生成同一种中间 语言,再使用一个共同的后端,则可为同一机器生成几个语言的编译程序。

一个编译过程可由一遍、两遍或多遍完成。所谓"遍",也称作"趟",是对源程序或其等价的中间语言程 序从头到尾扫视并完成规定任务的过程。每一遍扫视可完成上述一个阶段或多个阶段的工作。例如一遍可 以只完成词法分析工作;一遍完成词法分析和语法分析工作;甚至一遍完成整个编译工作。对于多遍的编 译程序,第一遍的输入是用户书写的源程序,最后一遍的输出是目标语言程序,其余是上一遍的输出为下 一遍的输入。

在实际的编译系统的设计中,编译的几个阶段的工作究竟应该怎样组合,即编译程序究竟分成几遍, 参考的因素主要是源语言和机器(目标机)的特征。比如源语言的结构直接影响编译的遍的划分;像 PL/1 或 ALGOL 68 那样的语言,允许名字的说明出现在名字的使用之后,那么在看到名字之前是不便为包含该名 字的表达式生成代码的,这种语言的编译程序至少分成两遍才容易生成代码。另外机器的情况,即编译程 序工作的环境也影响编译程序的遍数的划分。遍数多一点,整个编译程序的逻辑结构可能清晰些,但遍数 多即意味着增加读写中间文件的次数,势必消耗较多时间,一般会比一遍的编译要慢。

7. 编译程序分为哪几个主要部分

1、词法分析

词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

2、语法分析

编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。

3、中间代码生成

中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。

4、代码优化

代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。

5、目标代码生成

目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。



(7)编译阶段的主要任务是扩展阅读:

特点

数据结构分析和综合时所用的主要数据结构,包括符号表、常数表和中间语言程序。符号表由源程序中所用的标识符连同它们的属性组成。

其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等),以及目标程序所需的其他信息。常数表由源程序中用的常数组成,其中包括常数的机内表示,以及分配给它们的目标程序地址。

分析部分源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的。词法分析由词法分析程序(又称为扫描程序)完成。

其任务是识别单词(即标识符、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表,以及将源程序换码为编译程序易于分析和加工的内部形式。


8. 软件生命周期各阶段的任务是什么

软件生命周期各阶段的任务:

1、问题定义

确定好要解决的问题是什么(what),通过对客户的访问调查,系统分析员扼要的写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。

2、可行性研究

确定该问题是否存在一个可以解决的方案。可行性研究的结果是客户做出是否继续进行这项工程的决定的重要依据,一般来说,只有投资可能取得较大的效益的那些工程项目才值得继续进行下去。

3、需求分析

深入具体的了解用户的需求,在所开发的系统要做什么这个问题上和用户想法完全一致。明确目标系统必须做什么,确定目标系统必须具备哪些功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。用《规格说明书》记录对目标系统的需求。

4、概要设计(总体设计)

概括的说,应该怎样实现目标系统,设计出实现目标系统的几种可能方案,设计程序的体系结构,也就是确定程序由哪些模块组成以及模块之间的关系。

5、详细设计

实现系统的具体工作,编写详细规格说明,程序员可以根据它们写出实际的程序代码。详细设计也称模块设计,在这个阶段将详细的设计每个模块,确定实现模块功能所需的算法和数据结构。

6、软件维护

通过各种必要的维护活动使系统持久的满足用户的需求。主要分为 改正性维护、适应性维护、完善性维护、预防性维护。

(8)编译阶段的主要任务是扩展阅读

软件生存周期基线

1、功能基线(functional baseline)

功能基线是指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格说明;

或是由下级申请经上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。功能基线是最初批准的功能配置标识。

2、指派基线(allocated baseline)

指派基线是指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标识。

3、产品基线(proct baseline)

产品基线是指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标识。

9. 编译程序的工作过程

编译程序必须分析源程序,然后综合成目标程序。首先,检查源程序的正确性,并把它分解成若干基本成分;其次,再根据这些基本成分建立相应等价的目标程序部分。为了完成这些工作,编译程序要在分析阶段建立一些表格,改造源程序为中间语言形式,以便在分析和综合时易于引用和加工(图1)。
数据结构分析和综合时所用的主要数据结构,包括符号表、常数表和中间语言程序。符号表由源程序中所用的标识符连同它们的属性组成,其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等),以及目标程序所需的其他信息。常数表由源程序中用的常数组成,其中包括常数的机内表示,以及分配给它们的目标程序地址。中间语言程序是将源程序翻译为目标程序前引入的一种中间形式的程序,其表示形式的选择取决于编译程序以后如何使用和加工它。常用的中间语言形式有波兰表示、三元组、四元组以及间接三元组等。
分析部分源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的。词法分析由词法分析程序(又称为扫描程序)完成,其任务是识别单词(即标识符、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表,以及将源程序换码为编译程序易于分析和加工的内部形式。语法分析程序是编译程序的核心部分,其主要任务是根据语言的语法规则,检查源程序是否合乎语法。如不合乎语法,则输出语法出错信息;如合乎语法,则分解源程序的语法结构,构造中间语言形式的内部程序。语法分析的目的是掌握单词是怎样组成语句的,以及语句又是如何组成程序的。语义分析程序是进一步检查合法程序结构的语义正确性,其目的是保证标识符和常数的正确使用,把必要的信息收集和保存到符号表或中间语言程序中,并进行相应的语义处理。

热点内容
诈骗的脚本 发布:2025-01-16 23:51:27 浏览:314
电脑配置有点低怎么玩和平精英 发布:2025-01-16 23:46:14 浏览:818
ipfs分布式服务器是什么币种 发布:2025-01-16 23:32:29 浏览:991
android动态icon 发布:2025-01-16 23:03:12 浏览:605
优酷电脑缓存在哪 发布:2025-01-16 22:58:29 浏览:298
进口途锐哪个配置好 发布:2025-01-16 22:35:24 浏览:962
骨干路由器怎么配置 发布:2025-01-16 22:24:39 浏览:244
途安2021款买哪个配置 发布:2025-01-16 22:21:01 浏览:329
图片的压缩原理 发布:2025-01-16 22:17:15 浏览:493
云服务器本地电脑 发布:2025-01-16 22:17:04 浏览:961