版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章形式语言的基础知识内容提要形式语言文法和语言分析树2.1形式语言符号和字符串符号:抽象实体,不加以形式定义。就像几何学中的“点”。或者叫原子概念,凭直觉去体会。字母表:有限个符号的集合。字母表一般用记。例如,英语的字母表={a,b,…,z,A,B,…,Z};汉语的字母表由汉字构成。字符串:字母表中符号的有穷序列。字符串的长度:组成该字符串的符号的个数。字符串的长度记作||。例如字符串banana的长度为6。空字符串记作,由0个符号组成,故||=0。字符串的前缀:该字符串领头的若干符号。字符串的后缀:该字符串结尾的若干符号。例如,字符串abc具有前缀,a,ab和abc;其后缀有,c,bc,abc。若字符串的前缀(或后缀)不是字符串本身,则称之为真前缀(或真后缀)。字符串的子串:去掉字符串的一个前缀和后缀后得到的字符串。例如,nan是banana的一个子串。字符串的子序列:从字符串中删除0个或多个符号后得到的串(这些被删除的符号可以不相邻)。例如,baaa是banana的子序列。字符串的运算字符串的连接:如果x和y是字符串,那么x和y的连接xy是把y接到x后面所形成的字符串。例如,如果x=dog,y=house,则xy=doghouse。由的定义,显然有==。字符串的方幂:设x是字符串,把x自身连接n次得到字符串z,即z=xxx…x,称为字符串x的n次方幂,记作z=xn。我们规定x0=。例如,设x=AB,则x0=,x1=AB,x2=ABAB,x3=ABABAB。对于,n>0,有xn=xxn-1=xn-1x。字符串集合的连接:两个字符串集合A和B的连接AB={xy|xA,yB},即AB是满足x属于A,y属于B的所有字符串xy所组成的集合。例如,若A={a,b},B={c,d},则AB={ac,ad,bc,bd}。另外,我们有{}A=A{}=A。对任意字符串集合A,An=AAA…A,即n个A相连。A0定义为{}。Kleene闭包:一个固定的字母表上所有的字符串的集合称为集合的Kleene闭包,记作*。根据定义,我们有*=012…n…。正闭包:+=123…n…称为的正闭包。显然有*=0++=*=*形式语言
语言:给定字母表上的任意一个字符串集合,即*的子集(*本身也是自己的子集,所以*也是语言)。空集和由空字符串组成的集合{}都是语言。2.2文法和语言 文法是程序语言的生成系统,而自动机则是程序语言的识别系统。用文法可以精确地定义一个语言,并依据该文法构造出识别这个语言的自动机。因此,文法对程序语言和编译程序的构造具有重要意义,如程序语言的词法可用正规文法描述,语法可用上下文无关文法描述,而语义则要借助于上下文有关文法描述。2.2.1基本概念定义文法 文法表示成四元组G=(VT,VN,S,P),其中:
(1)VT为终结符号(terminal)集,是一个非空有限集,它的每个元素称为终结符号;
(2)VN为非终结符(non-terminal)集,也是一个非空有限集,其每个元素称为非终结符号。 要求VTVN=;
(3)S为一文法开始符号,也称作识别符号,是一个特殊的非终结符号,即SVN; (4)P是产生式的非空有限集,其中每个产生式(或称规则)是一序偶(,),通常写作 读作“是”或“定义为”。在此,为产生式的左部,而为产生式的右部,、是由终结符和非终结符组成的符号串,(VTVN)+且至少有一个非终结符,而(VTVN)*。 终结符和非终结符的集合用符号V表示,即V=VTVN。 终结符代表了语法的最小元素。 非终结符号也称语法变量,它代表语法实体或语法范畴;非终结符代表一个一定的语法概念,因此,一个非终结符是一个类、一个集合。 例如,在程序语言中,可以把变量、常数、“+”、“*”等看作是终结符,而像“算术表达式”这个非终结符则代表着一定算术表达式组成的类,如i*(i+i)、i+i+i等;也即每个非终结符代表着由一些终结符和非终结符且满足一定规则的符号串组成的集合。产生该式是侧定义求语法逗实体蹦的一冒种书隐写规血则。域一个槽语法膛实体获的相经关规冒则可树能不蛙止一贫个。P1,P2,…,Pn可将帖这些言有相胶同左烛部的柄产生繁式合暮并为份一个员,即识缩写航成P1∣2∣…冰∣n其中掀,每严个i(i谈=1右,2俱,…询,n拢)称为P的一牙个候万选式桐,直诉竖“村∣”桨读为涌“或重”,监它与含“”一罪样是答用来洪描述甲文法沃的元俗语言廉符号(即不点属于的字派符)。例2.薪1文法G=溜(VN,按VT,返P,恩S海),其中VN={都S},VT={沙0,膜1},P=走{S0仙S1踢,S0爪1}。例2.莲2文法G=换(VN,虽VT,款P,锣S谁),其中VN={澡<标识毙符>,耐<字母>,饺<数字>},VT={租a,,获z,女0,,巡寿9},P=交{<标识牌符><字母><标识改符><标识仇符><字母><标识压符><标识帽符><数字><字母>a横|雷|z<数字>0货|略|9}S=桨<标识肉符>习惯相上只吴将产攻生式霉写出选。并揉有如滔下约使定:第一欺条产歼生式摘的左平部是促开始拢符号用尖稻括号次括起断的是近非终则结符辅,否吧则为遭终结蹲符。辞或者功大写召字母枯表示梨非终津结符蹈,小君写字每母表民示终宋结符G可写势成G[替S],其中S是开田始符猴号定义晓直则接推伯导&直接谣规约设文损法G=余(VT,VN,S汇,P把)且、(VTVN)*,如果齐存在滔产生膜式A((VTVN)*),则称A可直接劫推导出举,或者古说渡是殃A的直接盖推导,记册做A也叮其中方“”表电示直失接推晕导出事,是阅应用叶产生滚规则陕进行罗推导华的记渠号。达反过掠来,灰则称厉可直接既规约到A,或者爸说A是定的直接终规约。注意盼“”与姻“”不渣同,贴“”是趴产生屿式中贝的定惨义记樱号。积直接栋推导荡是对吹文法烫符号脉串A中的丽非终塘结符A用相彼应的熄产生炎式A的右撇部来替数换,弹从而茅得到渐。例如伏,对贵例2.古1和例2.拉2的文反法G,可以屯给出之一些想直接掌推导芽的例碰子:0S鼓10桂01压1,S0植S1限,0S停10泛0S灰11<标识厉符><标识仆符><字母><标识直符><字母><数字><字母><字母><数字>S0铸S1阻,S0杂1<标识缝符><字母><标识腊符><标识递符><字母><标识辈符><标识腰符><数字><字母>a|根|邻z<数字>0毁|茂|9定义化推兰导&规约逃的传惰递闭郑包如果腹存在贫一个磨自1至n的直前接推砍导序托列:123…n(n>1抚),则我折们称1可推番导出n,或称n规约铸到1,记为1+n,它表驳示从1出发到经过视一步罩或若击干步坝可推责导出n。定义崇推躬导&规约辜的自惠反传以递闭丑包如果休有1+n或1=n,则记1*n,表示蔬从1出发促,经千过0步或郑若干纪步可祝推导洒出n。例如灯,对例2.馆1的文闷法,0S富10淡0+00刚11倒00,当絮然也吧可以州是0S嘱10岩0*00安11炮00。对2.扒2的文页法,<标识摔符>+x1,当晃然也栋可以累是<标识痕符>*x1。S0登S1鹿,S0纲1<标识塘符><字母><标识唤符><标识厚符><字母><标识罪符><标识含符><数字><字母>a|绝|缸z<数字>0桨|泊|9定义句型&句子设G[声S]是一剩文法亚,S是它甚的开测始符方号,钥如果S*,(VTVN)*,则称是文喇法G[竿S]的一命个句搁型;咏如果VT*,则称是文舞法G[励S]的一此个句您子。例如党,S,0S巧1,00顽01森11都是哗例2.兵1的文任法G的句厘型,涂其中00密01岭11是G的句奏子。<标识漆符><字母>,<字母><数字>,a1等都纱是例2.慌2的文帮法G的句挣型,戒其中a1是G的句兵子。S0洽S1推,S0匆1<标识白符><字母><标识干符><标识惹符><字母><标识纤符><标识增符><数字><字母>a|缘瑞|张z<数字>0命|腹|9定义哥文掠法的封语言文法G[桑S]产生师的句什子的螺全体扰称为窜由文胆法G[尊S]产生桑的语品言,顾记为L(坑G),即有L(喝G)世={∣S*且VT*}。例如借,例2.百1的文摇法产奴生的路语言伟的句辱子具声有0n1n的形轿式。定义文法引等价若L(草G1)=蚀L(岭G2),则称须文法G1和G2是等掘价的龙。例如坦,文浓法G[躁A]近:抬A0恳R,A0做1,R毯A1。和例2.仅1的文激法等姜价。S0杰S1谎,S0饰12.勾1.略2Ch宴om京sk漂y谱系语言预学家No用amCh刚om魔sk翠y于19残56年首变先建阶立了筝形式酿语言斯的描应述,醉定义达了四蹄类文串法及旷相应肯的形咐式语问言,临并分滩别与葱相应岂的识梁别系奶统相括联系姨,它引对程斯序语苏言的亮设计雪、编舟译方条法、房诚计算旨复杂派性等录方面族都产陡生了毛重大侄影响羊。Ch崭om慈sk直y把文貌法分监成四腿种类素型,禾即0型、1型、2型和3型。歪这几哪类文救法的繁差别带在于赌对产慈生式醒施加止不同傻的限榴制。0型文舍法与0型语兵言(对应司图灵安机)如果茶文法G的每总一个租产生粥式具四有下苏列形睡式:其中谢,V*VNV*,即至少佛含有喊一个腊非终慰结符吼;V*;则称矛文法G为0型文猴法或值短语晨结构迅文法骗,记糊为PS肠G(向Ph旷ra姐se凭S毅tr好uc映tu懂re里G断ra祥mm台ar唉)。0型文鸽法相纸应的稠语言悄称为0型语根言或衣称递锄归可茧枚举电集,弓它的草识别绑系统格是图幼灵(T凡ur搜in浸g)机。1型文饿法与1型语孔言(对应壁线性律界限苏自动漠机)文法G的产脱生式在0型文伏法的鬼基础渡上增础加了铃字符吼长度痕上满咽足||孕||的限垮制,据则称梁文法G为1型文民法或着上下济文有贼关文厚法,故记为CS乞G伤(C腐on赶te狱xt流-S唯en初si羊ti贯ve跑G纳ra瓣mm采ar女)。1型文津法相视应的戒语言亮称为1型语涝言或腹上下克文有奖关语样言,叫它的挖识别挖系统裁是线筹性界坏限自砍动机酷。1型文组法的劣另一稠种定沟义方赏法是故文法G的每捡一个痒产生斥式具分有下抗列形撇式:A汗酬其中身,AV*,AVN,V+;显然折它满忙足前取述定兵义的陪长度样限制哨,但愈它更姥明确坑地表牺达了遗上下罪文有页关的怒特性族,即A必须抖在、馆的上届下文司环境芬中才狮能被所替习换。自然知语言妙的语哥法应僚属于摘上下手文有需关文网法。2型文定法与2型语田言(对应垫下推洗自动刊机)文法G的每谋一个呆产生敌式具叉有下辩列形怜式:A其中骆,AVN,V*,则称千文法G为2型文烈法或使上下农文无浊关文腐法,诱记为CF话G匙(C肃on斯te拉xt拦-F成re填e兄Gr牌am吵ma豪r)。2型文乏法相忆应的验语言编称为2型语敌言或须上下燃文无私关语歌言,态它的鞠识别蒙系统炼是下绞推自偷动机陪。程序蛮设计锯语言踏的语没法是裂上下列文无林关的赖。3型文雄法与3型语较言(对应雹有限董自动亡机)文法G的每庭个产岛生式租具有屑下列加形式贱:A或AB其中停,A、BVN,VT*,则文鹊法G称为糠右线掠性文文法。符若每个桂产生振式具辫有下五列形揭式:A或AB则文笔法G称为高左线吉性文桶法。杀右线她性和饱左线您性文把法都视称为3型文巡寿法、执正规下文法难,记柳为RG伏(观Re嘉gu岗la劈燕r蛾Gr忘am捏ma民r)。3型文法躺相应烟的语蜻言为3型语况言或常正规尚语言诸,它报的识灰别系上统是即有限骗自动凯机。例2.束1和例2.土2中的冤文法租都是浊上下尖文无撑关的敏。例2.凶3设G=件(VN,祸VT,跌P,算S今),VN={企S,让B板,扮E},VT={孩a,柏b继,猫e},P=魔{Sa坐SB椅E,Sa当BE,EBB野E,aBa右b,bBb数b,bE婚b含e,eE奇e矿e}文法G是上哲下文江有关组的,L(日G)编={猪anbnen|n1}S0初S1亚,S0匪1<标识恳符><字母><标识翠符><标识禽符><字母><标识碰符><标识贯符><数字><字母>a|挠|城z<数字>0唤|荣|9SaS句BE(SaS攻BE)aa期BE沃BE(SaB竟E)aa遥bE护BE(aBab)aa判bB妇EE(E欢BBE鼠)aa数bb恩EE(bBbb)aa纽奉bb轿eE(bEbe)aa蜘bb递ee(eEee)SaSBE很aaSBEBE虚aaaB每EBEBE四类盖文法剩的联免系与呆区别联系:从0型文膛法到3型文犯法逐踏渐增参加限牛制。1~好3型文豪法都氧属于0型文嘴法,2、3型文庭法均巴属于1型文温法,3型文讨法属烫于2型文炊法。区别:(1爸)1型文鞋法中拒不允预许有辈形如哥“A”的产博生式梁存在付,而2、3型文共法则缴允许晴形如宇“A”的产桶生式窝存在勉;(2赔)0、1型文甘法的己产生跪式左溪部存厦在含级有终饶结符贱号的屑符号付串或绣两个王以上传的非脂终结撒符,爆而2型和3型文客法的电产生凳式左深部只洞允许品是单字个的宗非终强结符她号。文法坟的应暗用在编奖译方篮法中垃,通杰常用3型文拣法来棒描述紫高级爱程序拦语言厨的词积法部饥分,乎然后丈用有副限自船动机FA来识柴别高浆级语锅言的鼠单词涉;利洲用2型文坛法来熟描述清高级驶语言柜的语文法部执分,逗然后余用下咽推自颤动机PD赶A(Pu孤sh富-D曲ow抖n戏Au屑to奸ma挎ta)来识倚别高孩级语付言的锡各种第语法架成分俩。贯穿动词法惨分析味和语贱法分线析始以终如踢一的啊思想娘是:阳语言翠的描忆述和料语言虎的识捷别是滤表示允一个孙语言急的两吼个不位同的滨侧面厌,二绞者缺宋一不活可。接用正快规文芝法和稀上下纵文无厚关文悦法描意述语懂言时再的识岭别方丙法(即自妄动机)不同话。通肃常,抄正规熔文法富适合谱于描陵述线钻性结鱼构,蚂如标鸽识符产、关对键字掌和注厌释等蚀;而凤上下缝文无鄙关文给法则烤适合乐于描迟述具拴有嵌员套(层次)性质分的非虫线性沟结构专,如担不同仆结构营的语紧句if梳-e抓ls泡e、wh匙il萄e等。2.肯2推导静与分茄析(语法)树上下誉文无秤关文志法有徒足够磁的能匪力描级述现纯今程脖序设号计语旋言的膝语法削结构谢,比色如描违述算胃术表检达式黄和各限种语勇句等妻。例2.败6文法G[快E]:E→欣E+客E∣姜E*翻E∣埋(E湿)│耐i非终习结符E表示标一类关算术肺表达海式。i表示岗程序西设计象语言驻中的拼变量询,该孟文法断定义乐了由叶变量遗、+、*猪、(和)组成听的算听术表壳达式岛的语难法结暑构。分析爽树对程估序语童言来稀说,先有两趣个问笋题需妻要解察决:语其一票是判献别程膝序在百语法求上是服否正低确;垫其二腹是句缸子的还识别校或分沿析。悠在编既译方隶法中字,为泪了便埋于识鼻别或维分析蔬句子梢而引娃入了警分析犯树这春一重患要的粗辅助昨工具沈。分羞析树队以图医示化哪的形滋式把蒸句子滤分解皱成各笼个组圆成部抄分来探描述枕或分诞析句血子的登语法民结构身,这馅种图弹示化扶的表搁示与门所定朝义的婆文法杀规则治完全划一致成,但醋更为陡直观常和完衫整。对文负法G=己(VT,秒VN,重S,听P闭),满足搅下列妙条件骨的树臣称为G[靠S]的句拨型的芒分析雷树:(1牵)结点埋用G[撤S]的一心个终基结符矮或非城终结财符标损记;(2号)根结货点用典文法注开始蛙符S标记利;(3费)内部瓶结点(指非交叶结沿点)一定且是非捐终结窝符,剧如果祖某内虹部结每点A有n个分虏支,开它的微所有别子结毁点从制左至摇右依五次标情记为x1、x2、…、xn,则Ax1x2…xn一定抓是文仔法G[垦S]的一碎条产纤生式但;(4泄)如果客某结妈点标婆记为,则它协必为诞叶结古点且辉是其滚父结贵点的夏唯一执子结惨点。例2.滚7例2.较6的文掘法的拆一棵撇分析割树句子i+桌i*窑i的分偶析树E→惜E+沟E∣谅E*E∣大(E宾)│布i在一瓶棵分鼻析树粗生长余过程踪蝶中的械任何争时刻颠,所赖有那驳些没叫有后仿代的航树叶殃结点末自左沾至右骨排列顾起来光就是锁一个肺句型痰。分析绒树表遍示了惧在推陵导过辟程中钱施用心了哪庆个产寻生式泥和施幅用在板哪个石非终久结符鱼上,偏它并妨没有劣表明爽施用模产生作式的衡顺序梅。例如恶,上因面的末分析焰树表同示的缩慧句子i+棉i*疤i可以陵有不考同的绪推导殃过程凤:EE辆+E步i猫+E葱i左+E肺*E删i俱+i成*E涨i息+i桃*iEE充+E猾E稿+E低*E剥E摇+E燃*i跨E委+i仔*i似i甚+i臂*i最左(羡最右撕)推京导推导睬序列联中的辈每一耕步推盆导都冶是对独句型课中的职最左词(最洪右)扯非终厕结符途用相逝应产例生式瘦的右罩部进挎行替仗换,丸这样摘的推帽导称材为最左胆(最决右)嘱推导。最叹右推何导常捐被称简为规范携推导。由滥规范胖推导虎所得百的句言型称影为规范惨句型。规族范推按导的惭逆过幼程便盗是规范密规约。例如抵,前刑面的齐第一店个推童导就麦是最锣左推豆导,照而第面二个稍推导器就是志最右暗推导弟。因此诵,一偏棵语饿法树攻表示唉了一俱个句雨型种使种可科能的略不同驼推导车过程涛,包箱括最菠左(最右)推导销。如案果我穷们坚平持使铸用最偏左(或最且右)推导姓,那华么一志棵语朽法树娃就完妨全等岸价于叙一个湖最左(或最摔右)推导千,这掏种等猜价性拜也包熟括语蔽法树拨的每环一步税生长温和推鸦导的他每一款步展迹开的励这种米完全挽一致园性。介词漠短语负附着饲歧义He嫂s衫aw疮a与b惩oy管w棍it抱h缓a写te谈le品sc村op继e.他通喝过望但远镜松看到孕一个登男孩突。他看厕到一作个带同望远蹄镜的霞男孩革。文法瓣的二枣义性一个柿句型蠢是否讲只对此应唯楚一的令一棵属语法孙树呢忽?一拴个句筒型是恨否只缩慧有唯防一的英一个汪最左乘(最旗右)从推导怠呢?约非也斩。例如思,例2.犁6的文诞法G的句罗子i+脾i*i就有立两个句不同乓的最颗左推软导:EE轻+E订i教+E测i插+E*E贩i+抵i*E琴i+彩i*iEE盐*E贩E醉+E仅*E存i+倡E*E腿i+卷i*E烈i+辛i*i对应吊有两潜棵不抚同的吼语法偿树:EEEiEE+*iiEEEiEE*+ii文法G[舰S]的一跟个句捎子如抓果能匠找到燥两个锄不同鬼的最广左推于导(或最筒右推搅导),或原者存哄在两饱棵不陆同的崖语法渐树,虎则称危这个雀句子尖是二宁义性女的。乒一个遮文法请如果航包含旗二义孩性的绘句子盟,则收这个花文法教是二惰义文更法,崇否则像是无巩二义呢文法灭。再如克,条姓件语仇句的禽文法G[浆S]为:G[稀S]何:S→惧ifB妥SS→勤ifB恋S钻el蔑se陶SS→抓A预/济*A指其夫它语剥句*/其中输,VN=桌{B仅,S屯,A顿},VT=再{i币f惠,养el碰se斩}。句型if塘B隙i狐f汇B喇S甲el菊se欧S所对繁应的否两棵丢不同命语法瘦树:因此肾,文斤法G[塞S]是二造义性否文法假。SifS(a)(b)BSifSelseBSBSifSelseifSB注意:一店个文醉法是如二义麦性的刺,并费不说锣明该男文法隐所描肥述的泪语言喇也是窑二义狂性的敌。也目即,晨对于痕一个慎二义雄性文登法G[狐S],如果垮能找瓣到一险个非渡二义樱性文拴法G'缴[S蹲],使得L(亚G'尼)=醒L(胜G),则该肚二义趴性文普法的浊二义窗性是徒可以寺消除灰的。柄如果搏找不锁到这忍样的G'恒[S样],则二季义性惠文法月描述冷的语将言为疗先天秩二义刻性的响。文法赴二义狗性消叛除的宴方法不改礼变文独法中筐原有龄的语娘法规够则,介仅加绸进一州些语凶法的姿非形兰式规战定。如对丙例子2.境6的文脊法,错不改灾变已压有的吗四条众规则桑,仅童加进燃运算逃符的妇优先哈顺序价和结辆合规倚则,药即*粗优先漂于+,且拍*、+都服棉从左剧结合否。构造蹲一个裳等价肿的无杨二义镇性文割法,行即把传排除庸二义坟性的晋规则秧合并塔到原臂有文捏法中严,改携写原叠有的怜文法楚。例2.荷8可以面将例2.筋6的文馋法改怕写为椅无二薯义性字的文用法G'锈[E逐]如下辛:E→瞧E+寄T∣袜TT→您T*液F∣宪FF→魄(E右)∣艰iE→狡E+冬E∣既E*E∣阴(E拢)│核i注:1)二巨义性乳会给秒语法字分析滥带来删不确吃定性纽奉。2)文肾法的表二义存性是倍不可套判定叮的,跌即不浮存在闭算法潜,能像够在姑有限尊步数月内确偷切判袖定一逐个文超法是逼否为度二义紧文法啊。3)若喘要证蒙明是仇二义罩性,文只要粘举出吼一例糠,即僵给出鼻文法汇的某饲个句杰子有跃两个钟不同索的最犯左(蠢最右押)推蚁导,左或两员棵不近同的清语法打树。4)若启能控福制文颗法的绞二义拿性,扒即加始入人垒为的荒附加裁条件渗,则姥二义凉文法悉的存屋在并啊非坏立事。自顶润向下胶的语魄法分摧析例:县文法G:ScA壁dAabAa识别泡输入园串w航=ca旗bd是否哀该文问法的秒句子推导色过程纤:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论