编译原理全部的名词解释

编译原理全部的名词解释,第1张

书上有别那么懒!.

编译过程的六个阶段:词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成

解释程序:把某种语言的源程序转换成等价的另一种语言程序——目标语言程序,然后再执行目标程序.解释方式是接受某高级语言的一个语句输入,进行解释并控制计算机执行,马上得到这句的执行结果,然后再接受下一句.

编译程序:就是指这样一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序(机器语言程序或汇编语言程序).

解释程序和编译程序的根本区别:是否生成目标代码

句子的二义性(这里的二义性是指语法结构上的.):文法G[S]的一个句子如果能找到两种不同的最左推导(或最右推导睁派),或者存在两棵不同的语法树,则称这个句子是二义性的.

文法的二义性:一个文法如果包含二义性的句子,则这个文法是二义文法,否则是无二义文法.

LL(1)的含义:(LL(1)文法是无二义的; LL(1)文法不含左递归)

第1个L:从左到右扫描输入串第2个L:生成的是最左推导

1 :向右看1个输入符号便可决定选择哪个产生式

某些非LL(1)文法到LL(1)文法的等价变换: 1. 提取公因子 2. 消除左递归

文法符号的属性:单词的含义,即与文法符号相关的一些信息.如,类型、值、存储地址等.

一个属性文法(attribute grammar)是一个三元组A=(G, V, F)

G:上下文无关文法.

V:属性的有穷集.每个属性与文法的一个终结符或非终结符相连.属性与变量一样,可以进行计算和传递.

F:关于属性的断言或谓词(一组属性的计算规则)的有穷集.断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性.

综合属性:若产生式左部的单非终结符A的属性值由右部各非终结符的属性值决定,则A的属性称为综合属

继承属性:若产生式右部符号B的属性值是根据左部非终结符的属性值或者右部其它符号的属性值决定的,则B的属性为继承属性.

(1)非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性.

(2) 终结符只有综合属性,没有继承属性,它们由词法程序提供.

在计算时: 综合属性沿属性语法树向上传递;继承属性沿属性语法树向下传递.

语法制导翻译:是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作.

语法制导翻译实现:对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算.

中间代码(中间语言)

1、是复杂性介于源程序语言和机器语言的一种表示形式.

2、一般,快速编译程序直接生成目标代码.

3、为了使编译程序结构在逻辑上更为简单明确,常采用中间代码,这样可以将与机器相关的某些实现细节置于代码生成阶段仔细处理,并且可以在中间代码一级进行优化工作,使得代码优化比较容易实现.

何谓中间代码:源程序的一种内部表示,不依悉携贺赖目标机的结构,易于代码的机械生成.

为何要转换成中间代码:(1)逻辑结构清楚;利于不同目标机上实现同一种语言.

(2)便于移植,便于修改,便于进行与机器无关的优化.

中间代码的几种形式:逆波兰记号 ,三元式和树形表示 ,四元式

符号表的一般形式:一张符号表的的组成包括两隐察项,即名字栏和信息栏.

信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,名字栏也称主栏.主栏的内容称为关键字(key word).

符号表的功能:(1)收集符号属性 (2) 上下文语义的合法性检查的依据: 检查标识符属性在上下文中的一致性和合法性.(3)作为目标代码生成阶段地址分配的依据

符号的主要属性及作用:

1. 符号名 2. 符号的类型 (整型、实型、字符串型等))3. 符号的存储类别(公共、私有)

4. 符号的作用域及可视性 (全局、局部) 5. 符号变量的存储分配信息 (静态存储区、动态存储区)

存储分配方案策略:静态存储分配;动态存储分配:栈式、 堆式.

静态存储分配

1、基本策略

在编译时就安排好目标程序运行时的全部数据空间,并能确定每个数据项的单元地址.

2、适用的分配对象:子程序的目标代码段;全局数据目标(全局变量)

3、静态存储分配的要求:不允许递归调用,不含有可变数组.

FORTRAN程序是段结构,不允许递归,数据名大小、性质固定. 是典型的静态分配

动态存储分配

1、如果一个程序设计语言允许递归过程、可变数组或允许用户自由申请和释放空间,那么,就需要采用动态存储管理技术.

2、两种动态存储分配方式:栈式,堆式

栈式动态存储分配

