回 帖 发 新 帖 刷新版面

主题:编译原理的几个问题

本人学习《编译原理》,感觉那些个东西真的是好抽象,要自学真的是很困难。所幸我们用的是陈火旺院士的《编译原理》教材,里面重点介绍一些原理性的东西,而没有太多的技术细节。在此,有一些问题想像高手们讨教。
    第一,该书中提到程序设计语言中标识符和名字的意义是不同的,标识符仅仅是一个符号,没有意义,而名字却有相应的属性。比如说PI,当它作为一个标识符的时候,并没有什么意义;可是当它作为一个名字的时候,常常被用来代表圆周率。这一点我觉得疑惑,因为我学习过的C++语言中好像所有的标识符都是名字的,它们都有相应的属性,例如变量名、函数名、常量名等等,可是它们也遵循标识符的命名规则。
    第二,什么是数组的按行存储和按列存储呢?
    第三,那些个正规式到DFA和NFA等等的算法看得人头好大啊,有没有哪位大哥可以提供一个专门讲授这一部分的视频呢?如果有,不甚感激。

回复列表 (共3个回复)

沙发

[em1]

板凳

第一个,标识符和名字的问题,我觉得不用去咬文嚼字,理解就好。个人觉得,从某个程度上说,标识符就是名字。

第二个
存储序号:  #1        #2        #3        #4
行存储:arr[0][0],arr[0][1],arr[0][2],arr[0][3] ...  列号变化比行号变化快
列存储:arr[0][0],arr[1][0],arr[2][0],arr[3][0] ...  行号变化比列号变化快

第三个
DFA,NFA的转化考完就忘了

建议楼主可以做做词法分析(加难一些就做语法分析,再难做语义分析),会对编译原理认识更深刻一些。
个人觉得学它对debug有些帮助,真正创造一门语言的貌似不多。。。呵呵

3 楼


这位大侠,小弟是学计算机的,现在都大三了,可是感觉还是对计算机这个东西只懂了点皮毛,我想去考研,可是又觉得计算机这个东西考不考研也没什么所谓,只要自己有一定的基础,有了些自学的能力,考不考研没什么区别。但是,我有点想去考数学系的研究生,你能不能给些建议?

我来回复

您尚未登录,请登录后再回复。点此登录或注册