编译器程序,什么可以将高级语言编写的源程序翻译成机器语言程序

1,什么可以将高级语言编写的源程序翻译成机器语言程序编译程序编译程序(Compiler , compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序 , 翻译成等价的机器语言格式目标程序的翻译程序 。编译程序属于采用生成性实现途径实现的翻译程序 。它以高级程序设计语言书写的源程序作为输入 , 而以汇编语言或机器语言表示的目标程序作为输出 。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果 。
2 , 什么是编译程序编译程序(Compiler , compiling program),也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序 。编译程序属于采用生成性实现途径实现的翻译程序 。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出 。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果 。编译程序的特点 编译程序必须分析源程序,然后综合成目标程序 。首先,检查源程序的正确性,并把它分解成若干基本成分;其次,再根据这些基本成分建立相应等价的目标程序部分 。为了完成这些工作,编译程序要在分析阶段建立一些表格 , 改造源程序为中间语言形式 , 以便在分析和综合时易于引用和加工 。
3,编译程序是什么软件看着问题,我就郁闷了,好吧,稍微普及下程序知识 。看你需要写的是什么程序,然后用什么语言对应的又语言编辑器 。(这个编辑器可能就是你认为的软件了 , 其实不然,这个只是个工具比如txt是记事用的一样,)如:CC++ C#这些是语言 , 算是高级语言了,他们一般用的编辑器是VS2010现在或者Tbcjava也是语言,是高级语言,编辑器一般也用VS2010,不过看个人习惯了,毕竟编辑器多了去了,有的插件少 , 有个功能强大,有的使用方便 。再如aspphp这些也是高级语言,用的编辑器就更普遍了什么eclipsedwzend什么的多了去了 , 也是看个人习惯和喜好了,再者高级的程序猿都可以用txt编辑语言 。再如E语言VB这些语言也有特定的编辑器,不过都不是死的,等你稍微了解里边东西多了,自然就明白这里是程序的世界,如果还有不明白的,可以追问,说出具体的你要编译的软件,再给你详细的说是用什么做的 。一般用到编译的大多存在于VBE语言C等等之类另外语言的种类还有 其他很多种,详细的可以查阅!编译程序可以有两种理解 。一、编译做动词,即把某个程序编译 。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0 。换句话说,就是一个翻译的过程,把我们认识的翻译成计算机硬件认识的语言 。从结果上看,就是把源文件.c/.h生成为目标文件.o或者是可执行文件.exe的一个操作 。所有的源文件必须经过编译才能运行 。二、用来执行编译过程的软件,被称为编译器,也叫编译程序 。目前流行的c语言编译程序有很多种 , 比如vc, vs, gcc等 。【编译器程序,什么可以将高级语言编写的源程序翻译成机器语言程序】
4,编译程序是什么意思编译是什么意思编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序 。解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码) 。扩展资料:结构:编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、语义分析、代码优化、存储分配和代码生成等六个相继的逻辑步骤 。这六个步骤只表示编译程序各部分之间的逻辑联系 , 而不是时间关系 。编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行 。在确定编译程序的具体结构时,常常分若干遍实现 。对于源程序或中间语言程序 , 从头到尾扫视一次并实现所规定的工作称作一遍 。每一遍可以完成一个或相连几个逻辑步骤的工作 。可以把词法分析作为第一遍;语法分析和语义分析作为第二遍;代码优化和存储分配作为第三遍;代码生成作为第四遍 。反之,为了适应较小的存储空间或提高目标程序质量,也可以把一个逻辑步骤的工作分为几遍去执行 。参考资料来源:百度百科-编译程序5,编译器是什么1、 visual c++6.0 (win8系统下不好用,C/C++)-Microsoft Visual C++ ;2、 visual studio (2005、2008、2010、2012、2013)- Microsoft Visual Studio ;3、 win-tc非常方便:不骗你,2000/XP/7都可以用 ;4、 Code::Blocks(win7、8都可以用); 5、 Turb C(只能编译C语言) ;6、 gcc(GNU编译器套件) ;7、 DEV C++; 8、 C-Free;9、 Borland C++、WaTCom C++、Borland C++ Builder、GNU DJGPP C++、Lccwin32 C Compiler3.1、High C、My Tc等,由于C语言比较成熟,所以编程环境很多; 10、还常用souceinsight ,在工作中还用Labwindows编程 , 直接调试运行,不过那是有工程背景,有工作经验的技术人员用的 。编译器就是将我们写的程序,比如用C, Jave, C++ , 汇编等语言写的程序,经过编译器的转换,把这些语言转换成计算机或者微型处理器能够识别的机器代码 , 它是由0和1以组成的序列,说白了 , 就是相当于英语翻译成中文的工具一样 。编译器是把高级语言转换成电脑可以识别运行的汇编语言的,以前编程都是机器语言,后来出现了高级语言,但是机器不能识别,可以进行转换的编译器就出世了 。可以把一个静态编译改成动态编译,编译改成静态编译,编译之后才可以在别的电脑上使用编辑软件的系统工具6,什么是编译器编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别 , 运行的低级机器语言的程序 。编译器将源程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序 。源程序一般为高级语言(High-level language),如Pascal,C++等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code) 。一个现代编译器的主要工作流程如下:源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables])工作原理 翻译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器言) 。然而 , 也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器 。也有从一种高级语言生成另一种高级语言的编译器 , 或者生成一种需要进一步处理的的中间代码的编译器(又叫级联) 。典型的编译器输出是由包含入口点的名字和地址以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件 。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的可执行程序 。编译器种类 编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码 , 这种编译器又叫做“本地”编译器 。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器 。交叉编译器在生成新的硬件平台时非常有用 。“源码到源码编译器”是指用一种高级语言作为输入,输出也是高级语言的编译器 。例如: 自动并行化编译器经常采用一种高级语言作为输入 , 转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语言构造进行注释(如FORTRAN的DOALL指令) 。预处理器(preprocessor) 作用是通过代入预定义等程序段将源程序补充完整 。编译器前端(frontend) 前端主要负责解析(parse)输入的源程序 , 由词法分析器和语法分析器协同工作 。词法分析器负责把源程序中的单词(Token)找出来,语法分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式,语句  , 函数等等 。例如“a = b + c;”前端词法分析器看到的是“a, =, b , +, c;”,语法分析器按定义的语法,先把他们组装成表达式“b + c”,再组装成“a = b + c”的语句 。前端还负责语义(semantic checking)的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理 。最终的结果常常是一个抽象的语法树(abstract syntax tree,或 AST) , 这样后端可以在次基础上进一步优化,处理 。编译器后端(backend) 编译器后端主要负责分析,优化中间代码(Intermediate representation)以及生成机器代码(Code Generation) 。一般说来所有的编译器分析 , 优化,变型都可以分成两大类: 函数内(intraprocedural)还是函数之间(interprocedural)进行 。很明显,函数间的分析,优化更准确 , 但需要更长的时间来完成 。编译器分析(compiler analysis)的对象是前端生成并传递过来的中间代码,现代的优化型编译器(optimizing compiler)常常用好几种层次的中间代码来表示程序,高层的中间代码(high level IR)接近输入的源程序的格式,与输入语言相关(language dependent) , 包含更多的全局性的信息 , 和源程序的结构;中层的中间代码(middle level IR)与输入语言无关,低层的中间代码(Low level IR)与机器语言类似 。不同的分析 , 优化发生在最适合的那一层中间代码上 。常见的编译分析有函数调用树(call tree),控制流程图(Control flow graph) , 以及在此基础上的 变量定义-使用,使用-定义链(define-use/use-define or u-d/d-u chain) , 变量别名分析(alias analysis),指针分析(pointer analysis),数据依赖分析(data dependence analysis)等等 。上述的程序分析结果是编译器优化(compiler optimization)和程序变形(compiler transformation)的前提条件 。常见的优化和变新有:函数内嵌(inlining),无用代码删除(Dead code elimination),标准化循环结构(loop normalization),循环体展开(loop unrolling),循环体合并 , 分裂(loop fusion,loop fission) , 数组填充(array padding),等等 。优化和变形的目的是减少代码的长度,提高内存(memory) , 缓存(cache)的使用率,减少读写磁盘,访问网络数据的频率 。更高级的优化甚至可以把序列化的代码(serial code)变成并行运算,多线程的代码(parallelized,multi-threaded code) 。机器代码的生成是优化变型后的中间代码转换成机器指令的过程 。现代编译器主要采用生成汇编代码(assembly code)的策略,而不直接生成二进制的目标代码(binary object code) 。即使在代码生成阶段 , 高级编译器仍然要做很多分析,优化,变形的工作 。例如如何分配寄存器(register allocatioin) , 如何选择合适的机器指令(instruction selection),如何合并几句代码成一句等等 。把文本形式程序代码编译成机器可以识别的代码的语言编译程序叫编译器

    推荐阅读