第1章 預備知識
1.1 學習程序設計語言原理的原因
1.2 程序設計領域
1.2.1 科學應用
1.2.2 商務應用
1.2.3 人工智能
1.2.4 系統(tǒng)程序設計
1.2.5 網絡軟件
1.3 語言評價標準
1.3.1 可讀性
1.3.2 可寫性
1.3.3 可靠性
1.3.4 成本
1.4 影響語言設計的因素
1.4.1 計算機體系結構
1.4.2 程序設計方法學
1.5 程序設計語言的分類
1.6 語言設計中的權衡
1.7 實現(xiàn)方法
1.7.1 編譯
1.7.2 完全解釋
1.7.3 混合實現(xiàn)系統(tǒng)
1.7.4 預處理器
1.8 編程環(huán)境
第2章 主要程序設計語言的發(fā)展
2.1 Zuse的Plankalkul語言
2.1.1 歷史背景
2.1.2 語言概述
2.2 偽代碼
2.2.1 Short Code語言
2.2.2 Speedcoding系統(tǒng)
2.2.3 UNIVAC“編譯”系統(tǒng)
2.2.4 相關工作
2.3 IBM 704計算機與Fortran語言
2.3.1 歷史背景
2.3.2 設計過程
2.3.3 FortranⅠ概述
2.3.4 FortranⅡ
2.3.5 FortranⅣ、77、90、95、2003和2008
2.3.6 評價
2.4 函數(shù)式程序設計:LISP語言
2.4.1 人工智能的起源和表處理
2.4.2 LISP語言的設計過程
2.4.3 語言概述
2.4.4 評價
2.4.5 LISP的兩種后代語言
2.4.6 相關語言
2.5 邁向成熟的第一步:ALGOL 60
2.5.1 歷史背景
2.5,2 早期設計過程
2.5.3 ALGOL 58概述
2.5.4 對ALGOL 58報告的響應
2.5.5 ALGOL 60的設計過程
2.5.6 ALGOL 60概述
2.5.7 評價
2.6 商務記錄的計算機化:COBOL語言
2.6.1 歷史背景
2.6.2 FLOW-MATIC語言
2.6.3 COBOL語言的設計過程
2.6.4 評價
2.7 分時處理的開始:BASIC語言
2.7.1 設計過程
2.7.2 語言概述
2.7.3 評價
2.8 滿足所有人的需要:PL/I
2.8.1 歷史背景
2.8.2 設計過程
2.8.3 語言概述
2.8.4 評價
2.9 兩種早期的動態(tài)語言:APL和SNOBOL
2.9.1 APL語言的起源與特點
2.9.2 SNOBOL語言的起源與特點
2.10 數(shù)據(jù)抽象的開始:SIMULA 67
2.10.1 設計過程
2.10.2 語言概述
2.11 正交設計:ALGOL 68
2.11.1 設計過程
2.11.2 語言概述
2.11.3 評價
2.12 ALGOL系列語言的早期后代語言
2.12.1 為簡單性而設計:Pascal語言
2.12.2 可移植的系統(tǒng)語言:C語言
2.13 基于邏輯的程序設計:Prolog語言
2.13.1 設計過程
2.13.2 語言概述
2.13.3 評價
2.14 歷史上規(guī)模最大的設計工作:Ada語言
2.14.1 歷史背景
2.14.2 設計過程
2.14.3 語言概述
2.14.4 評價
2.14.5 Ada 95和Ada 2005
2.15 面向對象的程序設計:Smalltalk
2.15.1 設計過程
2.15.2 語言概述
2.15.3 評價
2.16 結合命令式和面向對象的特性:C++
2.16.1 設計過程
2.16.2 語言概述
2.16.3 評價
2.16.4 一種相關語言:Objective-C
2.16.5 另一種相關語言:Delphi
2.16.6 一種關系不大的語言:Go
2.17 基于命令式的面向對象語言:Java
2.17.1 設計過程
2.17.2 語言概述
2.17.3 評價
2.18 腳本語言
2.18.1 Perl的起源與特點
2.18.2 JavaScript的起源與特點
2.18.3 PHP的起源與特點
2.18.4 Python的起源與特點
2.18.5 Ruby的起源與特點
2.18.6 Lua的起源與特點
2.19 一流的.NET語言:C#
2.19.1 設計過程
2.19.2 語言概述
……
第3章 描述語法和語義
第4章 詞法分析和語法分析
第5章 名字、綁定和作用域
第6章 數(shù)據(jù)類型
第7章 表達式與賦值語句
第8章 語句級控制結構
第9章 子程序
第10章 實現(xiàn)子程序
第11章 抽象數(shù)據(jù)類型與封裝結構
第12章 面向對象程序設計的支持
第13章 并發(fā)
第14章 異常處理和事件處理
第15章 函數(shù)式程序設計語言
第16章 邏輯程序設計語言
參考文獻