编译程序是将高级语言书写的源程序翻译成低级语言程序

合集下载

C语言程序设计试题(卷)集与答案解析

C语言程序设计试题(卷)集与答案解析
C 语言程序设计试题(卷)集与答案解析
第一章 基础知识 一.填空 1. 每个 C 程序都必须有且仅有一个________ 函数。 2. C 语言程序开发到执行通常要经过 6 个阶段即编辑、预处理、 ________、 链接 、加载 和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计 算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为 低级语言和________两大类 。 6. C 语言是由________组成的。 7. C 语言的函数可分为主函数 main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和 函数体。 9. 编译是将 C 语言所编写的源程序________成机器代码,也称 为建立目标代码程序的过程。 10. 程序是由某种程序设计语言 编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制 计算机本身软硬件协调工作 ,并使其设备充分发挥效力,方便 用户使用的系统软件程序,称为操作系统;而为办公自动 化 (OA)、管理信息系统(MIS)、人工智能、电子商务、网络互 联等等应用而开发的软件程
12. 实数 473.468 写成规范化指数形式,则应为 ______。 13. 实数 0.0453 写成规范化指数形式,则应为 ______。 14. 将 0x123 转换为二进制等于 ______。 15. 字符’A’表示成十六进制等于 ______。 16. 在 C 语言中,称代表常量的标识符为 ______。 17. C语言中是用编译预处理命令______ 来定义符号常量 18. 在 C 语言中,以反斜杠符(\\)开头,后跟字符的字符序列, 称之为 ______ ,主 要用来表示控制及不可见的字符或者一些图形符号 19. 语句 printf(\执行的结果输出是 ______。 20. 语句 printf(“b”)执行的结果输出是______。 21. 语句 printf(“\\\\b”)执行的结果输出是 ______。 22. 语句 printf(\执行的结果输出是 ______。 23. 若有 char ch1; ch1='a'+4; 则语句 printf(\的输出结果为 ______。 24. 字符串常量“Hello, everyone!”占据的内存空间为______ 个字节 25. 字符串常量“Hello,Bob!”占据的内存空间为 ______ 个字 节 26. 十进制整型常量由 0~9 个数据组成,但不能以______ 开始, 没有小数部分 27. 十六进制常量由 0~9 和______ 组成

计算机复习资料

计算机复习资料

计算机文化基础知识点大全第 1 章信息技术与计算机文化1.1信息与信息技术1.信息与数据信息是在自然界、人类社会和人类思维活动中普遍存在的一切物质和事物的属性。

姚明、鹿晗——帅数据,是指存储在某种媒体上可以加以鉴别的符号资料。

文字字母数字图形图像音频视频信息的符号化就是数据,数据是信息的具体表示形式数据是信息的载体信息是对数据进行加工以后的结果同一个信息可以有不同形式的数据表示信息是数据抽象出来的逻辑意义,数据是信息的物理表示。

判断题:一切信息必须依靠数据而存在。

(×)信息可以独立存在。

2.信息技术是指人们获取、存储、传递、处理、开发和利用信息资源的相关技术。

判断题:信息技术就是计算机技术。

(×)信息技术是以计算机技术为核心包含通信技术、传感技术、网络技术、电子技术等在内综合技术。

IT(Information Technology)3.信息社会也称信息化社会,是继工业化社会以后,以信息活动为社会发展的基本活动的新型社会形态。

4.文化的核心是: 观念和价值。

基本属性:广泛性、传递性、教育性、深刻性。

5.计算机文化计算机文化是以计算机为核心,集网络文化、信息文化、多媒体文化为一体,并对社会生活和人类行为产生广泛、深远影响的新型文化。

计算机文化是人类文化发展的四个里程碑之一(前三个分别为:语言的产生、文字的使用与印刷术的发明)。

最早于20 世界80 年代瑞士洛桑第三届世界计算机教育大会上提出。

计算机文化自世界上第一台计算机出现后就被提出了。

(× )1.2计算机技术概论1.埃尼克ENIAC:第一台真正意义上的电子计算机,是 Electronic Numerical IntegratorAnd Calculator 的缩写。

1946 年2 月美国的宾夕法尼亚大学主要元器件:电子管十进制2.计算机的特点:运算速度快计算精度高存储容量大具有逻辑判断能力工作自动化通用性强 3.计算机的发展按主要元器件不同,分为 4 代:4.计算机的分类按处理对象分:模拟计算机、数字计算机、混合计算机现代计算机按处理对象不同可分为模拟计算机和数字计算机两类。

程序设计语言编译原理第三版答案

程序设计语言编译原理第三版答案

程序设计语言编译原理第三版答案【篇一:西北工业大学版(蒋立源第三版)编译原理课后习题答案】解:源程序是指以某种程序设计语言所编写的程序。

目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。

翻译程序是将某种语言翻译成另一种语言的程序的统称。

编译程序与解释程序均为翻译程序,但二者工作方法不同。

解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。

即边解释边执行,翻译所得的指令序列并不保存。

编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。

即先翻译、后执行。

2解:一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。

3解:c语言的关键字有:auto break case char constcontinue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while。

上述关键字在c语言中均为保留字。

4解:c语言中括号有三种:{},[],()。

其中,{}用于语句括号;[]用于数组;()用于函数(定义与调用)及表达式运算(改变运算顺序)。

c语言中无end关键字。

逗号在c语言中被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:(a,b,c,d)的值为d)。

5略第二章习题解答1.(1)答:26*26=676(2)答:26*10=260(3)答:{a,b,c,...,z,a0,a1,...,a9,aa,...,az,...,zz,a00,a01,...,zzz},共26+26*36+26*36*36=34658个2.构造产生下列语言的文法(1){anbn|n≥0}(2){anbmcp|n,m,p≥0}(3){an # bn|n≥0}∪{cn # dn|n≥0}解:对应文法为g(s) = ({s,x,y},{a,b,c,d,#}, {s→x,s→y,x→axb|#,y→cyd|# },s)(4){w#wr# | w?{0,1}*,wr是w的逆序排列}解:g(s) = ({s,w,r},{0,1,#}, {s→w#, w→0w0|1w1|# },s)(5)任何不是以0打头的所有奇整数所组成的集合(6)所有偶数个0和偶数个1所组成的符号串集合解:对应文法为s→0a|1b|e,a→0s|1c b→0c|1s c→1a|0b3.描述语言特点(1)s→10s0s→aaa→baa→a解:本文法构成的语言集为:l(g)={(10)nabma0n|n, m≥0}。

大学计算机基础(程序设计基础)习题与答案

大学计算机基础(程序设计基础)习题与答案

一、单选题1、计算机能够直接执行的程序是()。

A.汇编语言程序B.可执行文件C.源程序D.命令文件正确答案:B2、汇编语言也称为()。

A.面向应用的语言B.面向对象的语言C.面向机器的语言D.面向过程的语言正确答案:C3、C、C++、Java可归类为()语言。

A.符号B.机器C.高级D.自然正确答案:C4、根据计算机语言发展的过程,下列排列顺序正确的是()。

A.机器语言、高级语言、汇编语言B.机器语言、汇编语言、高级语言C.汇编语言、机器语言、高级语言D.高级语言、机器语言、汇编语言正确答案:B5、编译程序将高级语言程序翻译成与之等价的机器语言程序,编译前的程序可以称呼()。

A.目标程序B.源程序C.临时程序D.原程序正确答案:B6、()都属于计算机的低级语言。

A.机器语言和高级语言B.汇编语言和高级语言C.机器语言和汇编语言D.高级语言和数据库语言正确答案:C7、在程序设计中,把解题过程准确而完整地描述出来,就叫()。

A.算法B.方法C.事件D.过程正确答案:A8、()是一种使用几何图形描述程序逻辑关系的程序设计方法。

A.流程图B.饼图C.数据流图D.柱形图正确答案:A9、用C语言编写的程序需要用()程序翻译后计算机才能识别。

A.汇编B.解释C.连接D.编译正确答案:D10、可被计算机直接执行的程序由()语言编写的程序。

A.汇编B.机器C.高级D.网络正确答案:B11、由二进制编码构成的语言是()。

A.C语言B.BASIC语言C.汇编语言D.机器语言正确答案:D12、结构化程序设计中的三种基本程序结构是指()。

A.顺序结构、转移结构、分支结构B.顺序结构、转移结构、循环结构C.顺序结构、选择结构、循环结构D.转移结构、选择结构、分支结构正确答案:C13、算法的基本结构中不包括()。

A.选择结构B.循环结构C.顺序结构D.逻辑结构正确答案:D14、在计算机科学中,算法这个术语是指()。

A.求解问题并选择编程工具B.求解问题的数学方法C.求解计算机问题的一系列步骤D.选择求解问题的计算机系统正确答案:C15、高级语言翻译程序是将高级语言编写的源程序翻译成目标程序有两种工作方式。

简述编译程序与翻译程序、汇编程序的联系与区别。

简述编译程序与翻译程序、汇编程序的联系与区别。

简述编译程序与翻译程序、汇编程序的联系与区别。

翻译程序是指把⾼级语⾔源程序翻译成机器语⾔源程序的软件。

翻译程序有两种:⼀种是编译程序,它将⾼级语⾔源程序⼀次性全部翻译成⽬标程序,每次执⾏程序时,只要执⾏⽬标程序。

另⼀种是解释程序,它的执⾏过程是翻译⼀句执⾏⼀句,并且不会⽣成⽬标程序。

编译程序是先完整编译后运⾏的程序,如C、C++等;解释程序是⼀句⼀句翻译且边翻译边执⾏的程序,如JavaScript、Python等。

附C语⾔编译链接过程:
编译程序与汇编程序的区别:如果源语⾔是诸如C、C++、Java等“⾼级语⾔”,⽽⽬标语⾔是诸如汇编语⾔或机器语⾔之类的“低级语⾔”,这样的⼀个翻译程序称为编译程序。

如果源语⾔是汇编语⾔,⽽⽬标语⾔是机器语⾔,这样的⼀个翻译程序称为汇编程序。

编译技术名词解释

编译技术名词解释

基本知识编译程序:就是指这样一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序解释程序与编译程序的主要区别是:*编译程序将源程序翻译成目标程序后再执行目标程序*解释程序则是逐条读出源程序中的语句并解释执行,即在解释程序的执行过程中并不产生目标程序。

形式化方法是用一整套带有严格规定的符号体系来描述问题的方法。

文法是程序语言的生成系统自动机是程序语言的识别系统推导的每一步都是对当前句型中的最右非终结符用相应产生式的右部进行替换,这样的推导称为最右推导(规范推导)最右推导的逆过程称为最左归约(规范归约)。

符号串集合的正闭包:设A是符号串的集合,则称A+为符号串集A的正闭包。

具体定义如下:A+=A1∪A2∪A3…符号串集合的(星)闭包:设A是符号串的集合,则称A*为符号串集A的星闭包。

具体定义如下:A*=A0∪A1∪A2∪A3…二义性文法:文法G[S]的一个句子如果存在两棵不同的语法树,或者能找到两种不同的最左推导(或最右推导),则称这个文法是二义性的。

先天二义性文法:对于一个二义性文法G[S],如果能找到一个非二义性文法G'[S],使得L(G')=L(G),则该二义性文法的二义性是可以消除的。

如果找不到这样的G'[S],则二义性文法描述的语言为先天二义性的。

推导的每一步都是对当前句型中的最右非终结符用相应产生式的右部进行替换,这样的推导称为最右推导(规范推导)最右推导的逆过程称为最左归约(规范归约)。

符号串长度:|ab|=2,|ε|=0。

四元式,逆波兰,划分基本块,作流图一个句型的最左直接短语称为该句型的句柄。

语法树的某个结点连同它的所有后代组成了一棵子树。

2型文法:文法G的每一个产生式具有下列形式:A→α其中,A∈VN,α∈V*,则称文法G为2型文法或上下文无关文法。

3型文法:文法G的每个产生式具有下列形式:A→α或A→αB其中,A、B∈VN,α∈VT*,则文法G称为3型文法、正规文法或右线性文法在编译方法中:通常用3型文法(正规文法)来描述高级程序语言的词法部分,然后用有限自动机FA来识别高级语言的单词。

南工大编译原理期末试卷2019

南工大编译原理期末试卷2019

南工大编译原理期末试卷2019篇一:一、简答题1.什么就是编译程序?答:编译程序是一种将高级语言程序(源程序)翻译成低级语言(目标程序)的程序。

将高级程序设计语言程序翻译成逻辑上等价的低级语言(汇编语言,机器语言)程序的翻译程序。

2.请写出文法的形式定义?请问:一个文法g抽象地则表示为四元组 g=(vn,vt,p,s)–其中vn表示非终结符号– vt则表示破灭符号,vn∪vt=v(字母表),vn∩vt=φ– s是开始符号,– p就是产生式,形例如:α→β(α∈v+且至少所含一个非破灭符号,β∈v*)3.语法分析阶段的功能是什么?请问:在词法分析的基础上,根据语言的语法规则,将单词符号串分解成各类语法短语(基准:程序、语句、表达式)。

确定整个输入串是否构成语法上正确的程序。

4.局部优化存有哪些常用的技术?答:优化技术1—删除公共子表达式优化技术2—撷取传播优化技术3—删除无用代码优化技术4—对程序展开代数并集转换(减少运算强度)优化技术5—代码外提优化技术6—强度削弱优化技术7—删除归纳变量优化技术概述——对程序展开代数并集转换(代数精简)优化技术简介——对程序进行代数恒等变换(合并已知量)5.编程过程分后哪几个阶段?答:逻辑上分五个阶段:词法分析、语法分析、语义分析与中间代码生成、代码优化、目标代码生成。

每个阶段把源程序从一种则表示转换变成另一种则表示。

6. 什么是文法?请问:文法就是描述语言的语法结构的形式规则。

就是一种工具,它可以用作严苛定义句子的结构;用有穷的规则刻划无穷的集合;文法是被用来精确而无歧义地描述语言的句子的构成方式;文法描述语言的时候不考虑语言的含义。

7. 语义分析阶段的功能就是什么?答:对语法分析所识别出的各类语法范畴分析其含义,进行初步的翻译(翻译成中间代码);并对静态语义展开审查。

8.代码优化须遵循哪些原则?请问:等价原则:不发生改变运转结果有效原则:优化后时间更短,占用空间更少不划算原则:应用领域较低的代价获得较好的优化效果9.词法分析阶段的功能是什么?请问:逐个读入源程序字符并按照构词规则切分成一系列单词任务:初始化源程序,输入单词符号—滤掉空格,跳过注释、换行符—跟踪下划线标志,表示源程序失效的行列边线—宏展开,……10.什么就是符号表?答:符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等有关信息。

单选题(一级X精选)

单选题(一级X精选)

45.十六进制数FF.1转换成十进制数是 255.0625 46.微机中采用的标准ASCⅡ编码用7位二进制 数表示一个字符,ASCⅡ码集能有128个不同的 代码。 47.计算机中的数据可分为两种类型:数字和字 符,它们最终都要转换为二进制代码进行存储 和处理。对于人们习惯的十进制数字,通常用 BCD码进行转换。 48. Java语言属于第四代语言 49.一般微型计算机有几十条到几百条不同的 指令,这些指令按其操作功能不同可以分为数 据处理指令、传送指令、程序控制指令、状态 管理指令 50.下面是关于操作系统的四条简单叙述,其中 正确的一条为____。 A、操作系统是软件和硬件的接口 B、操作系统是源程序和目标程序的接口 C、操作系统是用户和计算机之间的接口 D、操作系统是外设与主机之间的接口 答案:C 51.CPU中有一个程序计数器(又称指令计数 器),它用于存放下一条要执行的指令的内存地 址 52.MIPS是度量计算机运算速度的指标。 53.下列存储器中存取速度最快的是内存 54.在3.5英寸的软盘上有一个带滑块的小方 孔,其作用是进行写保护 55.下列设备中,不能作为微型计算机的输出设 备的是键盘 56.一般为了提高屏幕输出图像的质量,可进行 如下处理在显示属性中改变颜色数_ 58.计算机病毒有两种状态,即静态病毒和动态 病毒,动态病毒是指处于未加载状态下,但随 时可能执行病毒的传染或破坏作用的病毒 59.Internet上许多不同的复杂网络和许多不 同类型的计算机赖以互相通信的基础是TCP/IP 60.以太网的拓扑结构是总线型_ 61.计算机最主要的工作特点是存储程序与自 动控制 62.640KB的含义是640*1024字节 63.计算机的应用领域可大致分为三个方面实
单选题
1.所谓“裸机”是指_不装备任何软件的计算机 2.一片存储容量是1.44 MB的软磁盘,可以存储 大约140万个ASCII码。 3.下列叙述中,正确的是计算机运算速度可以 用MIPS来表示。 4.将二进制数 111111 转换为十进制数是 _63___。 5.下列各不同进制的四个无符号数中,最小的 数是_37___。 A、二进制:11011001 B、八进制: C、十进制:75 D、十六进制:2A 答案:B 6.已知小写英文字母"m"的十六进制ASCⅡ码是 6D,则小写英文字母"c"的十六进制ASCⅡ码值 是__63__。 7.一个48×48点的点阵汉字字型码要用 __288__个字节存储它。 8.用户用计算机高级语言编写的程序,通常称 为_源程序___。 9.计算机内所有的指令构成了_计算机的指令 系统___。 10.操作系统是一种__系统__软件。 11.微型计算机中的386或486指的是__ CPU的类 型__。 12. 486DX4微机中的486指的是_微处理器型号。 13.计算机的内存储器比外存储器存取速度快。 14.系统参数设置的作用是修改机器配置。 15.具有多媒体功能的微机配置的外存储器 CD-ROM是只读光盘。 16.微型计算机的显示器显示西文字符时,一般 情况下一屏最多可显示25行,每行80个字符 17.计算机病毒可以使整个计算机瘫痪,危害极 大。计算机病毒是_一段特殊的程序 18.KV2006是计算机杀毒软件 19.局域网传输介质一般采用同轴电缆或双绞 线 20.实现计算机网络需要硬件和软件。其中负责 管理整个网络各种资源、协调各种操作的软件

计算机基础知识试题

计算机基础知识试题

计算机基础知识试题一、选择题:本大题共30个小题,每小题1分,共30分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。

1.冯·诺依曼计算机的基本原理是[ ]A.程序外接B.逻辑连接C.数据内置D.程序存储2.将高级语言程序设计语言源程序翻译成计算机可执行代码的软件称为[ ]A.汇编程序B.编译程序C.管理程序D.服务程序3.下列哪一个不是存储器的组成部分?[ ]A.存储体B.地址寄存器C.数据寄存器D.状态寄存器4.下列哪一个是输出设备?[ ]A.键盘B.鼠标C.显示器D.摄像头5.7位版本的ASCII码最多可以表示多少个字符?[ ]A.32B.64C.128D.2566.下列哪一项不是计算机病毒的特性?[ ]A.封闭性B.传染性C.破坏性D.隐蔽性7.启动Windows98后出现在“桌面”上的图标[ ]A.同一台计算机每次启动都会变化B.所有的计算机系统全都相同C.因各个计算机配置的硬件不同而不同D.因各个计算机装入的软件和用户设置的快捷图标不同而不同8.在Windows98中,在桌面上同时显示多个应用程序窗口的正确方法是[ ]A.在任务栏空白区单击鼠标右键,在弹出快捷菜单中选“横向平铺”B.在任务栏空白区单击鼠标座键,在弹出快捷菜单中选“排列图标”C.按Ctrl+Tab进行排列D.在资源管理器中进行排列9.要在Windows98的资源管理器中创建文件夹,第一步应打开的菜单是[ ]A.文件B.编辑C.查看D.插入10.要在Windows98启动汉字输入法,在出现的输入法列表框中选定一种汉字输入法,屏幕上就会出现一个与该输入法相应的[ ]A.汉字字体列表框B.汉字字号列表框C.汉字输入编码框D.汉字输入状态栏11.在Windows98的某些窗口中隐藏工具栏的状态下,需要完成剪切/复制/粘贴功能,可以[ ]A.通过“查看”菜单中的剪切/复制/粘贴命令B.通过“文件”菜单中的剪切/复制/粘贴命令C.通过“编辑”菜单中的剪切/复制/粘贴命令D.通过“帮助”菜单中的剪切/复制/粘贴命令12.在Windows98中,打开一个菜单后,其中某菜单项会出现与之对应的级联菜单的标识是[ ]A.菜单项右侧有一组英文提示B.菜单项右侧有一个黑色三角形C.菜单项左侧有一个黑色圆点D.菜单项左侧有一个“√”符号13.在Windows98中,不能实现改变系统中日期和时间的操作是[ ]A.在任务栏右下角时钟位置上,单击鼠标右键,在弹出的快捷菜单中选择“日期/时间”选项B.依次单击“开始”→“设置”→“控制面板”,再选择“日期/时间”选项C.在桌面窗口空白处单击D.从“资源管理器”窗口,选定“控制面板”,再从“控制面板”窗口,选择“日期/时间”选项14.在Word中可以单击常用工具栏的“粘贴”按纽把剪切板中内容靠诶到当前位置,这个按纽是15.在Word中,能看见页眉和页脚的视图方式是[ ]A.普通视图B.页面视图C.大纲视图D.联机版式视图16.在Word中进行查找操作时,正确的叙述是[ ]A.只能向下查找B.不能区分查找的大小写C.不能区分半角和全角字符D.能按字体进行查找17.在Word中,下面关于常用工具栏中“撤消”按纽所能执行功能的叙述中正确的是[ ]A.已经做的操作不能撤消B.只能撤消上一次的操作内容C.只能撤消上一次存盘后的操作内容D.可以将撤消按纽下拉菜单中的所有操作全部撤消18.在Word中,选定表格的一列,再执行“编辑”菜单中的“清除”命令(或按Del键),将完成的操作是[ ]A.删除这一列,表格将少一行B.删除该列各单元格中的内容C.删除该列中第一个单元格中的内容D.删除该列中插入点所在的单元格中的内容19.在Word中,若要方便地改变段落的缩排方式,调整左右边界,可以利用的工具是[ ]A.标尺B.格式工具栏C.常用工具栏D.表格和边框工具栏20.在Word中,下列关于文档分页的叙述中,错误的是[ ]A.分页符也能打印出来B.Word文档可以自动分页,也可以人工分页C.将插入点置于人工分页符前,按Del键可以将其删除[ ]D.分页符标志前一页的结束,后一页的开始21.下列操作中,不属于关系数据模型的基本操作是A.连接B投影. C.查询D.选择22.下列各项中,属于关系数据库管理系统(DBMS)的是[ ]A.Visual FoxPro中的项目管理器B.Visual FoxPro系统C.Visual FoxPro中的表D.Visual FoxPro中的数据库23.下列Visual FoxPro函数中,函数值为字符型的是[ ]A.DTOC()B.CDOT()C.LEN()D.EOF()24.在Visual FoxPro中,打开表BOOK的命令是[ ]A.OPEN BOOKB.OPEN DA TABASE BOOKE BOOKE DA TA BOOK25.在Visual FoxPro中,要在打开的表中物理地删除一个数据记录,必须事先执行的操作是[ ]A.清除屏幕B.对数据表建立索引C.用浏览方式列出全部记录D.对选定记录做删除标记26.下列哪一项不是局域网采用的网络拓扑结构?[ ]A.网状结构B.星型结构C.总线结构D.环型结构27.通常可用传输速率描述通信线路的数据传输能力,传输速率指的是[ ]A.每秒钟可以传输的中文字符个数B.每秒钟可以传输的字符个数C.每秒钟可以传输的比特数D.每秒钟可以传输的文件数量28.在Internet域名系统中,com表示[ ]A.公司或商务组织B.教育机构C.政府机构D.非伶俐组织29.下列哪一个协议是Internet使用的协议?[ ]A.OSI参考模型中规定的传输层协议B.传输控制/网间协议(TCP/IP)C.IEEE 802.3系列协议D.帧中继传输协议30.浏览Internet上的主页需要使用浏览器,下列哪一个是常用的浏览器?[ ]A.HotmailB.Internet ExchangeC.Internet ExplorerD.Outlook Express二、填空题:本大题共10个小题,每小题2分,共20分。

高级语言程序的两种处理方式——编译和解释

高级语言程序的两种处理方式——编译和解释

⾼级语⾔程序的两种处理⽅式——编译和解释编译⽅式编译程序的功能就是把⾼级语⾔书写的源程序翻译成与之等价的⽬标程序(汇编语⾔或机器语⾔)。

编译程序的⼯作过程词法分析在词法分析阶段,源程序可以简单的看做是⼀个多⾏的字符串。

词法分析阶段是编译过程的第⼀阶段,主要任务是对源程序从前到后(从左到右)逐个字符进⾏扫描,从中识别出⼀个个“单词”符号。

词法分析程序输出的”单词“常采⽤⼆元组的⽅式,即单词类别和单词⾃⾝的值。

词法分析过程依据的语⾔的此法规则,即描述“单词”结构的规则。

词法分析器⼀般来说有两种⽅法构造:⼿⼯构造和⾃动⽣成。

⼿⼯构造可使⽤状态图进⾏⼯作,⾃动⽣成使⽤确定的有限⾃动机来实现。

词法分析器的功能输⼊源程序,按照构词规则分解成⼀系列单词符号。

单词是语⾔中具有独⽴意义的最⼩单位,包括:(1)关键字是由程序语⾔定义的具有固定意义的标识符。

(2)标识符⽤来表⽰各种名字,如变量名,数组名,过程名等等。

(3)常数常数的类型⼀般有整型、实型、布尔型、⽂字型等。

(4)运算符如+、-、*、/等等。

(5)界符如逗号、分号、括号、等等。

语法分析编译程序的语法分析器以单词符号作为输⼊,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成⼀个符合各类语法的构成规则,按该语⾔使⽤的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的⼀个语法单位。

语法分析的⽅法分为两种:⾃上⽽下分析法和⾃下⽽上分析法。

⾃上⽽下就是从⽂法的开始符号出发,向下推导,推出句⼦。

⽽⾃下⽽上分析法采⽤的是移进归约法,基本思想是:⽤⼀个寄存符号的先进后出栈,把输⼊符号⼀个⼀个地移进栈⾥,当栈顶形成某个产⽣式的⼀个候选式时,即把栈顶的这⼀部分归约成该产⽣式的左邻符号。

语法分析只考虑构成该句⼦的语法单位是否符合语法规则。

例如在分析除法表达式时在语法分析阶段只分析运算符左右两边是否为变量、常量、表达式等,⽽不去管除数是否为0。

编译原理复习

编译原理复习

1、编译程序:能够把用各种高级语言书写的源程序翻译成某种等价的目标程序的翻译程序。

2、遍:指编译程序对源程序或中间代码程序从头到尾扫描一次。

3、静态分配:在编译时就能够安排好目标程序运行时的全部数据空间。

4、编译程序包括词法分析、语法分析、中间代码生成、优化,目标代码产生五个阶段,上述各阶段中还要进行表格处理和出错处理的工作。

5、编译程序可分为五个阶段:词法分析、语法分析、中间代码生成、优化、目标代码生成。

上述五个阶段之间每个阶段输出为作下一阶段的输入,第一阶段的输入是源程序,最后阶段的输出是目标代码。

6、程序语言是由语法和语义两方面定义的。

语法指可以形成和产生一个合式的程序的一组规则,语义是定义一个程序的意义的一组规则。

7、一个名字的属性包括类型和作用域。

8、目标代码一般有三种形式:能够立即执行的机器语言代码,待装配的机器语言模块和汇编语言代码。

9、2型文法又称为(上下文无关文法),3型文法又为(正规文法)。

10、虽然名字都是用标识符表示的,但名字和标识符有着本质的区别。

11、词法分析器的任务是从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成单词符号串的中间程序。

12、执行词法分析的程序称为词法分析器或扫描器。

13、词法分析器所输出的单词符号常常表示成如下二元关系:(单词种别,单词自身值)。

14、词法分析器:是一种程序,它能将字符串形式的源程序改造成单词符号串形式的中间程序。

15、程序语言的单词符号包括:(标识符)、(运算符)、(常数)、(基本字)、界符等。

16、超前搜索:在词法分析过程中,有时为了确定词性,需要超前扫描若干个字符,这个动作为超前搜索。

17、状态转换图是一张有限方向图,其中结点代表状态,状态之间用箭弧连接,箭弧上的标记代表在射出结点状态下可能出现的输入字符或字符类,状态中有一个初态,至少有一个终态。

18、自上而下分析的主旨是,对任何输入串,试图用一切可能的办法,从文法开始符号(根结)出发,自上而下地为输入串建立一颗语法树。

编译程序是将高级语言书写的源程序翻译成低级语言程序

编译程序是将高级语言书写的源程序翻译成低级语言程序
∴ 文法G=(VT,VN,S,P),其中: VT={a, b},VN={A,B,D},S=A P={AB|D, Baa|aBa, Dbb|bDb}
以上简记为: G[A]:AB|D Baa|aBa Dbb|bDb
编译程序是将高级语言书写的源程 序翻译成低级语言程序
Note1:给定一个语言时,文法不是唯一的。 Ex2:2:用用文文法法定描义述一语个言含时+,,要*准运确算,符既的不算能术扩表大达也式不。能缩小。 解1:非形式化描述, 解12、:变形量式是化一描个述表:达式;
Ex4:已知L={ ( n ) n | n =0, 1 , 2 , ……} , 求文法G。 解:
∵ L={ , ( ) ,(( )), ((( ))), ……} ∴ G[S]:S |( S )
编译程序是将高级语言书写的源程 序翻译成低级语言程序
复习基本概念
第3讲
1、字母表、符号串、符号串的长度、空串
序翻译成低级语言程序
设字母表∑={0, 1},则有∑ +={0,1,00,10,001,000,……}
• 方式二:当语言为无穷集合时,用文法表示。 • EX(续上例):
设用A表示∑,用式子A0表示0∈A(读作:“A产生 0”)。
符号:“”定义为“产生”、“生成”、“导出”等。 反复用 A0 A1 AA0 AA1 以上四条规则式,则可以生成无穷的集合。
一、形式语言
“定义为”或 “由……组成”
<句子><主语><谓语><间接宾语><直接宾语>
<主语><代词>
<谓语><动词>
<间接宾语><代词>
<直接宾语><冠词><名词>

编译原理复习重点 中原工学院

编译原理复习重点  中原工学院

第一章1.翻译程序:把一种语言程序(源语言程序)转换成另一种语言程序(目标语言程序)。

2.编译程序:高级语言翻译成低级语言。

3.解释程序:用该语言写的源程序作为输入,不产生目标程序,边解释边执行程序本身。

4.编译过程阶段:词法分析,语法分析,语义分析与中间代码产生,优化,目标代码生成。

5.五阶段模块:词法分析,语法分析,语义分析与中间代码产生,优化,目标代码生成,表格管理,出错处理。

6.编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化。

7.编译后端:与目标机有关的优化,目标代码产生。

8.编译程序生成:汇编语言和机器语言;高级语言书写;移植方法;编译程序自动产生;自编译方式。

9.词法分析;输入源程序,进行技法分析,输出单词符号。

10.语法分析:对单词符号串进行词法分析,识别出各类语法单位,最终判断输入串是否构成语法上正确的程序。

11.语义分析与中间代码产生:按照语义规则对词法分析器规约出的语法单位进行语义分析并翻译成一定形式的中间代码。

12.优化:对中间代码进行优化处理。

13.目标代码生成:把中间代码翻译成目标程序。

第二章1.词法规则:单词符号的形成规则。

2.语义规则:使用它可以定义一个程序的意义。

3.语法规则:定义了如何从单词符号形成更大的结构。

5.空字:不包含任何符号的序列。

6.空集:不含任何元素。

7.闭包:Σ上的一切符号串(包括ε)组成的集合用*表示。

Σ*称为Σ的闭包。

8.上下文文法组成部分:VN为非终结符号(或语法实体,或变量)集;VT为终结符号集;P为产生式(也称规则)的集合;S称作开始符号(识别符号)。

9.句型:有文法G,若S=》x,则称x是文法G的句型。

10.句子:有文法G,若S=》x,且x∈VT*,则称x是文法G的句子。

11.语言:文法G所产生的句子的全体是一个语言。

12.推导中心思想:从文法的开始符号出发,反复使用产生式,对非终结符施行替换和展开。

翻译程序就是编译程序吗

翻译程序就是编译程序吗

翻译程序就是编译程序吗
翻译程序和编译程序是两个不同的概念,但有时候人们会混淆它们。

翻译程序通常指的是一类将源代码从一种语言翻译成另一种语言的程序。

这种翻译可能是从一种高级语言(如C、Python等)翻译成另一种高级语言,也可能是从高级语言翻译成低级语言(如汇编语言或机器语言),或者反之。

翻译程序的目的可能是为了实现跨平台运行、代码优化、或者将代码转换为更适合特定目标环境的形式。

而编译程序是一种特定类型的翻译程序,它将源代码翻译成目标代码,通常是将高级语言翻译成低级语言(如汇编语言或机器语言),以便计算机能够直接执行。

编译程序经过多个阶段,包括词法分析、语法分析、语义分析、优化和代码生成等步骤,最终生成目标代码。

因此,编译程序是翻译程序的一种,但翻译程序不一定是编译程序。

1/ 1。

编译原理第一章作业完整答案版

编译原理第一章作业完整答案版

01-普通作业一(第一章)一、选择题(从备选项中选出一个或多个正确答案)。

1. 编译程序的源程序是高级语言编写的程序,目标程序是编写的程序。

A. 高级语言B. 汇编语言C. 机器语言D. 汇编语言或机器语言2. 编译程序是对进行翻译。

A. 高级语言B. 汇编语言C. 机器语言D. 自然语言3. 如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两个阶段。

A. 编译B. 汇编C. 运行D. 预处理4. 编译的工作过程一般划分为词法分析、、语义分析、中间代码生成、代码优化和目标代码生成若干阶段。

A. 表格管理B. 出错处理C. 语法分析D. 预处理5. 词法分析阶段的主要任务是识别。

A. 表达式B. 单词C. 语句D. 词组二、判断题(对于下列陈述中正确的说法选择回答“对”,否则选择回答“错”)。

1. 编译程序是一种常见的应用软件。

2. C语言的编译程序可以用C语言编写。

3. 编译方式与解释方式的区别之一在于是否生成目标程序。

4. 中间代码生成是编译程序不可或缺的部分。

5. 含有优化的编译程序执行效率高。

三、解释下列术语:(1)编译程序(2)源程序(3)目标程序(4)编译程序的前端(5)后端(6)遍四、一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程序的总体结构图。

五、何谓翻译程序、编译程序和解释程序?它们三者之间有何种关系?参考答案:一、选择题1. D2. A3. AC4. C5. B二、判断题1.错2.对3.对4.错5.错三、(1)把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。

(2)源程序,是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。

(3)为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名。

(4)编译程序的前端通常指:词法分析、语法分析、语义分析等生成最终代码以前的一系列步骤。

编译原理所有名词解释

编译原理所有名词解释

第一章编译程序是一种程序,它把高级语言编写的源程序翻译成与之在逻辑上等价的机器语言或汇编语言的目标程序。

一个高级语言程序的执行通常分为两个阶段,即编译阶段和运行阶段。

如果编译生成的目标程序是汇编语言形式,那么在编译与运行阶段之间还要添加一个汇编阶段.解释程序也是一种翻译程序,它将源程序作为输入,一条语句一条语句地读入并解释执行。

解释程序与编译程序的主要区别是:编译程序是将源程序翻译成目标程序后再执行该目标程序,而解释程序则是逐条读出源程序中的语句并解释执行,即在解释程序的执行过程中并不产生目标程序。

编译过程源程序符串进行扫描和分解,个具有独立意义的单词;语法分析的任务的基础上,根据语言的语法规则(号串中识别出各种语法单位并进行语法检查;和中间代码生成阶段的任务来描述这种语义即生成中间代码;优化的任务高效(节省时间和空间)的目标代码;的任务定机器上的机器语言程序或汇编语言程序,实现最终的翻译工作。

自编译:用某种高级语言书写自己的编译程序。

交叉编译:指用A机器上的编译程序来产生可在B机器上运行的目标代码。

自展:首先确定一个非常简单的核心语言L0,然后用机器语言或汇编语言书写出它的编译程序T0:再把语言L0扩充到L1,此时有L0 L1,并用L0编写L1的编译程序T1(即自编译)。

移植:指A机器上的某种高级语言的编译程序稍加改动后能够在B机器上运行.第二章对程序设计语言的描述是从语法、语义和语用3个因素来考虑的。

所谓语法是对语言结构的定义;语义是描述了语言的含义;语用则是从使用的角度去描述语言。

形式化的方法:用一整套带有严格规定的符号体系来描述问题的方法。

标识符:以字母打头的字母数字串字母表:是元素的非空有穷集合。

字符:字母表中的元素称为符号,或称为字符。

可以是字母、数字和其他符号。

符号串:符号的有穷序列。

前缀:指从末尾删除0个或多个符号后得到的符号串.后缀:指从开头删除…。

(同上)符号串的运算:符号串的连接、集合的乘积、符号串的幂运算、集合的幂运算、集合A的正闭包A+与闭包A*形式语言:字母表上所有的字符按照某种规则所组成的集合。

17春《编译原理》

17春《编译原理》

17春《编译原理》作业_1一、单选题1. 用高级语言编写的程序经编译后产生的程序叫_____。

A. 源程序B. 目标程序C. 连接程序D. 解释程序答案B2. 构造编译程序应掌握______。

A. 源程序B. 目标语言C. 编译方法D. 以上三项都是答案D3. 四种形式语言文法中,1型文法又称为_____文法。

A. 短语结构文法B. 前后文无关文法C. 前后文有关文法D. 正规文法答案C4. 解释程序处理语言时, 大多数采用的是_____方法。

A. 源程序命令被逐个直接解释执行B. 先将源程序转化为之间代码, 再解释执行C. 先将源程序解释转化为目标程序, 再执行D. 以上方法都可以答案B5. 四元式之间的联系是通过_____实现的。

A. 指示器B. 临时变量C. 符号表D. 程序变量答案B6. 把汇编语言程序翻译成机器可执行的目标程序的工作是由_____完成的。

A. 编译器C. 解释器D. 预处理器答案B7. 下列______优化方法不是针对循环优化进行的。

A. 强度削弱B. 删除归纳变量C. 删除多余运算D. 代码外提答案C8. 将编译程序分成若干个"遍"是为了( )。

A. 提高程序的执行效率B. 使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率答案B9. 在自底向上的语法分析方法中,分析的关键是_____。

A. 寻找句柄B. 寻找句型C. 消除递归D. 选择候选式答案D10. 设G 是一个给定的文法,S 是文法的开始符号,如果S->x( 其中x∈V*), 则称x 是文法G 的一个_____。

A. 候选式B. 句型C. 单词D. 产生式答案B二、多选题1. 一个LR(1) 项目可以看成()两个部分组成。

A. 心B. 向前搜索符集合C. 分析表答案A,B2. 循环优化的重要技术有()。

A. 代码外提B. 删除归纳变量C. 强度削弱D. 局部优化答案A,B,C3. 运行时的存储区常常划分为:()A. 目标区B. 静态数据区C. 栈区D. 堆区答案A,B,C,D三、判断题1. 解释程序适用于COBOL 和FORTRAN 语言。

电子科技大学14秋《计算机编译原理》在线作业1答案

电子科技大学14秋《计算机编译原理》在线作业1答案

14秋《计算机编译原理》在线作业1
单选题多选题判断题
一、单选题(共15 道试题,共75 分。


1. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。

A. 自左至右
B. 自顶向下
C. 自底向上
D. 自右向左
-----------------选择:B
2. 己知文法G[S]:S->eT|RT,T->DR|ε,R->dR|ε,D->a|bd。

FIRST(D)=()。

A. {d,ε}
B. {a, b, d, e,ε}
C. {a,b}
D. {a,b,#}
E. {a,b,ε}
F. {#}
-----------------选择:C
3. 若a为终结符,则A→α?aβ为()项目。

A. 归约
B. 移进
C. 接受
D. 待约
-----------------选择:B
4. 对下列错误信息,请指出可能是编译的哪个阶段,数组下标越界对应()。

A. 语法分析
B. 语义分析
C. 词法分析
D. 词义分析
-----------------选择:B
5. 在编译程序中,语法分析分为自顶向下分析和自底向上分析两类:自顶向下分析试图为输入符号串构造一个()。

A. 语法树
B. 有向无环图
C. 最左推导
D. 最右推导
-----------------选择:C
6. LR(1)分析法的名字中,“R”的含义是()。

A. 自右向左进行分析
B. 采用最右推导的逆过程——最左归约
C. 向貌似句柄的符号串后查看1个输入符号。

软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇

软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇

软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇编3(题后含答案及解析)题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。

1.将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是(48)的适当工具。

A.有利于进行反编译处理B.有利于进行与机器无关的优化处理C.尽早发现语法错误D.可以简化语法和语义分析正确答案:B解析:本题考查程序语言基础知识。

“中间代码”是一种简单且含义明确的记号系统,与具体的机器无关,可以有若干种形式。

可以将不同的高级程序语言翻译成同一种中间代码。

由于与具体机器无关,使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性。

知识模块:程序语言2.以下关于程序错误的叙述中,正确的是(50)。

A.编译正确的程序必然不包含语法错误B.编译正确的程序必然不包含语义错误C.除数为0的错误可以在语义分析阶段检查出来D.除数为0的错误可以在语法分析阶段检查出来正确答案:C解析:用户编写的源程序不可避免地会有一些错误,这些错误大致可以分为静态错误和动态错误。

动态错误也称动态语义错误,它们发生在程序运行时,例如除数为0、引用数组元素F标错误等。

静态错误是指编译阶段发现的程序错误,可分为语法错误和静态语义错误,如单词拼写错误、标点符号错、表达式缺少操作数、括号不匹配等有关语言结构上的错误称为语法错误,而语义分析时发现的运算符与运算对象不合法等错误属丁二静态语义错误。

知识模块:程序语言3.在对程序语言进行翻译的过程中,常采用一些与之等价的中间代码表示形式。

常用的中间代码表示不包括(49)。

A.树B.后缀式C.四元式D.正则式正确答案:D解析:常用的中间代码有后缀式、三元式、四元式和树等形式。

知识模块:程序语言4.编译和解释是实现高级程序设计语言翻译的两种的基本形式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设字母表∑={0, 1},则有∑ +={0,1,00,10,001,000,……} • 方式二:当语言为无穷集合时,用文法表示。 • EX(续上例):
设用A表示∑,用式子A0表示0∈A(读作:“A产生 0”)。 符号:“”定义为“产生”、“生成”、“导出”等。 反复用 A0 A1 AA0 AA1 以上四条规则式,则可以生成无穷的集合。
词法分析,语法分析,中间代码生成,代码优 化,目标代码生成均要与符号表格管理打交道, 他们各自把工作产生的一些信息存放在符号表里, 都涉及到制造,查询,更新符号表格的工作,所 以符号表的存取方法直接影响着编译程序的效率。 许多编译程序采用了一种与“3地址指令”非 常相似的“四元式”作为中间代码,格式是: 算符 左操作数 右操作数 结果
– EX: • A={a, b}, B={c, d},则AB ={ac,bc,ad,bd} • A{}={}A=A • {} { }, { }=
• 3、符号串的幂运算
– 设X是符号串,则 X0= 注: X0 ≠1 X1=X X2=XX Xn= XX……X n个X
• 例、设X=abc,则 X0=
三、文法的形式定义
1、规则(产生)式
一个规则式是一个符号与一个符号串的有序偶(对), 形如:(A,)、A 或 A ::= ,用以描述语 言中的句子是怎样产生的。 一组规则可以描述一个语言的语法结构。 非终结符,一般在左边,它能派生出符号、符号串。 用大写字母表示,如上述中的A。与之对应地,终结 符用小写表示,由它不能派生出任何符号,是一个 不可再分的基本单位,即字母表(∑)中的一个元 素。
•A3=A2A={aaa,aab,aba,abb,baa,bab,bba,bbb}
• 5、集合的闭包(A+和A*)
– 设A是任意一个集合,则定义: A的正闭包,其
A+=A1 ∪ A2 ∪ A3… A*=A0 ∪ A+ =A0 ∪ A1 ∪ A2……
•A={a, b} ,则有 •A+={a, b, aa, ab, ba, bb, aaa, aab, ……} •A*=A0 ∪ A+ ={ ,a ,b, aa, ……}
二、符号串的运算
• 1、连接
– 设X和Y是符号串,则串XY称为它们的连接。 – EX:X=ABC,Y=CDF XY=ABCCDF YX=CDFABC – Note: ε与X的连接或X与ε的连接=X
• 2、集合的乘积
– 设A、B是符号串的集合,则定义A与B的乘 积为:
AB={xy | xA, y B}
Ex:
设G[E]:EE+E|E*E|(E)|i,试证明 符号串( i * i + i )是文法G[E]的一个句子 证明:从E出发,只要证明符号串x = ( i * i + i ) 对 于文法G[E] 存在一个推导。 E(E)(E+E) (E*E+E) (i*E+E) (i*i+E) (i * i + i ) 以上从文法的开始符E ( i * i + i ),所以符号 串( i * i + i )是G[E]的一个句子。
La | b | c…… z | A | B | C…… | Z |
D1 | 2 L={ ( n ) n | n =0, 1 , 2 , ……} , 求文法G。 解:


L={ , ( ) ,(( )), ((( ))), ……}
G[S]:S |( S )
第2章 文法和语言
QU: 1、A=B* 2、A=B*C 在C语言中的,以上 两个符号串是否是合 法的、正确的? QU:那么,Compiler如 何对语法进行定义?是 基于什么形式进行判断 识别的? AN:形式语言中的文 法是阐明语法的一个重 要工具。
2.1 引言
• 形式化方法:指用一整套带有严格规定 的符号体系来描述问题的方法。
Ex:
设G[S]:S0S1|01,则 S01 S 0S1 00S11 000111 所以 S 000111
3、*推导 (广义推导)
设X,Y是符号串,若使用0次或多次规则可以从 X推导出Y,则Y为X的*推导。 记为:X Y
Ex:
设G[S]:S0S1|01,则 SS 区别: S01 直接推导长度=1 S 0S1 00S11 000111 正推导长度1 所以 S 000111
第一章课程复习 第2讲
编译程序是将高级语言书写的源程序翻译成低级 语言程序。一般包括词法分析,语法分析,中间代 码生成,代码优化,目标代码生成五个部分,还应 该包括表格管理和出错处理。
其中中间代码生成和代码优化并不是每个程序都 需要的。 词法分析器用于识别单词,语法分析器用于发现 源程序中的语法错误。 代码优化一般都是在中间代码级上完成的,对中 间代码的优化可以使目标程序的运行时间更短或所 占的空间更少。
广义推导长度 0 即:直接推导正推导广义推导
4、句型、句子
设有文法G[S],若从文法开始符号S x,则称符 号串x为文法G[S]的句型;仅仅由终结符组成的 句型叫句子。 若x是一个句型,则x (VNVT)* 若x是一个句子,则x VT*
Ex: S0S1|01
S 01 S 0S1 S 000111 (句型、句子) (句型) (句型、句子)
2、文法的形式定义 一个文法是规则的非空有穷集合。常用一个四 元组表示,定义为
G=(VT,VN,S,P)
其中:
VT:所有终结符的集合 VN:所有非终结符的集合 S:开始符 P:规则式的集合
EX:
一个文法G=(VT,VN,S,P),其中:
VT={0, 1} 所有终结符的集合 VN={A } 所有非终结符的集合 S=A 开始符 P={A0|1|A0|A1} 规则式的集合
ΣC={保留字,字母,数字,专用符号,……} C语言= ΣC 一组规则
– Ex2:汉语的字母表
Σ汉={汉字,数字,标点符号,……}
• 2、符号与符号串
– 符号(字符):一个符号是字母表中的元素。 – 符号串:是符号的有穷序列。 – EX1: Σ={a, b, c},则a, b, c, ab, ba都是Σ上的符号 串。 – Note1:符号串的顺序很重要,如:ab≠ba; 2:不含任何符号的符号串称为空串,用 ε 表示。 – 符号串长度:|a|=1,|ab|=2,| ε|=0
中无空串
–EX:
A的 * 闭包, 其中有空串
2.3 文法与语言的形式意义
形式语言 形式语言的描述 文法的形式定义 语言的形式定义 最左、最右推导 归约 递归
一、形式语言
“定义为”或 “由……组成”
<句子><主语><谓语><间接宾语><直接宾语> <主语><代词> <谓语><动词> <间接宾语><代词> <直接宾语><冠词><名词> <代词>He <代词>me QU:句子He gave me a book <冠词>a 语法上是否是正确的? <动词>gave <名词>book
推导出
<句子> <主语><谓语><间接宾语><直接宾语> <代词><谓语><间接宾语><直接宾语> <He><谓语><间接宾语><直接宾语> <He><动词><间接宾语><直接宾语> <He><gave><间接宾语><直接宾语> <He><gave><代词><直接宾语> <He><gave><me><直接宾语> <He><gave>< me><冠词><名词> <He><gave>< me><a><名词> <He><gave>< me><a><book> 同样还可推导出: He gave He a book, Me gave me a book Me gave He a book
G[E]:E i 2、若E1和E2是一个表达式,则E1+E2、E1*E2、(E1)也是 一个表达式。 + E|E * E | ( E ) EE 以上所描述的句子的集合为:
{i , ( i ), i+i,
i*i,
i+i*i,
……. }
Ex3:设计一个表示所有标识符 I 的文法。 分析:标识符--字母或字母开头的字母数字串。 解1:形式化描述: G[I]:IL|IL|ID La | b | c…… z | A | B | C…… | Z | D1 | 2 | 3…… | 9 | 解2:G[I]:IL|ILD

文法G=(VT,VN,S,P),其中:
VT={a, b},VN={A,B,D},S=A
P={Aaa|bb|aaB|bbD, Baa|aaB, Dbb|bbD}
另解:P:AB|D
Baa|aBa Dbb|bDb ∴ 文法G=(VT,VN,S,P),其中: VT={a, b},VN={A,B,D},S=A
复习基本概念
第3讲
1、字母表、符号串、符号串的长度、空串 2、符号串运算:连接、符号串的幂 文法的作用是什 3、集合的运算:集合乘、集合的幂、集合的闭 么? 包 4、形式语言的描述: (1)枚举法描述 (2)用文法描述 5、文法的形式定义
相关文档
最新文档