c语言编译器是一种(编译器的工作原理)

admin 219 0

大家好,今天给各位分享c语言编译器是一种的一些知识,其中也会对编译器的工作原理进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

一、常见的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协议发布。

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,这些软件很受用户欢迎。

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

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

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

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

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

参考资料来源:百度百科-gcc(GNU编译器套件)

参考资料来源:百度百科-Microsoft C

参考资料来源:百度百科-Turbo C

二、c语言编译程序属于应用软件,系统软件还是工具软件

编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。这里的编译程序是一种动作,是根据编译原理技术,由高级程序设计语言编译器翻译成机器语言二进制代码行为。因此它是系统软件。

计算机软件总体分为系统软件和应用软件两大类:系统软件是各类操作系统,如windows、Linux、UNIX等,还包括操作系统的补丁程序及硬件驱动程序,都是系统软件类。

应用软件可以细分的种类就更多了,如工具软件、游戏软件、管理软件等都属于应用软件类。电脑工具软件就是指在使用电脑进行工作和学习时经常使用的软件。

硬件有形,有色,有味,看得见,摸得着,闻得到。而软件无形,无色,无味,看不见,摸不着,闻不到。软件大多存在人们的脑袋里或纸面上,它的正确与否,是好是坏,一直要到程序在机器上运行才能知道。这就给设计、生产和管理带来许多困难。

软件是开发,它是人的智力的高度发挥,不是传统意义上的硬件制造。尽管软件开发与硬件制造之间有许多共同点,但这两种活动是根本不同的。

硬件产品允许有误差,而软件产品却不允许有误差。

硬件是要用旧用坏的,在理论上,软件是不会用旧用坏的,但在实际上,软件也会变旧变坏。因为在软件的整个生存期中,一直处于改变(维护)状态。

三、c语言是解释型语言吗

1、编程语言分为两大类:1-编译型语言;2-解释型语言。之前我们讲解过编译型语言。现在就来讲讲解释型语言

2、同学们可以继续与翻译进行类别,来理解“解释型语言”。之前说过,编译型语言是雇一个翻译,将你写的中文信全篇翻译成英文,然后交给美国总统阅读。而解释型语言则不同,更像是“同声传译”。

3、也就是说,解释型语言使用一个翻译站在你身边,你写出一句中文,它就直接翻译成英文给对方阅读。实际上,这个“翻译”是一种虚拟机。所谓虚拟机,也是一种程序,它帮你随时将编写的源代码翻译成计算机可以理解的机器语言,让计算机执行命令。而不需要产生中间的机器码文件。比如,“BASIC”语言就是一种解释型语言。

4、比如,你使用BASIC语言,想在屏幕上显示文本“Hello”。那么你可以先编写源代码文件,比如叫“hello.bas”,然后你可以直接将hello.bas文件送入虚拟机程序。然后虚拟机会直接帮你运行hello.bas(直接逐行解释你的源代码文件)。

5、解释型语言最大的特点就是不创建中间文件。

6、对于不同的系统适应性较好,同样的源代码,可以直接运行在不同的系统(当然,前提是在不同系统上安装好相应的虚拟机)。

7、逐行解释会导致程序运行速度不如编译型语言快。可以想象下,你讲中文时,说一句中文翻译翻译一句(解释型语言)的速度,显然比先把演讲稿翻译成全英文稿(编译型语言)要慢很多。

四、c语言属于一种机器语言吗

1、 c语言属于一种机器语言吗?

机器语言是直接用二进位制程式码指令表达的计算机语言,指令是用0和1组成的一串程式码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,C语言是一种计算机程式设计语言。它既有高阶语言的特点,又具有组合语言的特点。它可以作为系统设计语言,编写工作系统应用程式,也可以作为应用程式设计语言,编写不依赖计算机硬体的应用程式。因此,它的应用范围广泛。C语言要编译成机器语言才能被计算机识别执行

2、机器语言是直接用二进位制程式码指令表达的计算机语言,指令是用0和1组成的一串程式码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,C语言是一种计算机程式设计语言。它既有高阶语言的特点,又具有组合语言的特点。它可以作为系统设计语言,编写工作系统应用程式,也可以作为应用程式设计语言,编写不依赖计算机硬体的应用程式。因此,它的应用范围广泛。C语言要编译成机器语言才能被计算机识别执行

3、机器语言:是由二进位制程式码表示的指令系统的语言,是唯一能由计算机直接识别的语言。

