代碼之髓(編程語言核心概念) 代码之髓:编程语言核心概念 (图灵程序设计丛书)

[日]西尾泰和

  • 出版商: 人民郵電出版社
  • 出版日期: 2014-08-01
  • 定價: CNY $45.00
  • 售價: $270
  • 貴賓價: 9.5$257
  • 語言: 簡體中文
  • 頁數: 219
  • 裝訂: Kindle電子書
  • ISBN: 7115361533
  • ISBN-13: 9787115361530

立即出貨

買這商品的人也買了...

產品描述

 

<內容簡介>

    由西尾泰和著的《代碼之髓(編程語言核心概念)》作者從編程語言設計的角度出發,圍繞語言中共通或特有的核心概念,通過語言演變過程中的縱向比較和在多門語言中的橫向比較,清晰地呈現了程序設計語言中函數、類型、作用域、類、繼承等核心知識。《代碼之髓:編程語言核心概念》旨在幫助讀者更好地理解各種概念是因何而起,並在此基礎上更好地判斷為何使用、何時使用及怎樣使用。同時,在閱讀本書後,讀者對今後不斷出現的新概念的理解能力也將得到提升。
    《代碼之髓(編程語言核心概念)》力求簡明、通俗,註重可讀性,可作為大學電腦科學和軟件工程等專業程序設計語言概論教材、電腦等級考試的參考資料,也可作為軟件開發人員的學習參考書。

<章節目錄>

第1章  如何深入高效地學習語言
  1.1  在比較中學習
    語言不同,規則不同
    C語言和Ruby語言中的真假值
    Java語言中的真假值
  1.2  在歷史中學習
    理解語言設計者的意圖
    應該學哪種語言,我們無從所知
    學習適用於各種語言的知識
  1.3  小結
第2章  程序設計語言誕生史
  2.1  程序設計語言誕生的歷史
    連接電纜
    程序內置
    FORTRAN語言問世
  2.2  程序設計語言產生的原因
    懶惰:程序員的三大美德之一
    語言們各有各的便捷
  2.3  小結
第3章  語法的誕生
  3.1  什麼是語法
    運算符的優先級
    語法是語言設計者制定的規則
  3.2  棧機器和FORTH語言
    計算的流程
    如何表達計算順序
    現在仍然使用的棧機器
  3.3  語法樹和LISP語言
    計算流
    如何表達計算順序
    現在仍然使用的語法樹
    專欄  要確認理解是否正確,首先得表達出來
  3.4  中綴表示法
    語法分析器
    規則的競爭
    專欄  當你不知道該學習什麼時
  3.5  小結
第4章  程序的流程控制
  4.1  結構化程序設計的誕生
  4.2  if語句誕生以前
    為什麼會有if語句
    為什麼會有if...else語句
  4.3  while語句——讓反覆執行的if語句更簡潔
    使用while語句的表達方式
    不使用while語句的表達方式
  4.4  for語句——讓數值漸增的while語句更簡潔
    使用for語句的表達方式
    不使用for語句的表達方式
    foreach——根據處理的對象來控制循環操作
  4.5  小結

第5章  函數
  5.1  函數的作用
    便於理解——如同一個組織
    便於再利用——如同零部件
    程序中再利用的特徵
  5.2  返回命令
    函數的誕生
    記錄跳轉目的地的專用內存
    專欄  函數命名
    棧
  5.3  遞歸調用
    嵌套結構體的高效處理
    嵌套結構體的處理方法
  5.4  小結
第6章  錯誤處理
  6.1  程序也會出錯
  6.2  如何傳達錯誤
    通過返回值傳達出錯信息
    出錯則跳轉
  6.3  將可能出錯的代碼括起來的語句結構
    John Goodenough的觀點
    引入CLU語言
    引入C++語言
    引入Windows NT 3.1
  6.4  出口只要一個
    為什麼引入finally
    成對操作的無遺漏執行
  6.5  何時拋出異常
    函數調用時參數不足的情況
    數組越界的情況
    出錯後就要立刻拋出異常
  6.6  異常傳遞
    異常傳遞的問題
    Java語言的檢查型異常
    檢查型異常沒有得到普及的原因
    專欄  具體的知識和抽象的知識
    專欄  學習講求細嚼慢咽
  6.7  小結
    專欄  從需要的地方開始閱讀
