談談自己看SICP的一些體會
第一章 構造過程抽象
這一章其實和C語言完全等價, 不打算深入學習LISP的可以快速略過。 思想上沒有太多新的東西。
這一章最核心的價值就是下面3句話, 理解了這一章就算看完了。
語言的原型系統
·如何組合
·如何提供高層抽象
這3句話是所有語言的核心。 基本上適用所有人。
後面的遞歸和迭代, 形式上和C差別大, 思想上其實和C沒多大區別, 高階函數, C的函數指針稍微嘔心了點,也湊合着能替代。
閉包, 用下面嘔心的結構也能湊合替代。
typedef struct stClosureFunc {
void * ctx;
void* pFunc;
} ClosureFunc
總而言之, 不打算深入學習lisp的第一章1-2個小時可以快速略過。(如果想轉Lisp開發, 還是有必要花1-2個月做做題)
第二章
前面的數據抽象, 和C的玩法也沒啥大區別, 熟悉的話不用花太多時間。
第二章主要要學的是2.3符號系統。C基本不提供,很值得看看,能開拓視野。
第三章 關於序列化,這個在實際C項目中也大量用, 基本是共通技術。關於流, 想法很新, 就不清楚具體項目上是否使用過。
C用的更多是Unix系統的管道思想, 或者消息隊列思想。 消息隊列事實上是序列化和流技術的結合。
前面3章基本上是基礎的東西。 第4章, 講的是解析器實現。 採用的是自上而下風格。很有意思。
去年自己一直在研究編譯器, 有些不一樣的體會。 有點遺憾的是, 沒看到詞法分析,
有限狀態機等正則表達式概念不知道lisp是如何實現的。另一個很遺憾的問題,是書中性能分析比較少。
如何優化方面介紹的比較少。
第5章, 是精華, 也是這本書最值得學的章節, 對理解計算機模型本質很有幫助。
個人體會 第1-3章看書加習題,大概1個月
第4章 1-2個月
第5章 3-6個月