作者tinlans ( )
站内Programming
标题Re: [问题] 如何学写COMPILER? [纯抛砖引玉]
时间Sat Apr 28 17:17:31 2007
※ 引述《halajohn (Wei Hu)》之铭言:
: : 答案很简单,
: : 因为 C++ 和 Java 一直还有在改进,
: : 但是 yacc 停住了,
: : spirit 不但使用了新技术且确实达到了使用该技术的目的 (好写好 debug),
: : 而且它仍然在不断改进当中 (要注意是技术面的改进,可以比较看看它的历史纪录)。
: boost::spirit 有使用新技术吗?
: 应该都是旧技术吧, 只是封装在 C++ 绚丽的用法里面.
我倒不觉得那个叫做只是绚丽的用法,
固然某些写法会让人觉得惊奇,
但强调「将错误提前至编译期」的技术本身确实是先进的,
错误讯息的长度并非除错困难的判断标准,
所谓除错困难是连 bug 在哪都不知道的才较困难,
特别是在执行期偶尔出现的 bug 最不好抓;
虚有其表的技术终究只是玩具,
只能拿出来跟人现却缺乏实际用途,
要把一个 library 送进 boost 里并没有想像中的容易,
人们就是觉得需要它才会被纳入。
当然 spirit 里用的技术都是要说它旧也是可以,
只不过相较之下 yacc 更旧,
C++ 本身就是旧东西,
从现今的角度来说它的某些技术应被视为「旧的底线」,
有不少地方采用的技术都停留在 80 年代和更早,
在 2000 年以後还持续重复犯着 80 年代或更早的人犯的错误,
不断的为这些已知可以避免的错误付出昂贵代价,
坚持相信人是完美的 (永远在工作时保持最佳状态,严谨的注意每件该注意的事),
搞到现在大家的主要工作内容还总是在 debug,
这样实在不是好现象。
--
Name: Tseng, Ling-hua E-mail Address:
[email protected]
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage:
https://it.muds.net/~uranus
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.220.241
1F:推 horngsh:人不可能24小时都在最佳状态, 不是吗? 59.126.181.10 04/28 17:19
2F:推 PsMonkey:我一天只要有 24 分钟正常就好了 T__T 61.228.198.58 04/28 18:19
3F:推 meltice:把人类从地球上de掉 这样就没有bug了 218.211.19.230 04/28 20:13