分配策略:将整个程序的数据空间设计为一个栈.

【例】在具有递归结构的语言程序中,每当调用一个过程时,它所需的数据空间就分配在栈顶,每当过程工作结束时就释放这部分空间.

过程所需的数据空间包括两部分

一部分是生存期在本过程这次活动中的数据对象.如局部变量、参数单元、临时变量等;

另一部分则是用以管理过程活动的记录信息(连接数据).

活动记录(AR)

一个过程的一次执行所需要的信息使用一个连续的存储区来管理,这个区 (块)叫做一个活动记录.

构成

1、临时工作单元;2、局部变量;3、机器状态信息;4、存取链;

5、控制链;6、实参;7、返回地址

什么是代码优化

所谓优化,就是对代码进行等价变换,使得变换后的代码运行结果与变换前代码运行结果相同,而运行速度加快或占用存储空间减少.

优化原则:等价原则:经过优化后不应改变程序运行的结果.

有效原则:使优化后所产生的目标代码运行时间较短,占用的存储空间较小.

合算原则:以尽可能低的代价取得较好的优化效果.

常见的优化技术

(1) 删除多余运算(删除公共子表达式) (2) 代码外提 +删除归纳变量+ (3)强度削弱(4)变换循环控制条件 (5)合并已知量与复写传播 (6)删除无用赋值

基本块定义

程序中只有一个入口和一个出口的一段顺序执行的语句序列,称为程序的一个基本块.

给我分数啊.

分类: 电脑/网络

问题描述:

计算机为什么需要软件呢/?软件在计算机内又如何工作呢?

解析:

没有配备任何软件的计算机称为裸机。裸机向外部世界提供的界面只是机器指令,裸机本身几乎不能完成任何功能,只有配备一定的软件,才会向用户呈现出强大的功能和友好的使用界面。一个完整的计算机系统是由硬件系统和软件系统两部分组成的。硬件是组成计算机的物质实体,如中央处理器、存储器和总线等;而软件是指挥计算机工作的程序、与程序运行时所需的数据以及这些程序和数据的有关说明的技术资料。软件系统是计算机上可运行的全部程序的总和。通常将软件分为系统软件和应用软件两大类。

一、系统软件

可以把软件分成若干层,最内层是对硬件的扩充与完善,而外层则是对内层的再次扩充与完善。一般把靠近内层、为方便使用和管理计算机资源的软件称为系统软件。系统软件是用于计算机管理、监控、维护的软件,并为用户提供一个友好的 *** 作界面。

系统软件有两个主要特点:一是通用性,即无论哪个应用领域的计算机用户都要用到它们;二是基础性,即应用软件要在系统软件支持下编写和运行。系统软件通常包括 *** 作系统、语言处理系统、数据库管理系统、系统实用程序等。

1. *** 作系统

*** 作系统(Operating System,OS)是对计算机的全部软硬件资源进行控制和管理的大型软件系统,是直接运行在裸机上的最基本的系统软件,其他软件必须在 *** 作系统的支持下才能运行,它是软件系统的核心。 *** 作系统主要包括进程和处理器管理、作业管理、存储管理、设备管理和文件管理五大功能,其作用是管理计算机的全部硬件资源和软件资源,合理组织计算机工作流程,为用户提供高效、方便的服务界面。常见的单机 *** 作系统有DOS、Windows 95/98等,网络 *** 作系统有UNIX、NetWare、Windows NT/2000/XP等。

2. 数据库管理系统

数据处理在计算机应用中占很大比例,对于大量的数据如何存储、利用和管理,如何使多个用户共享同一数据资源,是数据处理中必须解决的问题,为此20世纪60年代末开发出了数据库系统,使数据处理成为计算机应用的一个重要领域。数据库系统主要由数据库(Date Base,DB)和数据库管理系统(Data Base Management System,DBMS)组成。

数据库是按一定方式组织起来的相关数据的 *** 。它与信息管理系统是密切相关的,是建立信息管理系统的主要软件工具。数据库已成为计算机应用的一个重要领域。目前,数据库主要用于人事管理、财务管理、档案管理、图书资料管理和仓库管理等方面的数据管理。数据管理包括数据的组织编目、定位、存储、搜索、查询、修改、排序、分类等内容。数据库技术就是针对这些数据处理而发展起来的。

