欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 编译原理心得体会500字

编译原理心得体会500字

时间:2015-12-31 17:08

懂编译原理的请进! 听说编译原理涉及很多有意思的算法,有没有看过的人总结一下,我一一到网上搜,只是

#includevoid main(){int m=0,n=0,n1=0,n2=0,n3=0,zg,fzg,flag;int bz[7]=;\\\/*状态改变控制,1 表示可以改变状态zt值,0 表示不可以*\\\/int zt[7]=;\\\/*状态值,2表示未定状态,1表示 是,0表示 否*\\\/char temp[100]=\\\\0;\\\/*用于求first集*\\\/char z[7];\\\/*非总结符*\\\/char z1[7];\\\/*总结符*\\\/char z2[7]=\\\\0;\\\/*gs[]文法中出现的标记个数的辅助字符 01234*\\\/char gs[100]=\\\\0;\\\/*文法,按顺序排成字符串*\\\/printf(请依次输入非终结符(不超过7个):);gets(z);while(z[m]!='\\\\0')fzg=m;\\\/\\\/zg是非终结符个数while(nAB S-->bC A-->k A-->b\\\ );printf(输入:0SAB0SbC1Ak1Ab\\\ );printf( (注:数字01234表示第一二三四个非终结符)\\\ );gets(gs);fflush(stdin);printf(您输入了:);puts(gs);m=0;\\\/\\\/对于输入文法字符串的转换,将每个文法式左部去除while(gs[m]!='\\\\0'){n=m;if(gs[m]>='0'&&gs[m]<='9'){m++;while(gs[m]!='\\\\0'){gs[m]=gs[m+1];m++;}\\\/\\\/gs[m-1]='\\\\0';}m=++n;}m=0;\\\/\\\/puts(gs);\\\/*情况一,直接判定是 形如: (A-->k) *\\\/while(gs[m]!='\\\\0'){if(gs[m]=='k'){zt[gs[m-1]-48]=1;bz[gs[m-1]-48]=0;}m++;}\\\/*情况二,直接判定--否 形如: (D-->aS ,D-->c) *\\\/for(n=0;n=z1[0]&&gs[m+1]<=z1[n1-1])zt[n]=0;else \\\/\\\/gs[m+1] 是非终结符n2做标记} \\\/\\\/跳出循环,无法解决该情况,推到下面情况三m++;}if(n2!=99) \\\/\\\/完成所有扫描,未出现非终结符,得出结论zt[n]=0.bz[n]=0不允许再改变zt[n]}}\\\/*情况三,最终判定*\\\/do{flag=0;for(n=0;n='A'&&gs[m]<='Z') {n1=0;for(n2=0;n2='0'&&gs[n]<='9'){for(;m'9') {if(n1==0) \\\/\\\/如果是第一个直接保存\\\/\\\/不是第一个,先与字符数组中其它字符比较,没相同的才保存else if(gs[n]>='a'&&gs[n]<='z'&&gs[n+1]>='A'&&gs[n+1]<='Z') \\\/\\\/gs[n]是终结符 且 gs[n+1]是非终结符;\\\/\\\/什么也不做,程序继续n++,扫描下一个gs[n]else {for(n3=0;n3<=n1;n3++){if(temp[m*13+n3]==gs[n+1])break;}if(n3>n1) \\\/\\\/for循环结束是因为n3而不是break}n++;}break; \\\/\\\/break位于if(gs[n]==z2[m]),对于gs[n]已找到z2[m]完成任务跳出for循环}}n2=m; \\\/\\\/存放该for循环中m的值n++;}\\\/\\\/进一步处理集除去非终结符m=0;n=0;n1=0;n2=0;for(m=0;m='A'&&temp[m*13+n1]<='Z') \\\/\\\/搜索非终结符{for(n=0;n=n1) \\\/\\\/for循环结束是因为n3而不是break,即无相同字符else n2++;}n1=0;n2=0;}n1++;}flag=m; \\\/\\\/存放该for循环中m的值}\\\/\\\/非终结符的first集输出m=0;n1=0;for(m=0;m

编译原理概念总结~~~给个详细点的

这里的概念很全,也很好懂。

编译原理

这个是1型语言

编译原理的终结符和非终结符如何理解?

终结符,通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行 推导。

不是终结符的都是非终结符。

非终结符可理解为一个可拆分元素,而终结符是不可拆 分的最小元素。

c语言实训心得3000字

C语言实践心会在这个星期里,在专业老师的带领下进行c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片