编译程序是将高级语言书写的源程序翻译成低级语言程序
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篇一:一、简答题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精选)

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.实现计算机网络需要硬件和软件。其中负责 管理整个网络各种资源、协调各种操作的软件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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、文法的形式定义