程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C開發者眼中的SICP學習

C開發者眼中的SICP學習

編輯:關於C語言

C開發者眼中的SICP學習


談談自己看SICP的一些體會


第一章 構造過程抽象

這一章其實和C語言完全等價, 不打算深入學習LISP的完全可以快速略過。 基本上沒有什麼大的價值。

這一章最核心的價值就是下面3句話, 理解了這一章就算看完了。

語言的原型系統
·如何組合
·如何提供高層抽象


這3句話是所有語言的核心。 基本上適用所有人。 為什麼有人3天學會Java, 有人3年。 關鍵就在你是否深入理解語言的這3點。

學習任何語言都是直接奔這個主題。所以,有些查字典的完全可以跳過。任何語言, 3天足夠入門了。

後面的遞歸和迭代, 和C沒多大區別, 不打算復習算法的完全可以跳過不看。高階函數, C的函數指針稍微嘔心了點,也湊合著能替代。

閉包, 用下面嘔心的結構也能湊合替代。

typedef stClosureFunc {

void * ctx;

void* pFunc;

} ClosureFunc

總而言之, 不打算深入學習lisp的第一章1-2個小時可以快速略過。對實際開發能力沒什麼大的幫助。(如果想轉Lisp開發, 還是有必要花1-2個月做做題)


第二章

前面的數據抽象, 和C的玩法也沒啥區別, 基本沒看的價值。關於數據表示, 個人覺得用樹表示復雜數據,理論上是沒啥問題, 但按照KISS原則,

有點裝B過頭了。這方面,最喜歡和欣賞的還是Perl, 從語言的角度來說, 數組, 列表, hash表應該是基本元素。

第二章主要要學的是2.3符號系統。不過,C基本不提供, 一直打算靠C混飯吃的, 也可以不看。


從書舉得例子,基本上可以感到明顯的理論派風味, 這話在國內基本就是罵人的了。

事實上, 你要是面試人,人人都會說要抽象,要分層。 有核心價值的是, 你如何判斷抽象是對的,是合理的, 分層是對的,是合理的。

這個,在實際項目中才是有價值的。 滿懷欣喜,做完習題,信心滿滿, 給個實際項目一干, 設計還是個渣渣。


第三章 關於序列化,這個在實際C項目中也大量用, 基本是共通技術。關於流, 想法很新, 但個人雖然做的是信號處理系統, 但還沒看到誰用過。

C用的更多是Unix系統的管道思想, 或者消息隊列思想。 消息隊列事實上是序列化和流技術的結合。


前面3章基本上是娛樂, 實際價值不大。 第4章, 講的是解析器實現。 采用的是自上而下風格。這基本上是將遞歸發展到極致了。

去年自己一直在研究編譯器, 有些不一樣的體會。 但,看的時候,一直有點疑惑, 沒看到詞法分析,不知道是不是lisp語言沒詞匯要求,還是自己沒看懂。

有限狀態機等正則表達式概念不知道lisp是如何體現的。另一個很遺憾的問題,是書中完全沒有性能分析。完全是面向學生, 這方面比龍書差太多了。

現實的,真想做編譯器,還是扎實學龍書才是正途。


後面的第5章, 感覺也差不多。用來感受下不同的實現方式還是有點價值。但, 不打算學lisp的話還真不見得有多大工程價值。


整體來說, 這本書最值得學的是第5章, 對理解計算機模型本質有些幫助。 前面1-3完全沒深入意義。第4章稍微可以看看。

當然, 打算C轉Lisp的, 則完全要花3-6個月把4-5章 深入學習了。



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved