编译程序都有哪些?

 我来答
新科技17
2022-09-26 · TA获得超过5816个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:71.6万
展开全部
编译程序有哪些主要构成成分?它们各自的主要功能是什么?
数据结构

分析和综合时所用的主要数据结构,包括符号表、

常数表和中间语言程序。

符号表由源程序中所用的标识符连同它

们的属性组成,

其中属性包括种类

(如变量、

数组、

结构、

函数、

过程等)、类型(如整型、实型、字符串、复型、标号等),以

及目标程序所需的其他信息。常数表由源程序中用的常数组成,

其中包括常数的机内表示,

以及分配给它们的目标程序地址。



间语言程序是将源程序翻译为目标程序前引入的一种中间形式

的程序,

其表示形式的选择取决于编译程序以后如何使用和加工

它。

常用的中间语言形式有波兰表示、

三元组、

四元组以及间接

三元组等。

分析部分

源程序的分析是经过词法分析、语法分析和语

义分析三个步骤实现的。

词法分析由词法分析程序

(又称为扫描

程序)完成,其任务是识别单词(即标识符、常数、保留字,以

及各种运算符、标点符号等)、造符号表和常数表,以及将源程

序换码为编译程序易于分析和加工的内部形式。

语法分析程序是

编译程序的核心部分,

其主要任务是根据语言的语法规则,

检查源程序是否合乎语法。

如不合乎语法,

则输出语法出错信息;



合乎语法,

则分解源程序的语法结构,

构造中间语言形式的内部

程序。

语法分析的目的是掌握单词是怎样组成语句的,

以及语句

又是如何组成程序的。

语义分析程序是进一步检查合法程序结构

的语义正确性,

其目的是保证标识符和常数的正确使用,

把必要

的信息收集和保存到符号表或中间语言程序中,

并进行相应的语

义处理。

综合部分

综合阶段必须根据符号表和中间语言程序产生

出目标程序,其主要工作包括代码优化、存储分配和代码生成。

代码优化是通过重排和改变程序中的某些操作,

以产生更加有效

的目标程序。

存储分配的任务是为程序和数据分配运行时的存储

单元。

代码生成的主要任务是产生与中间语言程序符等价的目标

程序,

顺序加工中间语言程序,

并利用符号表和常数表中的信息

生成一系列的汇编语言或机器语言指令。

结构

编译过程分为分析和综合两个部分,

并进一步划分为

词法分析、语法分析、

语义分析、

代码优化、存储分配和代码

生成等六个相继的逻辑步骤。

这六个步骤只表示编译程序各部分

之间的逻辑联系,

而不是时间关系。

编译过程既可以按照这六个

逻辑步骤顺序地执行,

也可以按照平行互锁方式去执行。

在确定

编译程序的具体结构时,

常常分若干遍实现。

对于源程序或中间

语言程序,

从头到尾扫视一次并实现所规定的工作称作一遍。



一遍可以完成一个或相连几个逻辑步骤的工作。

例如,

可以把词

法分析作为第一遍;

语法分析和语义分析作为第二遍;

代码优化

和存储分配作为第三遍;

代码生成作为第四遍。

反之,

为了适应

较小的存储空间或提高目标程序质量,

也可以把一个逻辑步骤的

工作分为几遍去执行。

例如,

代码优化可划分为代码优化准备工

作和实际代码优化两遍进行。

一个编译程序是否分遍

,

以及如何分遍

,

根据具体情况而定。

其判别标准可以是存储容量的大小、

源语言的繁简、

解题范围的

宽窄,

以及设计、

编制人员的多少等。

分遍的好处是各遍功能独

立单纯、相互联系简单、逻辑结构清晰、优化准备工作充分。缺

点是各遍之中不可避免地要有些重复的部分,

而且遍和遍之间要

有交接工作,因之增加了编译程序的长度和编译时间。

一遍编译程序是一种极端情况,

整个编译程序同时驻留在内



,

彼此之间采用调用转接方式连接在一起

(



2)

。当语法分析

程序......
c编译程序是什么?
D

编译程序

这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,鸡行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。

实在不明白用排除法
编译程序是什么意思啊
你是想知道这个概念的意思么,有点笼统不好给你讲的。你说的编译程序是编程么,编程就是驾驭机器
编译程序是什么意思?编译是什么意思?
把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。
目前最常用的作C语言编译程序的软件是什么?
如果你用Turbo C的话,不需要太高配置,基本的DOS能跑的系统他就能跑。

如果你用VC++6.0跑的话,那么最低也得赛扬II一级别,256M内存,然后WIN98系统,硬盘至少2G空间

如果你用Visual Studio200X跑的话,建议奔腾四的机器,而且内存要大,至少512M,XP环境,如果要加载SQL SERVER的话,内存还要更大,至少1G,否则服务挂不动,而且硬盘最好留5G空间,可以安装一些MSDN。方便查阅。

其次,还有个GCC编译器,可以下载一个环境,配置一下,这是LINUX下的C编译器,效率很高,而且出来的OBJ没有垃圾数据,推荐,这个跟TC环境差不多
目前主流的C语言编译软件是什么
vc++ 6.0比较老 但是适合初学者学习 初学者足够了

vs 2010 、vs 2012不错, 软件稍大,

eclipse 也可以 不过不太常用

如果是初学者建议 vc++6.0 或者 vs 2012
编译程序的优点是什么啊?解释程序的优点又是什么?
5、编译程序和解释程序

高级语言程序同样要翻译成二进制程序才能执行。

耿级语言的两种执行方式:

(1)解释方式:翻译一条,执行一条 特点:慢,但占空间小

(2)编译方式:翻译成目标程序,然后运行目标程序 特点:快,但占用空间大 (考点)
编译软件具体是什么啊?为属于系统软件啊
以上回答是什么乱七八糟的水平!

计算机常识,操作系统,数据库管理系统,编译软件都属于系统软件。

没有为什么,这就是个定义。规定就是这样。原因我想可能是因为这些软件都没有特定的应用吧。。都是为了辅助其它应用软件而存在。所以定义为系统软件。
编译原理---程序执行的两种方式是什么
解释执行和编译执行,前者过程简单,后者执行速度快
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式