当前位置:首页 » 编程软件 » 计算机编译器的名词解释

计算机编译器的名词解释

发布时间: 2022-02-10 19:19:56

㈠ 计算机各种语言编译器怎么来的

大部分的语言编译器都是用C开发的(核心部分则可能用到汇编),这一点与操作系统的开发类似(比如linux或者Windows),后期的各种IDE或者软件部分可能用诸如C++、Delphi(这两个在linux上都有对应的版本)或者VB等等开发。

最初的汇编编译器当然是直接用二进制机器码开发的。“是不是这个编译器编写出的程序也必须在这个相应的操作系统上运行?”这个并不完全正确,有些语言是可以跨平台运行的的,比如JAVA,它的口号就是,“一次编译,到处运行”

㈡ 名词解释编译程序

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

㈢ 什么是编译器

编译器

编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。我们把一个程序写好,这时我们利用的环境是文本编辑器。这时我程序把程序称为源程序。在此以后程序员可以运行相应的编译器,通过指定需要编译的文件的名称就可以把相应的源文件(通过一个复杂的过程)转化为机器码了。

[编辑]编译器工作方法
首先编译器进行语法分析,也就是要把那些字符串分离出来。然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。最后生成的是目标文件,我们也称为obj文件。再经过链接器的链接就可以生成最后的可执行代码了。有些时候我们需要把多个文件产生的目标文件进行链接,产生最后的代码。我们把一过程称为交叉链接。

一个现代编译器的主要工作流程如下:

* 源程序(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)。

一般说来所有的编译器分析,优化,变型都可以分成两大类: 函数内(intraproceral)还是函数之间(interproceral)进行。很明显,函数间的分析,优化更准确,但需要更长的时间来完成。

编译器分析(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),如何合并几句代码成一句等等。

㈣ 编译器是什么

电脑是不会直接读取你的程序的,就算是汇编也不会,它只会读010101,而编译器就承担了把你的程序转换成二进制,也就是电脑看的懂得样子,有些编译器还允许设置中间语言,比如,我把c++的程序编译,中间语言是汇编语言,它会先转换成汇编语言,再转换成机器语言,不求采纳,点个赞就好了

㈤ 计算机编译器是什么,怎么用

计算机编译器可以说是计算机软件的生产工具,几乎所有的软件都是由编译器编译而成的。用的方法有两种,第一个种是集成在了开发环境里,第二种是用命令行编译。

㈥ 编译器是什么。

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语言编译器是什么

目前最流行的C语言编译器有以下几种:

1、GNU Compiler Collection 或称GCC

GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。

GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的着名例子,由自由软件基金会以GPL协议发布。

2、Microsoft C 或称 MS C

Microsoft C 是c语言的一种IDE(集成开发环境),常见的还有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或称 Turbo C

Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。

(7)计算机编译器的名词解释扩展阅读:

C编译的整个过程很复杂,大致可以分为以下四个阶段:

1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。

2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。

3、汇编阶段将汇编语言翻译成机器指令。

4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。

㈧ 代码名词解释

代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括惟一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。源代码是代码的分支,某种意义上来说,源代码相当于代码。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,它由通过编译器完成。
补充
在计算机中,代码是由计算机程序员开发软件或程序时使用的一套代码规范,这种工作称为编程,代码在计算机术语称为编程与语言,编程语言有很多种,较热门的操作系统程序语言有C、Pascal、Perl、Basic、C++、Java、Delphi、Python,在Web网页程序语言中有最基本的标记语言HTML,以及程序语言ASP(Active Server Page)、PHP(Hypertext Preprocessor)、JSP(Java Server Pages)、CGI(Common Gateway Interface)、ASP.NET等,还有一些辅助脚本语言,如CSS(CascadingStyle Sheets层叠样式表单)、XML(Extensible Markup Language)、VBScript(Visual Basic Script)、JavaScript等。

热点内容
我的世界ice服务器被炸罚款 发布:2025-01-11 21:54:36 浏览:722
linuxphpini配置 发布:2025-01-11 21:54:35 浏览:479
tp图片压缩 发布:2025-01-11 21:53:52 浏览:629
手柄怎么调节安卓模式 发布:2025-01-11 21:44:36 浏览:947
国产服务器搭建ftp 发布:2025-01-11 21:27:33 浏览:917
电脑系统哪个好用配置 发布:2025-01-11 21:26:04 浏览:140
交换机配置中web配置是什么意思 发布:2025-01-11 21:12:07 浏览:409
物资数据库 发布:2025-01-11 21:00:24 浏览:854
javastop 发布:2025-01-11 21:00:20 浏览:31
机械手臂用什么编程 发布:2025-01-11 20:55:32 浏览:592