导航:首页 > 源码编译 > 编译程序算法设计

编译程序算法设计

发布时间:2024-03-27 09:07:24

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

编译程序(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]={''},

token[8];/*存放构成单词符号的字符串*/

charch;

intsyn,/*存放单词字符的种别码*/

n,

sum,/*存放整数型单词*/

m,p;/*p是缓冲区prog的指针,m是token的指针*/

char*rwtab[6]={"begin","if","then","while","do","end"};

voidscaner(){

m=0;

sum=0;

for(n=0;n<8;n++)

token[n]='';

ch=prog[p++];

while(ch=='')

ch=prog[p++];

if(isalpha(ch))/*ch为字母字符*/{

while(isalpha(ch)||isdigit(ch))/*ch为字母字符或者数字字符*/{

token[m++]=ch;

ch=prog[p++];}

token[m++]='';

ch=prog[p--];

syn=10;

for(n=0;n<6;n++)

if(strcmp(token,rwtab[n])==0)/*字符串的比较*/{

syn=n+1;

break;}}

else

if(isdigit(ch))/*ch是数字字符*/{

while(isdigit(ch))/*ch是数字字符*/{

sum=sum*10+ch-'0';

ch=prog[p++];}

ch=prog[p--];

syn=11;}

else

switch(ch){

case'<':m=0;token[m++]=ch;ch=prog[p++];

if(ch=='>'){

syn=21;

token[m++]=ch;}

elseif(ch=='='){

syn=22;

token[m++]=ch;}

else{

syn=20;

ch=prog[p--];}

break;

case'>':m=0;token[m++]=ch;ch=prog[p++];

if(ch=='='){

syn=24;

token[m++]=ch;}

else{

syn=23;

ch=prog[p--];}

break;

case':':m=0;token[m++]=ch;ch=prog[p++];

if(ch=='='){

syn=18;

token[m++]=ch;}

else{

syn=17;

ch=prog[p--];}

break;

case'+':syn=13;token[0]=ch;break;

case'-':syn=14;token[0]=ch;break;

case'*':syn=15;token[0]=ch;break;

case'/':syn=16;token[0]=ch;break;

case'=':syn=25;token[0]=ch;break;

case';':syn=26;token[0]=ch;break;

case'(':syn=27;token[0]=ch;break;

case')':syn=28;token[0]=ch;break;

case'#':syn=0;token[0]=ch;break;

default:syn=-1;}}

main()

{

printf(" Thesignificanceofthefigures: "

"1.figures1to6saidKeyword "

"2. "

"3.figures13to28saidOperators ");

p=0;

printf(" pleaseinputstring: ");

do{

ch=getchar();

prog[p++]=ch;

}while(ch!='#');

p=0;

do{

scaner();

switch(syn){

case11:printf("(%d,%d) ",syn,sum);break;

case-1:printf(" ERROR; ");break;

default:printf("(%d,%s) ",syn,token);

}

}while(syn!=0);

getch();

}

程序测试结果

对源程序beginx:=9:ifx>9thenx:=2*x+1/3;end#的源文件,经过词法分析后输出如下图5-1所示:

具体的你在修改修改吧

Ⅳ 什么是程序什么是程序设计

1、计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。

它以某些程序设计语言编写,运行于某种目标结构体系上。打个比方,程序就如同以英语(程序设计语言)写作的文章,要让一个懂得英语的人(编译器)同时也会阅读这篇文章的人(结构体系)来阅读、理解、标记这篇文章。

一般的,以英语文本为基础的计算机程序要经过编译、链接而成为人难以解读,但可轻易被计算机所解读的数字格式,然后放入运行。

程序是一个指令序列。

2、程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员

(5)编译程序算法设计扩展阅读:

程序算法

算法是指对某些问题的严格的解释方法,一般的,一个算法拥有以下特点:

1、有穷性:算法必须保证在执行有限步骤后结束。

2、可行性:算法是确切可行的,即使在数学中,该算法可行,但若在实际应用中,程序不可以被执行,那么 ,该算法也是不具有可行性的。

3、确切性:算法的每一个步骤必须具有明确的意义。

4、输入:一个算法必须要有0个或多个输入。

5、输出:一个算法必须要有1个或多个输出。

Ⅵ 程序设计的基本过程是怎样的

从分析需求开始

Ⅶ 关于算法与程序设计

三类错误类型:编译错误,逻辑错误和运行错误
1. 编译错误
编译错误是指在程序编译过程中出现的错误。通常是由于不正确书写代码而产生的。 2. 运行错误�
运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。 3. 逻辑错误�
逻辑错误使程序运行时得不到预期的结果。这种程序没有语法错误,也能运行,但却得不到正确的结果。 32题应该就是txt(我试过可以打开) vbp和frm(这两个肯定有) 常见的程序设计语言 ActionScript APL、A+和J Ada 汇编语言 AWK Basic、Fortran VBScript Brainfuck C、C++ C# Clipper COBOL dBase PASCAL、Delphi Forth FoxPro F# Fava IDL Java JavaScript J# LISP Lua LOGO Mola Nuva Perl PHP PL/I Prolog Python R Ruby Scheme Smalltalk SQL Tcl/Tk Visual Basic Visual FoxPro XML 1 变量必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,且第一个字符必须是 英文字母,最后一个字符可以是类型说明符 2 变量名的有效字符为255个 3 不能用 Visual Basic 的保留字作为变量名,但可以把保留字嵌入变量名中。同时变量名也不能是末尾带有说明符的保留字 4 Visual Basic 不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义所以34题应选BC

阅读全文

与编译程序算法设计相关的资料

热点内容
哪里app可以上高中生物课 浏览:472
cad粗糙度快捷键命令大全 浏览:521
腾讯云服务器无法运行软件 浏览:342
奔跑吧哪个app 浏览:97
哪个app听音乐最好 浏览:281
考研英语2真题pdf 浏览:699
烟台编程积木教育环境好不好 浏览:214
python优秀代码 浏览:620
androidtop命令 浏览:455
你平时怎么排解压力 浏览:68
表格中的文件夹怎样设置 浏览:476
em78单片机 浏览:960
splitjava空格 浏览:248
电脑怎么谷歌服务器地址 浏览:515
nx自定义工具启动宏命令 浏览:101
程序员怎么解决无法访问互联网 浏览:303
java访问本地文件 浏览:747
瓦斯琪服务器怎么用 浏览:22
安卓主题用什么app 浏览:747
修改服务器pci地址空间 浏览:321