4、组合语言:是符号化的机器语言,由与机器语言指令一一对应的符号指令和简单语法组成。组合语言需要经过汇编程式将其翻译成机器语言,才能被计算机识别。

5、高阶语言:是一种比较接近自然语言和数学表示式的一种计算机程式设计语言。一般用高阶语言编写的程式称为“源程式”,计算机不能识别和执行,要把用高阶语言编写的源程式翻译成机器语言,通常有编译和解释两种方式。

6、组合语言:组合语言是一种用于电子计算机、微处理器、微控制器或其他可程式设计器件的低阶语言,亦称为符号语言。在组合语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或运算元的地址。在不同的装置中,组合语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的组合语言和特定的机器语言指令集是一一对应的,因此不同平台之间不可直接移植。

7、组合语言不像其他大多数的程式设计语言一样被广泛用于程式设计。在今天的实际应用中,它通常被应用在底层,硬体操作和高要求的程式优化的场合。驱动程式、嵌入式作业系统和实时执行程式都需要组合语言。

8、机器语言:机器语言是用二进位制程式码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬体结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按著一种计算机的机器指令编制的程式,不能在另一种计算机上执行。

9、现代机器语言的踪迹已经近乎消失(主要用于编译器转码的过程中),取而代之的是组合语言。在组合语言中,各个指令都有对应的机器码,经过编译器的编译,汇编程式码被直接转换为了可以直接被CPU执行的机器语言。

10、 C语言:C语言是一门通用计算机程式语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低阶储存器、产生少量的机器码以及不需要任何执行环境支援便能执行的程式语言。尽管C语言提供了许多低阶处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程式可在许多电脑平台上进行编译。一些C语言程式码甚至可以直接移植到嵌入式处理器(微控制器)的平台。

11、三者之间的关系(从硬体层到软体层):机器语言-组合语言- C语言。

12、组合语言也是低阶语言。高阶语言是指C语言等接近自然语言的一类。

13、组合语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可程式设计器件的低阶语言,亦称为符号语言。在组合语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或运算元的地址。在不同的装置中,组合语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的组合语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

14、许多汇编程式为程式开发、汇编控制、辅助除错提供了额外的支援机制。有的组合语言程式设计工具经常会提供巨集,它们也被称为巨集汇编器。

15、组合语言不像其他大多数的程式设计语言一样被广泛用于程式设计。在今天的实际应用中,它通常被应用在底层,硬体操作和高要求的程式优化的场合。驱动程式、嵌入式作业系统和实时执行程式都需要组合语言。

16、机器语言是用二进位制程式码表示的计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬体结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按著一种计算机的机器指令编制的程式,不能在另一种计算机上执行。

17、一条指令就是机器语言的一个语句,它是一组有意义的二进位制程式码,指令的基本格式如,操作码栏位和地址码栏位,其中操作码指明了指令的操作性质及功能,地址码则给出了运算元或运算元的地址。

18、用机器语言编写程式,程式设计人员要首先熟记所用计算机的全部指令程式码和程式码的涵义。手程式设计序时,程式设计师得自己处理每条指令和每一资料的储存分配和输入输出,还得记住程式设计过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程式花费的时间往往是实际执行时间的几十倍或几百倍。而且,编出的程式全是些0和1的指令程式码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程式设计师已经不再去学习机器语言了。

19、高阶语言是指C语言等接近自然语言的一类。

20、以下属于高阶语言的有(b). a机器语言 b C语言 c以上都是 d组合语言

21、属于低阶语言——但这题出得太没水平,比较准确的说法是C/C++属于组合语言和高阶语言之间且比较靠近汇编的语言;特别是C,开发者的初衷就是代替组合语言的。

22、选C,组合语言就是把机器语言的二进位制程式码对应成汇编的符号,进行程式设计,所以,组合语言属于符号语言。

23、组合语言(AssemblyLanguage)是面向机器的程式设计语言

24、面向机器的低阶语言,通常是为特定的计算机或系列计算机

五、c语言是什么

1、C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

2、它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

3、因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。

4、语言特点:C是中级语言/C是结构式语言/C语言功能齐全/C语言适用范围大/简洁紧凑、灵活方便/运算符丰富/数据类型丰富/C是结构式语言/语法限制不太严格,程序设计自由度大/适用范围大,可移植性好。

六、c语言编译器是一种()

C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。

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

1、GNU Compiler Collection或称GCC

3、Borland Turbo C或称 Turbo C

这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。

好了,关于c语言编译器是一种和编译器的工作原理的问题到这里结束啦,希望可以解决您的问题哈!