Ⅰ 编译程序是什么意思编译是什么意思
编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。
解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。
(1)编译程序算法设计扩展阅读:
结构:
编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、语义分析、代码优化、存储分配和代码生成等六个相继的逻辑步骤。这六个步骤只表示编译程序各部分之间的逻辑联系,而不是时间关系。
编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行。在确定编译程序的具体结构时,常常分若干遍实现。对于源程序或中间语言程序,从头到尾扫视一次并实现所规定的工作称作一遍。每一遍可以完成一个或相连几个逻辑步骤的工作。
可以把词法分析作为第一遍;语法分析和语义分析作为第二遍;代码优化和存储分配作为第三遍;代码生成作为第四遍。反之,为了适应较小的存储空间或提高目标程序质量,也可以把一个逻辑步骤的工作分为几遍去执行。
Ⅱ 编译程序的作用
编译程序的作用是:将高级语言源程序翻译成目标程序。
编译程序是一种动作,是根据编译原理技术,由高级程序设计语言编译器翻译成机器语言二进制代码行为。编译程序是动名词,特指生成编译器的软件程序。编译程序是把用高级程序设计语言或计算机汇编语言写的源程序,翻译成机器语言格式目标程序的翻译程序。
属于采用生成性实现途径实现的翻译程序。编译程序以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出;编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
编译程序的算法
编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。
但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。
Ⅲ 请问程序设计的基本过程是怎样的
(1)分析需求:了解清楚程序应有的功能。
(2)设计算法:根据所需的功能,理清思路,排出完成功能的具体步骤,其中每一步都应当是简单的、确定的。这一步也被称为“逻辑编程”。
(3)编写程序:根据前一步设计的算法,编写符合C++语言规则的程序文本。
(4)输入与编辑程序:将程序文本输入到计算机内,并保存为文件,文件名后缀为“.cpp”。
至此,产生了完整的程序文本,被称为源程序或源代码。保存源程序的文件(例如前面的c:\student\ch1_01.cpp)称为源程序文件,简称源文件,文件名的后缀是“.cpp”。
(5)编译(Compile):把C++程序编译成机器语言程序。
编译产生的程序称为目标程序,目标程序被自动保存为文件,这一文件称为目标文件,文件名的后缀是“.obj”。
VC++进行编译的依据是源程序,如果源程序中的符号、词语、整体结构等有差错,超出了VC++的“理解能力”,VC++就无法完成编译,这样的差错称为语法错误。一旦发现语法错误,VC++就不生成目标文件,并在窗口下方列出错误;如果没有语法错误,则显示“0 error(s)”,并生成目标文件,允许继续进行后面的步骤。
编译没有出现错误,仅仅说明程序中没有语法错误。
(6)生成执行程序:从目标文件进一步连接生成Windows环境下的可执行文件,即文件名后缀为“.exe”的文件。
由于可执行文件是由若干个文件拼接而成的,其中不但有目标文件,还有另一些标准的库文件,一些规模较大的程序还会有多个目标文件,所以这一步骤又被称为连接(Link)。
(7)运行:在Windows环境中使用可执行文件。这是程序设计的最终目的。这一步也常被称为“Run”。
逻辑错误:算法错,或算法在转变为程序时走样了,导致程序能够运行,却不能实现预想的功能。这种错误被称为“逻辑错误”。
在运行这一步,必须核对程序是否正确实现了预定的功能,如果功能不对,还必须到程序中寻找错误,纠正后再次经历(5)、(6)、(7)各步,直到看不出错误为止。
Ⅳ 编译原理课程设计-词法分析器设计(C语言)
#include"stdio.h"/*定义I/O库所用的某些宏和变量*/
#include"string.h"/*定义字符串库函数*/
#include"conio.h"/*提供有关屏幕窗口操作函数*/
#include"ctype.h"/*分类函数*/
charprog[80]={'