高级语言编译器
① 用于高级语言的编译程序有哪两种
用于高级语言的编译程序有两种:编译程序和链接程序。
以c语言为例,编译器是cc,可能链接程序就是link。
二者作用是不同的,编译器是把源程序翻译成符号语言,链接程序把来自不同源文件的多个程序整合起来,形成最终的可执行程序。
C++的编译系统沿用了C语言。其他语种,如PASCAL,DELPHI,C#,OBJECT-C,本质上没发生变化
高级语言本身分成两类,编译型和解释性的,编译型的就是上面的类型,解释型的,如BASIC,java,
PHP,
PYTHON等,是不需要编译的,可以直接根据源代码(或中间代码)直接翻译到操作系统上。
② 高级语言,中的编译器,是什么作用形象比喻下。。一种协议,
编译器,是把源代码编译成汇编等的低级代码的工具~(很多时候还需经过连接才能变成机器码!)就像是把英语翻译成普通话的人。(要记录下来,还需把普通话变成中文字写下来)
③ C语言编译器有哪些各有什么特点
C语言编译器目前主要有VC++、dev-C++、C-Free、win-TC、TC 2.0等等。
其中比较经典的VC++,微软的产品,编译器,链接器,运行,调试等功能于一体的强大开发工具,特点是功能十分强大,对于新手来说需要一段时间去摸索。
dev-C++是windows下一款开发c/c++的开发环境,使用gcc为编译器,遵循标准,功能比较强大,语法高量,可以进行单步调试(这对排除错误很重要),进行断点设置等功能,遵循C标准,是一款很强大的开发工具。
C-Free是一款支持多种编译器的专业化C/C++集成开发环境(IDE)。利用C-Free,使用者可以轻松地编辑、编译、连接、运行、调试C/C++程序。
TC 2.0:Borland公司的产品,在dos界面下编译运行,小巧、灵活,但是不能使用鼠标。
win-TC:在tc2.0的基础上加上了界面,能够使用鼠标,具有语法高量,可以嵌入汇编等特点,对新手一些,拜托了不能用鼠标的困难。
编译器,简单讲,就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)。
④ 为什么高级语言编程需要编译器
语言是人定义的,举个简单的例子
你创造个编译器定义语句
“我实现A+B”,在编译器里面你事先定义了这个句子等价于C语言的
int
C=A
+
B;再由C语言通过类似的方法转换成汇编语言,这样就把高级语言一步步处理成计算机能执行的每步。打个比方。一栋房子很高,顶楼就是高级语言,楼梯就是编译器,底层就是计算机能识别的操作。比如JAVA就是用C写的,其楼层比C高。一般来说,同等算法条件下C语言执行更快。关于楼梯的原理(编译器),你想了解的话你的看编译原理相关书籍,上面涉及很多数学知识,包括很多状态转化,词法分析,语义分析。比如int
C=A+B中如何识别INT是什么东西。“=”的意义等问题。说实话,如果你不是计算机专业,理解这个有困难的。对于一般人来说,不用从事相关工作的话,知道大概这个是干嘛的就行了。比如你盖个房子,你需要扳手,难道你要先学采铁矿学冶炼学制作扳手的方法?。。
⑤ 高级语言的编译系统是什么
编译器(Compiler)是一种计算机程序,它可以把一种计算机语言翻译成另一种计算机语言。编译器的输入叫做源代码,输出叫做目标代码。通常,编译器的输出往往能够被其它程序处理(例如链接器),不过也有些编译器输出可读的文本文件。
翻译源代码通常是为了创建可执行程序。“编译器”最初是指那些高级语言代码翻译成较低级语言(如汇编语言或机器码)的程序。把低级语言翻译成高级语言的程序叫做反编译器。
编译器通常需要进行这些操作:词法分析、预处理、解析、文法分析、代码生成以及代码优化。
⑥ 常见的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, 这些软件很受用户欢迎。
(6)高级语言编译器扩展阅读:
C编译的整个过程很复杂,大致可以分为以下四个阶段:
1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
3、汇编阶段将汇编语言翻译成机器指令。
4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
⑦ 计算机高级语言的编译程序属于什么类的
计算机高级语言的编译程序属于系统软件类。
编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
(7)高级语言编译器扩展阅读:
编译程序的功能
①语法检查:检查源程序是否合乎语法。如果不符合语法,编译程序要指出语法错误的部位、性质和有关信息。编译程序应使用户一次上机,能够尽可能多地查出错误。
②调试措施:检查源程序是否合乎设计者的意图。为此,要求编译程序在编译出的目标程序中安置一些输出指令,以便在目标程序运行时能输出程序动态执行情况的信息,如变量值的更改、程序执行时所经历的线路等。这些信息有助于用户核实和验证源程序是否表达了算法要求。
③修改手段:为用户提供简便的修改源程序的手段。编译程序通常要提供批量修改手段(用于修改数量较大或临时不易修改的错误)和现场修改手段(用于运行时修改数量较少、临时易改的错误)。
④覆盖处理:主要是为处理程序长、数据量大的大型问题程序而设置的。基本思想是让一些程序段和数据公用某些存储区,其中只存放当前要用的程序或数据;其余暂时不用的程序和数据,先存放在磁盘等辅助存储器中,待需要时动态地调入。
⑤目标程序优化:提高目标程序的质量,即占用的存储空间少,程序的运行时间短。依据优化目标的不同,编译程序可选择实现表达式优化、循环优化或程序全局优化。目标程序优化有的在源程序级上进行,有的在目标程序级上进行。
⑥不同语言合用:其功能有助于用户利用多种程序设计语言编写应用程序或套用已有的不同语言书写的程序模块。最为常见的是高级语言和汇编语言的合用。
⑧ 高级语言经过编译器之后的处理
假设你的程序有两种源代码,一种是C语言写的,一种是java写的,现在要发布到这几个平台上:
1、Windows 7/xp/vista...
2、Linux RedHat/Fedora/Unbutu...
3、Symbian S60/S50(手机)
那么源程序如果是C语言的,需要找下面的工具:
1、VC60/VS2008,负责编译生成VISTA/XP/WIN7用的.exe文件
2、G++,负责编译生成Linux用的可执行程序
3、Symbian用的C++编译器,不说也罢
如果源程序是JAVA语言的,那么需要做的仅仅是用javac编译、jar打包,然后:
1、确保目标WIN7/XP/VISTA安装了java虚拟机
2、确保目标LINUX安装了java虚拟机
3、确保目标手机Symbian系统已安装了支持同版本的java虚拟机
看明白没有?C语言编译器是直接把源程序一步翻译为目标计算机(16位,32位,64位)的指定芯片(X86或ALPHA PPC,RISC)、指定操作系统(WINDOWS,DOS,LINUX,SYMBIAN)用的特定可执行程序目标码,
而JAVA编译器是把程序翻译为中间码,由虚拟机将中间码解释为最终的指定芯片、指定操作系统的可执行程序目标码
严格来说,C和C++、JAVA都是跨平台的,但C#肯定不是,至少目前还没有人在LINUX上做C#的实现。
不同的是,C和C++是通过不同平台上的不同编译器实现跨平台
JAVA是通过不同平台的不同虚拟机实现跨平台
这样说你看懂了没有?