Re: [問題] 如何學寫COMPILER? [純拋磚引玉]
※ 引述《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
推
04/28 17:19, , 1F
04/28 17:19, 1F
推
04/28 18:19, , 2F
04/28 18:19, 2F
推
04/28 20:13, , 3F
04/28 20:13, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 34 之 38 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章
12
21