数据库管理系统是对数据库进行有效管理和 *** 作的系统穗悔,是用户与数据库之间的接口,它提供了用户管理数据库的一套命令,包括数据库的建立、修改、检索、统计和排序等功能。

具有联系的数据结构形式称为数据模型。一般数据库管理系统是按不同的数据模型把数据组织到数据库的,常用的数据模型可分为层次型、网络型和关系型3种。其中关系型数据库管理系统应用广泛,常见的有FoxBASE、FoxPro、Oracle、Sybase和Informix等。

3. 系统实用程序

系统实用程序是一些工具性的服务程序,便于用户对计算机的使用和维护。主要的实用程序有语言处理程序、编辑程序、连接装配程序、打印管理程序、测试程序和诊断程序等。

二、 应用软件

应用软件是针对某个应用领域的具体问题而开发和研制的程序。应用软件一般包括用户程序及其说明性文件资料。应用软件必须在系统猜知正软件的支持下才能工作。它具有很强的实用性和专业性,正是由于应用软件的开发和使用,才使得计算机的应用日益渗透到社会的各行各业。

比较常用的应用软件有:文字处理软件,如Word、WPS等;电子表格软件,如Excel和Lotus 1-2-3等;图形处理软件,如AutoCAD和3ds max等;课件制作软件,如PowerPoint和Authorware等;多媒体处理软件,如Media Player和RealPlayer等。

下面以比较流行和综合的应用软件—猛明—管理信息系统和计算机集成制造系统为例进行讲述。

1. 管理信息系统

管理信息系统MIS(Management information System)是对信息进行管理的软件。它是一个由人、计算机等组成的,能进行信息收集、传送、存储、加工、维护和使用的系统。管理信息系统能实测企业的各种运行情况,利用过去的数据预测未来,从企业全局出发辅助企业进行决策,利用信息控制企业的行为,帮助企业实现规划目标。

在我国信息管理系统应用十分广泛,很多 *** 部门、企事业单位都按它们各自的需要开发了自己的信息管理系统,对信息进行有效的管理,并且可以通过互联网方式供他人查询。

2. 计算机集成制造系统

计算机集成制造系统CIMS是一个新兴的、跨学科的计算机应用系统。在制造业中,当前发展的一个趋势是把网络系统、数据库管理系统和CAD/CAM(计算机辅助设计/计算机辅助制造)系统结合起来,在计算机技术、信息技术、自动控制技术、柔性技术及系统学科的基础上实现生产的决策、产品设计,直到销售的整个生产过程的自动化,把它们集成为一个完整的、效益最佳的生产系统称为计算机集成制造系统。

在我国,CIMS是国家“863计划”计算自动化领域的一个主题,在CIMS的理论上和实际应用中取得了世界公认的成绩。

三、计算机程序设计

计算机是依靠硬件和软件的配合进行工作的,计算机工作过程就是指令、程序的执行过程。所以,要了解计算机基本工作原理,就需要了解指令、程序的执行过程及计算机程序设计语言。

四、 计算机的指令系统

下面我们从指令的定义和指令的执行过程进行介绍计算机的指令系统。

1. 指令、指令系统、程序

指令是计算机完成某一 *** 作而发出的指示或命令。指令的格式如下。

*** 作码

地址码

其中, *** 作码指出指令要做的 *** 作,例如加、减、乘、除、取数、存数等;地址码(也称 *** 作数)表示参加运算的数据在存储器中的位置。

l 指令系统 一台计算机所有的指令 *** 称为该计算机的指令系统。指令系统不仅是硬件设计的依据,而且是提供给用户编制程序的基本依据,也是衡量计算机性能的一个指标。不同类型的计算机,其指令系统也不同。

l 程序(Program) 计算机要解决某一问题,需按解题步骤和要求,在指令系统中选出有关的指令进行顺序编排(称为编程),当计算机上执行这一指令序列时,即可完成预定的任务。使计算机完成某个特定的一组有序的指令 *** 称为程序。

2. 指令的执行过程

计算机执行一条指令分为三步进行:第1步是取指令,将要执行的指令从内存取到控制器中;第2步是分析指令,对所取的指令通过译码器进行分析判断,判断该指令要完成的 *** 作;第3步是执行指令,根据分析结果向各部件发出 *** 作信息,执行该指令相应的 *** 作功能。每个指令的执行都重复这3个步骤。

3. 程序的执行过程

有序的指令 *** 构成程序,程序的执行过程就是一条条指令的执行过程。控制器每取出一条指令,下一条指令的地址就会自动地置入程序计数器当中,从而为取下一条指令做准备。控制器不断地取指令、分析指令、执行指令,直至完成任务为止,这也是为什么指令要顺序存放和计算机工作能高度自动化的原因。

五、计算机程序设计语言

计算机程序设计语言不断发展,其功能不断完善,面向的对象越来越向一般用户倾斜,使程序设计更加简单、标准和工程化。

1. 第一代语言——机器语言

机器语言是计算机诞生和发展初期使用的语言,表现为二进制的编码形式,是CPU可以识别的一组由0、1序列构成的指令码。这种机器语言是由硬件设备决定的,不同的计算机设备有不同的机器语言。直到如今,机器语言仍然是计算机硬件所能“理解”的惟一语言。使用机器语言编写程序是很不方便的,它要求用户熟悉计算机的所有细节。特别是随着计算机硬件结构越来越复杂,指令系统也变得越来越庞大,为了把计算机从少数专门人才手中解放出来,减轻程序设计人员在编制程序工作中的重复、繁琐的劳动,进一步拓展编程人员的范围,计算机工作者开展了对于程序设计语言的研究以及语言处理程序的开发。

2. 第二代语言——汇编语言

汇编语言开始于20世纪50年代初,它用助记符来表示每一条机器指令。由于便于识别记忆,汇编语言比机器语言前进了一步。但汇编语言程序的大部分语句还是和机器指令——对应的,语句功能不强,因此编写较大的程序时仍很繁琐。而且汇编语言也是针对特定的计算机或计算机系统设计的,对硬件的依赖性仍然很强。用汇编语言编好的程序要依靠计算机的汇编程序翻译成机器语言后方可执行。

3. 第三代语言——高级语言、算法语言

高级语言起始于20世纪50年代中期,它与人们日常熟悉的自然语言和数学语言更接近,可读性强,便于用户的理解和运用,编程方便。由高级语言编写的程序代码称为源程序,可以在不同计算机上使用。高级语言必须经过编译或解释程序译成机器语言才能执行,所以计算机必须配之相应的翻译程序才能运行高级语言源代码。BASIC、Pascal、C等都属于第三代语言。

l 解释类

执行方式类似于我们日常生活中的同步翻译,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成独立的可执行文件,应用程序不能脱离其解释程序,但这种方式比较灵活,可以动态地调试、修改应用程序。典型的解释类高级语言有QBASIC等。

l 编译类

编译是指预先将采用高级语言编制的源程序代码“翻译”成目标代码(机器语言),因此可以生成目标程序(可执行文件),脱离其语言环境独立执行,效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件,进行链接才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如C、C++和Delphi等。第三代语言是面向过程的,用结构化的过程语言编写程序,用户可不必了解计算机的内部逻辑,而是主要考虑解题算法的逻辑和过程的描述,把解决问题的执行步骤通过语言告诉计算机。

4. 第四代语言——非过程化语言

用户使用这种语言,不必关心问题的解法和进行过程描述。只要说明所要完成的目的、指明输入数据以及输出形式,就能得到所要的结果,而其他的工作都由系统来自动完成。

第四代语言只要求人们告诉计算机做什么,而不必告诉计算机怎么做。所以,一般称第四代语言是面向对象的语言。

K是十进制常数。L见于q系列plc中,代表锁存器(lock),意思就是掉电保持型寄存器,即使断电后再重新开电,该位址也会保存断电前的状态。D是数据寄存器,用K就是计时一个固定的时间,用D计时的时间就可以根据D中数据的不同而不同。

三菱PLC是三菱电机在大连生产的主力产品。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术 *** 作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。三菱PLC在中国市场常见的有以下型号FR-FX1N,FR-FX1S,FR-FX2N,FR-FX3U,FR-FX2NC,FR-A,FR-Q。

系统程序存储器用以存放系统程序,包括管理程序,监控程序以及对用户程序做编译处理的解释编译程序。由只读存储器组成。厂家使用的,内容不可更改,断电不消失。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12521241.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存