‘壹’ 计算机编译原理习题,写出正规式等价的文法
1、ba*:S-〉bA,A-〉з,A-〉aA2、1(0|1)*0:S-〉1AA-〉B0,B-〉ε,B-〉0B,B-〉1B3、01*|1:运算顺序,*,.(连接,可省)|,S-〉0A,S-〉1,A-〉ε,A-〉1A,4、(a|b)*a,S-〉Aa,A-〉ε,A-〉aA,A-〉bA
‘贰’ 哪里可以下载《编译原理》电子书
你需要开发环境,可以用集成的,也可以独立的。
windows下的话,一般用集成开发环境(IDE)。
微软的visual studio应该说最好了。我用2005版的,资料相对多一些。2008版的是为vista做的。你可以用那个体验版/学生版的,功能少一些,但对初学者来说足矣,免费。专业版和团队版的功能多、收费,网上有序列号。
devcpp是个相对很小的集成开发环境。程序简单的话,用它也可以。
linux下可以用命令行下的gcc,gdb,也有anjuta,netbeans,eclipse等IDE。
当然,你最好再下载C++的电子书如:
Visual C++ 2005 入门经典
C++面向对象程序设计基础教程
C++参考大全第四版
C++高级编程
‘叁’ 编译原理词法分析实验中, 文件写入顺序的问题(fputs)
1)fopen在代码中出现2次,没有必要
2)你的程序不对 你搞混和S这个字符和TOKEN。
你的第一个WHILE读入的是字符S,而TOKEN是由若干字符S构成的。而你的SWITCH(S)里面按理应该是组成TOKEN的规则,而你直接就输出了。这样如果你要结果,我给你改了下,你看下:
int main()
{
char token[20] = {'