当前位置:首页 » 编程软件 » 程序有特定的编译器吗

程序有特定的编译器吗

发布时间: 2022-07-24 01:31:43

① 应用程序有编译器吗

计算机上的应用程序是被编译过后的目标文件,直接执行的。
不过也有逐条编译执行的应用程序,如java的应用程序。

② 请问程序编译器是硬件还是软件

编译器是一种一应用软件,,你如编程技术好的话也可自己编一个自己专用的编译器,,,,,当然你既然在问这种问题就说明你没有这能力,,,

③ 在吗我需要那个编译器

编译器 编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。我们把一个程序写好,这时我们利用的环境是文本编辑器。这时我程序把程序称为源程序。在此以后程序员可以运行相应的编译器,通过指定需要编译的文件的名称就可以把相应的源文件(通过一个复杂的过程)转化为机器码了。 下面我们看看它是如何工作的。首先编译器进行语法分析,也就是要把那些字符串分离出来。然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。最后生成的是目标文件,我们也称为obj文件。再经过链接器的链接就可以生成最后的可执行代码了。有些时候我们需要把多个文件产生的目标文件进行链接,产生最后的代码。我们把一过程称为交叉链接。 有一个称为LCC的编译器,还挺不错的;还有一个用于分析其规则的小工具;

④ 新手问下 关于汇编

1汇编是什么?
c、basic,这些是高级语言,汇编是低级语言,电脑诞生初期,人们用01代码写程序,因为不便于记忆、纠错等,人们把01代码翻译成“助记符”,这就是汇编语言的由来。

2汇编是类似VC之类的程序开发平台么?还是程序语言?
汇编语言有类似vc的开发平台,而且还不少,但大多不实用,你学了汇编语言就知道怎么回事了。“汇编”是语言,vc是可视化开发平台。

3有特定编译器??
有,最常用的是masm,还有tasm也很好用,nasm可以使用在linux和windows两个平台,还有些其他的暂时不用管。(准确说这些都是开发平台,里面包含编译器、连接器等,书上都有说明)

4
要学汇编语言,看那些破解教程是没用的。破解软件不是一天就能学会的,莫在浮沙筑高台!为了破解而去学会编,最终不过是镜花水月。

5
最后介绍两本书,一本是清华大学出版社出的《汇编语言》,作者是王爽。学完这本你汇编就入门了;另一本是罗云彬写的《windows环境下32位汇编语言程序设计》,我正在看,是一本难得的好书。另外,在学汇编之前,最好能有一门高级语言基础。

学完这些再去看破解,你会觉得不过如此。祝你成功

http://www.win32asm.com.cn/list.asp?part1=4
这是罗云彬的网站,里面有编译器下载

⑤ 什么是编译器

编译器

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

[编辑]编译器工作方法
首先编译器进行语法分析,也就是要把那些字符串分离出来。然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。最后生成的是目标文件,我们也称为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),如何合并几句代码成一句等等。

⑥ 程序员都用什么编译器

您好
:程序语言有1500多种呢,每种都可能对应一个编译器.
我就为您列出几个常用的吧.
C,C++ 程序员一般使用 VC++
JAVA程序员 一般使用 eclipse或者myEclipse
AS程序员 一般使用 FD,FB,FLEX

如有疑问,请继续追问,谢谢

⑦ 在编写程序时要用到编译器,什么是编译器有什么用

VC Borland C Eclipse 都是编译器 就是把你的源代码 编译 解释成机器能读懂的机器码 因为机器内部是用二进制的嘛 所以最终也就是一串 1 0 组成的序列

⑧ 每一台计算机都有属于自己的编译器与程序吗

不同架构的CPU,所使用的汇编语言不同,编译器也就自然不同。
相同架构的CPU,汇编语法和支持的基础指令集都基本相通,在高级指令集的支持上可能不同。
同一型号的CPU当然汇编语法和支持的指令集都完全一样。

⑨ 电脑系统都自带有语言编译器吗

不是所有的系统都带. 很多linux都会带gcc, 以前的DOS和win98带qbasic,
现在的Windows基本没有带编译器,但是带有一些脚本解释器,包括javascript, vbscript
Windows vista带powershell解释器。
,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。

热点内容
成绩评选算法 发布:2025-02-06 11:42:51 浏览:994
数据库测试数据 发布:2025-02-06 11:31:05 浏览:821
球头轴编程 发布:2025-02-06 11:29:36 浏览:280
为什么安卓系统不能收缩权限 发布:2025-02-06 11:27:58 浏览:730
算法4视频 发布:2025-02-06 11:19:20 浏览:933
51内置声卡需要什么主机配置 发布:2025-02-06 11:18:33 浏览:838
防针刺伤的物品配置有哪些 发布:2025-02-06 11:11:25 浏览:670
游戏数据反编译 发布:2025-02-06 11:05:30 浏览:400
逍遥安卓在哪里下载的视频 发布:2025-02-06 10:50:42 浏览:877
上编程序 发布:2025-02-06 10:49:08 浏览:796