[程序設計語言]-00:目錄


1. 開篇概覽

 前一周寫了一篇博文“記-碼農的“啟蒙”之《程序設計語言-實踐之路》和《面向對象分析和設計》兩書”,其中說打算總結下這兩本書中有哪些收獲,就是關於第一本書《程序設計語言-實踐之路》的系列總結博文。

1.1 為何要讀這本書?

首先這是一本介紹語言的入門書籍(筆者閱讀是裘宗燕老先生翻譯的第二版),如果你想從中學到一些獨門絕技,那么抱歉,木有;其次它介紹的是程序設計語言的一些重要基礎概念、各種概念之間的關系;並解釋了語言中諸多結構的形成和發展過程,以及他們演化到今天這種形式的根源

那么或許你該問了,了解這些有甚好處,不知道我照樣寫出漂亮的代碼、架構等。的確,你可以的,現在的程序員在工作中都不止要用到一兩種語言,然而我們通常對這門語言最直接的感觸就是它的語法層面;我猜測你或多或少都有被語法的糖衣炮彈(語法糖)給打暈、蒙蔽過的經歷吧。那么如果可以讓你從語言設計者的角度來看待語言,則非常有助於你了解一門語言的特性,理解其中的優勢以及弱勢、以及它們為何發展進化為今天的形式,從而能更好的使用它們;從而能有效的避免身陷眾多語言的糖衣炮彈中。

如果你有上面的需求,那么我力薦你買一本回來讀讀。細心的朋友可能會發現書名中還有個副標題“實踐之路”,然而博文標題並無此。不是偷懶,而是故意為之。因為我想關注討論的是語言的核心概念,而不是編譯器實現細節方面。

1.2 計算機科學慣於在抽象之上建立抽象

好吧,我承認這句話有點裝13。

這是這本書的序言中的第一句話,雖說計算機科學這個詞語范圍是有點甚廣,但是仔細想一想也確實是這樣的事實,就拿語言來說,匯編是對硬件操作的抽象;高級語言是又是對匯編的進一步抽象。而高級語言中也有各種的抽象思想所在,比如過程抽象產生了子程序、OOP中的面向接口編程也是一種抽象。總結來說也就是現在的操作系統、數據庫、大型軟件等等無一不是建立在抽象的基礎之上。因為現在的軟件系統的復雜度已經遠遠的超出了人的理解范圍,抽象這種技能也不得已而為之,你不得不將大量復雜的細節隱藏起來來降低理解上的難度。

總之一句話“抽象無處不在”。

2. 本系列博文導航目錄

由於不去關注實現方面的細節(對應本書中是2,4,5,14,15章節),所以都是以概念性方面的知識點安排的。話雖如此,但是語言的設計和實現具有內在的密切聯系,想要忽略實現細節而很好的理解設計方面的概念也是很難做到的,這就需要讀者自己去了解實現方面的一些知識點了。其中本系列2-6篇屬於語言的核心概念,而7-10屬於現有各種類型語言特性的概述性介紹。

  1.  引言
  2.  名字、作用域和約束(核心概念)
  3.  控制流(核心概念)
  4.  數據類型(核心概念)
  5. 子程序和控制抽象(核心概念)(敬請期待)
  6. 數據抽象和面向對象(核心概念)(敬請期待)
  7. 函數式語言(敬請期待)
  8. 邏輯式語言(敬請期待)
  9. 腳步語言(敬請期待)
  10. 並發(敬請期待)

我的計划是2周一篇,目錄結構暫定如此(照搬的書目錄),也許會有一些章節內容繁多,到時會做適當的分割。

3. 總結

由於這些都是我個人理解的一家之言,難免會有一些錯誤或者不嚴謹的地方,歡迎園友們不吝賜教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM