欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年正规文法-正规式收集 .pdf

    • 资源ID:27867707       资源大小:364.37KB        全文页数:18页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年正规文法-正规式收集 .pdf

    由正规文法构造正规式年级专业学号姓名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 一、实验目的要求输入:任意的正规文法。输出:相应的正规式。二、实验原理一个正则表达式的值是正则集,它是正则语言的另一种表示法。不难看出,除了符号外,一个正则表达式的含义类似于正则文法的一个非终结符号规则右部的含义。例如,对于 := 0/1/2/ /9,由非终 结 符 数 字 所 产 生 的 字 符 串 集 合 与 正 则 表 达 式0/1/2/9 所定义的字符串集合是相同的。正则集,它对应一个不包含任何句子的语言,引进的目的主要是为了理论上的完备性。三、实验代码:#include #include #include #include using namespace std; struct Rule 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - string left; /规则左部 ,因为输入的为 2 型文法, string right; /规则右部; struct RuleData string left; vector right; ; class Grammar private: vector grammar; /文法Rule rule; /规则vector Dleft; RuleData ruledata; public: Grammar() Grammar() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - void ChangeInput (string input); /输入分析void Show(); / void DataChange (int C); /存储结构转换vector grammardata; ; void Grammar:ChangeInput (string input) /扫描字符串 ,遇到-停止, /并跳两格int help1 = 0; rule.left.erase(); rule.right.erase(); for (int i = 0; i int (input.size(); i+) if (inputi = -) help1 = i; break; rule.left += inputi; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - if (help1 != 1) cout不符合要求 !; exit(0); help1 = help1 + 2; for (int j = help1; j 复杂 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - int l = 0; grammardata.clear(); ruledata.left.erase(); ruledata.right.clear(); ruledata.left = grammar0.left; ruledata.right.push_back (grammar0.right); grammardata.push_back (ruledata); for (i = 1; i int (grammar.size(); i+) /存储转换 for (j = 0; j 简单 grammar.clear(); for (i = 0; i int (grammardata.size(); i+) rule.left.erase(); rule.right.erase(); rule.left = grammardatai.left; for (j = 0; j int (grammardatai.right.size(); j+) rule.right = grammardatai.right.at(j); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - grammar.push_back (rule); void Grammar:Show() cout输入的文法的正规式为 :endl; for (int i=0; i int (grammar.size(); i+) coutgrammari.left=grammari.rightendl; class GenerateGtoE: public Grammar / 正规文法转正规式 private: public: GenerateGtoE() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - GenerateGtoE() void Generating (); ; void GenerateGtoE:Generating () DataChange (0); /STEP 1 /将文法 G 的所有非终结符形如a1A|a2A|.的候选式/归并为 (a1|a2|.)A 的侯选式,其中 aVt,A Vn string Z1 = |; string Z2 = (; string Z3 = ); string Z4 = *; string help1, help2; for (int i = 0; i int (grammardata.size(); i+) for (int j = 0; j int ( grammardatai.right.size(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - j+) for(int k = j + 1; k = A & Aj = Z) if (grammardatai.right.at(j).find (Z2) != 0) help1 = Z1 + grammardatai.right.at(k).substr(0, ck); help2 = Z2 + grammardatai.right.at(j).substr(0, cj); grammardatai.right.at(j) = help2 + help1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - + Z3 + Aj; else help1 = Z1 + grammardatai.right.at(k).substr(0, ck); help2 = grammardatai.right.at(j).substr(0, cj-1); grammardatai.right.at(j) = help2 + help1 + Z3 + Aj; for(int t=k;t (b1|b2.)*(a1|a2|.),再用其替换掉其他规则中的 A /由下而上 ,逐步替换for ( i = grammardata.size() - 1; i = 0; i-) string help; help.erase(); help1.erase(); help2.erase(); /A 的右部的最后的符号为A for (int j = 0; j yA 变为 A-y*,help1 = y + *, if (help1.length() = 0) help1 = grammardatai.right.at(j).substr (0, cj); else help1 += Z1 + grammardatai.right.at(j).substr (0, cj); else if (help2.empty() help2 = grammardatai.right.at(j); else help2 += Z1 + grammardatai.right.at(j); if (help2.find (Z2) = string:npos & help2.find(Z3) = string:npos & help2.find (Z1) != string:npos) help2 = Z2 + help2 + Z3; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - - - - - - - - grammardatai.right.clear(); if (help1.empty() = false) help = help1 + Z4; help += help2; grammardatai.right.push_back (help); help.erase(); for ( j = i - 1; j = 0; j-) for (int k = 0; k int (grammardataj.right.size(); k+) int ck = grammardataj.right.at(k).length() - 1; if (grammardataj.right.at(k).find (grammardatai.left) = ck) help = grammardataj.right.at(k).substr (0, ck) + grammardatai.right.at(0); grammardataj.right.at(k) = help; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - for ( i = 0; i int (grammardata.size() - 1); i+) grammardata.pop_back(); DataChange (1); void main() string input; GenerateGtoE gg_e; int N; coutN; cout请输入规则 :endl; for (int i=0; iinput; gg_e.ChangeInput(input); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - gg_e.Generating(); gg_e.Show(); 四、实验结果对于正规文法SaA|a ;A(aA|dA)|(a|d);其正规式应为S=a(a|d)*. 实验为S=a(a|d)*(a|d) | 可以化为 S=a(a|d)* 。故实验结果正确。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - - 对于正规文法SaB;BbA|bB ;Ac|cA ;其正规式应为S=abb*c*c. 实验为S= abb*c*c. 故实验结果正确。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -

    注意事项

    本文(2022年正规文法-正规式收集 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开