第7章  名字和作用域
  7.1  為什麼要取名
    怎樣取名
    名字衝突
    如何避免衝突
  7.2  作用域的演變
    動態作用域
    靜態作用域
  7.3  靜態作用域是完美的嗎
    專欄  其他語言中的作用域
    嵌套函數的問題

    外部作用域的再綁定問題
  7.4  小結
第8章  類型
  8.1  什麼是類型
  8.2  數值的on和off的表達方式
    數碼的發明
    七段數碼管顯示器
    算盤
  8.3  一個數碼上需要幾盞燈泡
    從十進制到二進制
    八進制與十六進制
  8.4  如何表達實數
    定點數——小數點位置確定
    浮點數——數值本身包含小數部分何處開始的信息
  8.5  為什麼會出現類型
    沒有類型帶來的麻煩
    早期的FORTRAN語言中的類型
    告訴處理器變量的類型
    隱性類型轉換
  8.6  類型的各種展開
    用戶定義型和麵向對象
    作為功能的類型
    總稱型、泛型和模板
    動態類型
    類型推斷
  8.7  小結
    專欄  先掌握概要再閱讀細節
第9章  容器和字符串
  9.1  容器種類多樣
  9.2  為什麼存在不同種類的容器
    數組與鏈表
    鏈表的長處與短處
    專欄  大O表示法——簡潔地表達計算時間和數據量之間的關係
    語言的差異
  9.3  字典、散列、關聯數組
    散列表
    樹
    元素的讀取時間
    沒有萬能的容器
  9.4  什麼是字符
    字符集和字符的編碼方式
    電腦誕生以前的編碼
    EDSAC的字符編碼
    ASCII時代和EBCDIC時代
    日語的編碼
    Shift_JIS編碼對程序的破壞
    魔術註釋符
    Unicode帶來了統一
  9.5  什麼是字符串
    帶有長度信息的Pascal語言字符串和不帶這一信息的C語言字符串

    1個字符為16比特的Java語言字符串
    Python 3中引入的設計變更
    Ruby 1.9的挑戰
  9.6  小結
第10章  並行處理
  10.1  什麼是並行處理
  10.2  細分後再執行
  10.3  交替的兩種方法
    協作式多任務模式——在合適的節點交替
    搶佔式多任務模式——一定時間後進行交替
  10.4  如何避免競態條件
    競態條件成立的三個條件
    沒有共享——進程和actor模型
    不修改——const、val、Immutable
    不介入
  10.5  鎖的問題及對策
    鎖的問題
    借助事務內存來解決
    事務內存的歷史
    事務內存成功嗎
  10.6  小結
第11章  對象與類
  11.1  什麼是面向對象
    內涵因語言而異的面向對象
    對象是現實世界的模型
    什麼是類
  11.2  歸集變量與函數建立模型的方法
  11.3  方法1:模塊、包
    什麼是模塊、包
    用Perl語言的包設計對象
    光有模塊不夠用
    分開保存數據
    向參數傳遞不同的散列
    把初始化處理也放入包中
    把散列和包綁定在一起
  11.4  方法2:把函數也放入散列中
    first class
    把函數放入散列中
    創建多個計數器
    把共享的屬性放入原型中
    這就是面向對象嗎
  11.5  方法3:閉包
    什麼是閉包
    為什麼叫做閉包
  11.6  方法4:類
    霍爾設想的類
    C++語言中的類
    功能說明的作用
    類的三大作用
  11.7  小結

第12章  繼承與代碼再利用
  12.1  什麼是繼承
    繼承的不同實現策略
    繼承是把雙刃劍
    里氏置換原則
  12.2  多重繼承
    一種事物在多個分類中
    多重繼承對於實現方式再利用非常便利
  12.3  多重繼承的問題——還是有衝突
    解決方法1:禁止多重繼承
    解決方法2:按順序進行搜索
    解決方法3:混入式處理
    解決方法4:Trait
  12.4  小結
    專欄  從頭開始逐章手抄