编译器包含硬件部分和软件部分
⑴ 编译器的组成及各部分的功能及作用
1. 词法分析 词法分析器根据词法规则识别出源程序中的各个记号(token),每个记号代表一类单词(lexeme)。源程序中常见的记号可以归为几大类:关键字、标识符、字面量和特殊符号。词法分析器的输入是源程序,输出是识别的记号流。词法分析器的任务是把源文件的字符流转换成记号流。本质上它查看连续的字符然后把它们识别为“单词”。 2. 语法分析 语法分析器根据语法规则识别出记号流中的结构(短语、句子),并构造一棵能够正确反映该结构的语法树。 3. 语义分析 语义分析器根据语义规则对语法树中的语法单元进行静态语义检查,如果类型检查和转换等,其目的在于保证语法正确的结构在语义上也是合法的。 4. 中间代码生成 中间代码生成器根据语义分析器的输出生成中间代码。中间代码可以有若干种形式,它们的共同特征是与具体机器无关。最常用的一种中间代码是三地址码,它的一种实现方式是四元式。三地址码的优点是便于阅读、便于优化。 5. 中间代码优化 优化是编译器的一个重要组成部分,由于编译器将源程序翻译成中间代码的工作是机械的、按固定模式进行的,因此,生成的中间代码往往在时间和空间上有很大浪费。当需要生成高效目标代码时,就必须进行优化。 6. 目标代码生成 目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:计算机的系统结构、指令系统、寄存器的分配以及内存的组织等。编译器生成的目标程序代码可以有多种形式:汇编语言、可重定位二进制代码、内存形式。 7 符号表管理 符号表的作用是记录源程序中符号的必要信息,并加以合理组织,从而在编译器的各个阶段能对它们进行快速、准确的查找和操作。符号表中的某些内容甚至要保留到程序的运行阶段。 8 出错处理用户编写的源程序中往往会有一些错误,可分为静态错误和动态错误两类。所谓动态错误,是指源程序中的逻辑错误,它们发生在程序运行的时候,也被称作动态语义错误,如变量取值为零时作为除数,数组元素引用时下标出界等。静态错误又可分为语法错误和静态语义错误。语法错误是指有关语言结构上的错误,如单词拼写错、表达式中缺少操作数、begin和end不匹配等。静态语义错误是指分析源程序时可以发现的语言意义上的错误,如加法的两个操作数中一个是整型变量名,而另一个是数组名等。
⑵ 请问程序编译器是硬件还是软件
编译器是一种一应用软件,,你如编程技术好的话也可自己编一个自己专用的编译器,,,,,当然你既然在问这种问题就说明你没有这能力,,,
⑶ 编译程序属于什么软件
编译程序是什么软件
看着问题,我就郁闷了,好吧,稍微普及下程序知识。
看你需要写的是什么程序,然后用什么语言对应的又语言编辑器。(这个编辑器可能就是你认为的软件了,其实不然,这个只是个工具比如txt是记事用的一样,)
如:C C++ C#这些是语言,算是高级语言了,他们一般用的编辑器是VS2010现在或者Tbc
java也是语言,是高级语言,编辑器一般也用VS2010,不过看个人习惯了,毕竟编辑器多了去了,有的插件少,有个功能强大,有的使用方便。
再如asp php 这些也是高级语言,用的编辑器就更普遍了 什么eclipse dw zend什么的多了去了,也是看个人习惯和喜好了,再者高级的程序猿都可以用txt编辑语言。
再如E语言 VB这些语言也有特定的编辑器,不过都不是死的,等你稍微了解里边东西多了,自然就明白这里是程序的世界,如果还有不明白的,可以追问,说出具体的你要编译的软件,再给你详细的说是用什么做的。
一般用到编译的大多存在于 VB E语言 C等等之类
另外语言的种类还有 其他很多种,详细的可以查阅!
编译程序,汇编程序属于什么软件?
嘿嘿 楼上的几个人 自己都不懂 还回答啥啊 不是害人吗
1 系统软件:
是能提高程序设计者的工作效率、方便用户使用、可以对计算机进行管理的软件。
包括:操作系统、监控软件、编译程序、,汇编程序、数据库、标准程序库。
因此 很明确编译程序,汇编程序属于系统软件。
2 只有为解决某一特殊问题而编写的程序才能叫应用软件。
哈哈 请为正确答案 选择满意回答 喽
高级程序语言的编译程序属于什么软件?
2
编译软件具体是什么啊?为属于系统软件啊
以上回答是什么乱七八糟的水平!
计算机常识,操作系统,数据库管理系统,编译软件都属于系统软件。
没有为什么,这就是个定义。规定就是这样。原因我想可能是因为这些软件都没有特定的应用吧。。都是为了辅助其它应用软件而存在。所以定义为系统软件。
什么是编译程序?
编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(1) 词法分析
词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
(2) 语法分析
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
(3) 中间代码生成
中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树。
(4) 代码优化
代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。
有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。
(5) 目标代码生成
目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:
① 可以立即执行的机器语言代码,所有地址都重定位;
② 待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;
③ 汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。
目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。...
现在最新的c语言编译软件是哪个?
GCC
毫无疑问,GCC几乎是unix及linux系统中最通用的编译器套件,几乎所有的linux发行版都预装了GCC作为C语言的默认编译器。除了对C语言的支持,GCC还支持C++、Objective-C等多种语言。GCC早在1987就由 Richard Stallman作为GNU计划的一部分发布。
Clang
Clang是近几年新兴的C/C++以及Objective-C的编译器,Apple是其主要投资者,其最初的开发者已加盟Apple。虽说是新兴,但其对C/C++标准的支持不亚于GCC等老牌编译器,并且外部接口和GCC完全兼容,并且因其模块化、错误提示完善等优点已经越来越受到重视。一些如FreeBSD等项目已将clang作为默认编译器。
c语言编译程序是不是系统软件?
系统软件贰就是计算机系统,如:windows系列,DOS、OS/2、UNIX、XENIX、LINUX、Netware等;
作用是维持计算机的正常运行;
编译软件是用于编译代码使用的,属于应用软件。
从程序语言上来说,汇编程序应该是最早也是最成熟的系统软件,
它直接利用计算机硬件的特点进行代码编译,
直接使用系统指令进行寻址,程序占用内存小,实现迅速。
C语言不能实现
c编译程序是什么?
D
编译程序
这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,鸡行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。
实在不明白用排除法
程序设计语言的编译程序属于系统软件还是应用软件。
编译程序与解释程序是属于语言处理系统,负责把高级语言转化成低级语言,语言处理系统是系统软件的一种,所以编译程序属于系统软件。而编程语言是用于开发各种软件包括系统软件的,所以编程语言是应用软件,比如说编译程序解释程序汇编程序是系统软件,而高级语言低级语言汇编语言是应用软件。
编译软件是什么
编译(pilation , pile)
1、利用编译程序从源语言编写的源程序产生目标程序的过程。
2、用编译程序产生目标程序的动作。
编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
详情去网络看看哈,地址:ke./view/69568
理解了编译,你自然就了解什么是编译软件咯.常用的很多,我推荐几个给你吧.
编译C:Turbo C 2.0、Turbo C 3.0
编译C\C++唬:VC6.0、winTC等
编译Java:eclipse(也可以直接配置好环境在DOS下编译运行)
⑷ 计算机软件着作权登记中的软、硬件环境;编程语言;源代码分别指的是什么 “代码最后一页是模块结尾”是
这几个问题 没有那么复杂,1.软件环境是指你申请的这个软件在电脑上运行的时候主要在那些软件上运行 如操作系统软件,数据库软件,服务器软件等 2.硬件环境是指你这个软件在运行的在电脑上对电脑的要求。主要写写 CPU。内存 分辨率。硬盘等其他的硬件 3.编程语言只指编写软件是 所用到的语言 如:C java 等语言 最后一页是你软件的代码结尾就行了
⑸ FPGA中软件编译器和硬件综合器区别是什么
软件编译器是把高级语言编译成可执行文件,比如二进制代码
典型编译器如C/C++编译器
硬件综合器是把RTL级别的硬件代码综合成网表文件。是一个具体优化+映射的过程,代表语言是verilog/VHDL,转换成网表netlist
⑹ c语言编译程序属于应用软件,系统软件还是工具软件
c语言编译程序属于系统软件。
编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。这里的编译程序是一种动作,是根据编译原理技术,由高级程序设计语言编译器翻译成机器语言二进制代码行为。因此它是系统软件。
计算机软件总体分为系统软件和应用软件两大类:系统软件是各类操作系统,如windows、Linux、UNIX等,还包括操作系统的补丁程序及硬件驱动程序,都是系统软件类。
应用软件可以细分的种类就更多了,如工具软件、游戏软件、管理软件等都属于应用软件类。电脑工具软件就是指在使用电脑进行工作和学习时经常使用的软件。
(6)编译器包含硬件部分和软件部分扩展阅读:
不同点
1、表现形式不同
硬件有形,有色,有味,看得见,摸得着,闻得到。而软件无形,无色,无味,看不见,摸不着,闻不到。软件大多存在人们的脑袋里或纸面上,它的正确与否,是好是坏,一直要到程序在机器上运行才能知道。这就给设计、生产和管理带来许多困难。
2、生产方式不同
软件是开发,它是人的智力的高度发挥,不是传统意义上的硬件制造。尽管软件开发与硬件制造之间有许多共同点,但这两种活动是根本不同的。
3、要求不同
硬件产品允许有误差,而软件产品却不允许有误差。
4、维护不同
硬件是要用旧用坏的,在理论上,软件是不会用旧用坏的,但在实际上,软件也会变旧变坏。因为在软件的整个生存期中,一直处于改变(维护)状态。
网络-计算机软件