什么是源程序和目标程序

什么是源程序和目标程序,第1张

程序也叫源码,就是最开始编写的程序,计算机并不能识别,需要经过编译生成目标程序。

目标程序是能够被计算机识别执行的,比如我们在网上下载的软件,例如QQ,迅雷,这一类软件都是目标程序,都是经过编译的,商业公司一般不会发布源码,源码涉及到商业机密。

大家可以看看下面对两者的区分:

1 源程序,是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。通常由高级语言编写。源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”。

2 目标程序,又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。

编译程序有哪些主要构成成分它们各自的主要功能是什么

数据结构

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

常数表和中间语言程序。

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

们的属性组成,

其中属性包括种类

(如变量、

数组、

结构、

函数、

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

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

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

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

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

的程序,

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

它。

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

三元组、

四元组以及间接

三元组等。

分析部分

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

义分析三个步骤实现的。

词法分析由词法分析程序

(又称为扫描

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

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

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

语法分析程序是

编译程序的核心部分,

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

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

如不合乎语法,

则输出语法出错信息;

合乎语法,

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

构造中间语言形式的内部

程序。

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

以及语句

又是如何组成程序的。

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

的语义正确性,

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

把必要

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

并进行相应的语

义处理。

综合部分

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

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

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

以产生更加有效

的目标程序。

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

单元。

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

程序,

顺序加工中间语言程序,

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

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

结构

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

并进一步划分为

词法分析、语法分析、

语义分析、

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

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

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

之间的逻辑联系,

而不是时间关系。

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

逻辑步骤顺序地执行,

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

在确定

编译程序的具体结构时,

常常分若干遍实现。

对于源程序或中间

语言程序,

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

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

例如,

可以把词

法分析作为第一遍;

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

代码优化

和存储分配作为第三遍;

代码生成作为第四遍。

反之,

为了适应

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

也可以把一个逻辑步骤的

工作分为几遍去执行。

例如,

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

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

一个编译程序是否分遍

,

以及如何分遍

,

根据具体情况而定。

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

源语言的繁简、

解题范围的

宽窄,

以及设计、

编制人员的多少等。

分遍的好处是各遍功能独

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

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

而且遍和遍之间要

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

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

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

,

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

(

2)

。当语法分析

程序

c编译程序是什么?

D

编译程序

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

实在不明白用排除法

编译程序是什么意思啊

你是想知道这个概念的意思么,有点笼统不好给你讲的。你说的编译程序是编程么,编程就是驾驭机器

编译程序是什么意思?编译是什么意思?

把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。

目前最常用的作C语言编译程序的软件是什么

如果你用Turbo C的话,不需要太高配置,基本的DOS能跑的系统他就能跑。

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

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

其次,还有个GCC编译器,可以下载一个环境,配置一下,这是LINUX下的C编译器,效率很高,而且出来的OBJ没有垃圾数据,推荐,这个跟TC环境差不多

目前主流的C语言编译软件是什么

vc++ 60比较老 但是适合初学者学习 初学者足够了

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

eclipse 也可以 不过不太常用

如果是初学者建议 vc++60 或者 vs 2012

编译程序的优点是什么啊?解释程序的优点又是什么?

5、编译程序和解释程序

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

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

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

(2)编译方式:翻译成目标程序,然后运行目标程序 特点:快,但占用空间大 (考点)

编译软件具体是什么啊?为属于系统软件啊

以上回答是什么乱七八糟的水平!

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

没有为什么,这就是个定义。规定就是这样。原因我想可能是因为这些软件都没有特定的应用吧。。都是为了辅助其它应用软件而存在。所以定义为系统软件。

编译原理---程序执行的两种方式是什么

解释执行和编译执行,前者过程简单,后者执行速度快

能将高级语言编写的源程序转换为目标程序的是相应的高级语言编译程序。

编译程序,把用高级程序设计语言或计算机汇编语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。

首先它们都是翻译程序,其主要区别是:解释程序在翻译源程序时是一句一句的读入,一句句的解释和执行,当前语句的执行情况取决于前一句语句解释后的语言 *** 作;编译程序是将源程序直接翻译为目标程序,然后再执行目标程序的,其中,目标程序可以是机器语言或汇编语言。

1、词法分析

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

2、语法分析

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

3、中间代码生成

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

4、代码优化

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

5、目标代码生成

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

扩展资料:

编译程序把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。

编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。

但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。

参考资料来源:百度百科-编译程序

源程序一般是指该程序的源代码形式(能通过编译、链接生成最终程序(一般是可执行文件)的源代码文件)。

目标程序一般是指从源代码编译、链接生成的最终程序(一般是可执行文件)。

计算机程序的执行方式与平台有关,不太清楚楼主想问的到底是什么。

程序的编辑一般是指编辑、修改程序的源代码。

程序的编译一般是指用编译器将源代码文件编译生成供链接用的文件或可执行文件的过程。

程序的链接一般是指用链接器将链接文件(编译生成的链接文件、链接库等)生成最终的目标程序的过程。

程序的运行一般是指将程序装入内存执行的过程。

以上就是关于什么是源程序和目标程序全部的内容,包括:什么是源程序和目标程序、编译程序都有哪些、能将高级语言编写的源程序转换为目标程序的是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9344759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存