作者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: uranus@it.muds.net
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
推 horngsh:人不可能24小時都在最佳狀態, 不是嗎? 59.126.181.10 04/28 17:19
推 PsMonkey:我一天只要有 24 分鐘正常就好了 T__T 61.228.198.58 04/28 18:19
推 meltice:把人類從地球上de掉 這樣就沒有bug了 218.211.19.230 04/28 20:13