| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3247 人关注过本帖, 1 人收藏
标题:[原创]一个支持四则运算的类
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
回复 29# 蓝色神话 的帖子
我是在学习自己的东西,到底有没有学到我自己知道。您说的我同意,不过虽然学到的少,但仍然有启发。
Yacc是肯定要学习的,但现在并没有强烈的愿望去学,我的基础还有很大问题,准备好好补一补再去学习实用的编程。
的确,国内的教程偏向于理论。但是您知不知道?编译原理的主要任务不是研究CPU指令的组成,而是致力于一种形式语言到另外一种形式语言的转换。如果你对编译原理不满,你可以看嵌入式的教材,里面的关于CPU后端的内容一定会让你满意,但是请不要强求一门学科去研究本不属于他学科范畴的东西。

关于热兵器冷兵器我不想争论,因为没有意义。我只能说,我做的可能(事实上是的确)没有实际意义,但至少我能学习到我想要学习的东西。

还有,这个是老帖子了……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-25 10:07
蓝色神话
Rank: 2
等 级:论坛游民
威 望:1
帖 子:404
专家分:24
注 册:2006-5-11
收藏
得分:0 
回复 31# StarWing83 的帖子
不错,编译原理是用来处理形式语言的理论。我不知你们老师怎么上的课,但我相信大部分学校是以讲解语法分析为主要内容的,自顶向下、自底向上是其两大方法。当然,肯定还有新技术在哪个实验室呆着。语法分析也没有什么神秘的东东,也就是根据文法来判定输入的句子是否符合该文法,为下一步的语义分析打基础。其关键核心就是分析表。如果手工完成这些东西,费时费力。如果用Yacc就不存在这个问题。词法分析也是一样。接下来就是语义分析、中间代码生成及优化、目标代码的生成及优化。往往最后的目标代码的优化才是最重要的,看看Intel的编译器的介绍就知道了。这是我从课本上知道的,当然编译器的制造技术每个公司都有其自身的保密技术。

我的印象中,在VC6.0中编写具有多态性的C++程序,反汇编后的那个代码在维护多态性的函数调用表的表头有一段多余动作的代码。即保存了一个出栈的地址,又压入了一个地址,但这两个地址是一样的,不是巧合的一样,是理论上的一样。这就是没有优化好的结果。至于什么多线程的优化,向量优化我没弄明白就不发表这方面的言论。具体可以参考Intel编译器的官方介绍。

另外我不认为嵌入式的教材能够让人理解PC的CPU,因为他们的指令集都不一样。至于架构是不是一样,我没研究过没有发言权。

另外,中国有多少人参与过CPU的设计开发我不知道,但我知道随便一本国内的《计算机组成原理》书都讲CPU的结构体系(一般为X8086或8088),这是不是对读者的不负责任?我看过一篇报道,国外的某个大学为了验证爱因斯坦的某个理论,耗资四亿美元发射一个装置到太空去验证。如果是中国,那么我相信这个理论是会作为定理来用的。

我不想说什么CPU,也不想说什么内功和外功。我只是想说的是:知识不分贵贱,用得到的就是宝,用不到的就是废品!工具就是拿来用的,是为人服务的,有车不坐你走路那是你自己的选择。是不是走路走多了就能飞起来,那得看你有没有轻功秘籍了。
2008-07-25 11:01
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
您说的对。的确是这样的。
以前写编译器,就是因为没有适当的优化手段而放弃的,后来才知道,使用GCC的前端,自己写一个后端就够了,毕竟我是做实际的开发。
当然,学习是一回事儿,实用是另外一回事儿。不过呢,总有些相似的地方。
也不用鄙视中国的教育,事实就是这样,要么逃脱,要么适应,fm26号的飞机去美国,不知道我以后有没有机会。
不管怎么样,我先学好自己的东西吧。
还是谢谢您。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-25 11:14
快速回复:[原创]一个支持四则运算的类
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.076603 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved