编译原理基础——习题与上机题解答 刘坚 第1-5章 第2章新.pptVIP

编译原理基础——习题与上机题解答 刘坚 第1-5章 第2章新.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.1 分别给出下述Pascal和C程序段的记号流形式。其中每个记号以有序对(记号类别,记号属性)的形式表示。例如:left + right 的记号流应该是:(id, left)(op,+) (id, right)。程序段中的注释可以忽略。   (1)? Pascal   function max (i, j : integer ) : integer ; { return maximum of i and j }   begin if i j then max := i else max := j end;   (2) ?C   int max (i , j ) int i, j ; /* return maximum of i and j */    { return i j ? i : j ; }   解:   (1) ?Pascal   类别 属性 类别 属性   (keyword, function ) (id, max )   (keysymbol, ( ) (id, i )   (keysymbol, , ) (id, j )   (keysymbol, : ) (keyword, integer )   (keysymbol, ) ) (keysymbol, : )   (keyword, integer ) (keysymbol, ; )   (keyword, begin ) (keyword, if )   (id, i ) (relation, )   (id, j ) (keyword, then )   (id, max ) (assign, := )   (id, i ) (keyword, else )   (id, max ) (assign, := )   (id, j ) (keyword, end )   (keysymbol, ; )   (2) ?C   类别 属性 类别 属性   (keyword, int ) (id, max )   (keysymbol, ( ) (id, i )   (keysymbol, , ) (id, j )   (keysymbol, ) ) (keyword, int )   (id, i ) (keysymbol, , )   (id, j ) (keysymbol, ; )   (keysymbol, { ) (keyword, return )   (id, i ) (relation, )   (id, j ) (keysymbol, ? )   (id, i ) (keysymbol, : )   (id, j ) (keysymbol, ; )   (keysymbol, } )   2.2 用正规式描述习题2.1中的记号。   解:   (1) ?Pascal   keyword = function | integer | begin | if | then | else | end   id = char (char | digit)* (其中,char=[a–zA–Z],digit=[0–9])   assign = :=   keysymbol = ( | ) | , | : | ;   relation =   (2)? C   keyword = int | return   id = (_ | char) (_ | char | digit)* (其中char=[a–zA–Z],digit=[0–9])   keysymbol = ( | ) | { | } | : | ? | ; | ,   relation =   2.3 令A、B、C是任意的正规式,证明下述关系成立:   (1) ?A|A = A   (2) ?(A*)* = A*   (3) ?A* =ε|AA*   (4) ?(AB)*A =A(BA)*   证:   (1) 设正规式A表示的正规集为L(A)。   因为 L(A|A) = L(A)∪L(A) = L(A)   所以 ?A|A=A   (2) 因为 (A*)* = A** A** = A*

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档