注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計其他編程語言/工具程序設計語言原理(原書第5版)

程序設計語言原理(原書第5版)

程序設計語言原理(原書第5版)

定 價:¥49.00

作 者: (美)Robert W.Sebesta著;張勤譯;張勤譯
出版社: 機械工業(yè)出版社
叢編項: 計算機科學叢書
標 簽: 暫缺

ISBN: 9787111137559 出版時間: 2004-04-01 包裝: 平裝
開本: 26cm 頁數(shù): 483 字數(shù):  

內(nèi)容簡介

  本書從為什么學習程序設計語言、評估程序設計語言和語言結構的標準、常見的設計權衡以及基本的實現(xiàn)方法開始講起,然后簡略描述了在本書中討論的大部分語言的演化。并且在第3章討論語法和語義,還在第4章為不開設編譯課程的學校新增了詞法和語法分析的內(nèi)容。本書主要是描述命令式語言的主要結構的設計問題及其實現(xiàn),涉及變量、數(shù)據(jù)類型、表達式和賦值語句、控制語句、子程序、數(shù)據(jù)抽象設施、支持面向?qū)ο蟪绦蛟O計的語言特性(繼承和動態(tài)方法綁定)、并發(fā)程序單元和異常處理等內(nèi)容。在最后兩章描述了函數(shù)式程序設計語言和邏輯程序設計語言。本書適用面很廣,既可用作計算機專業(yè)本科生程序設計語言課程的教材,也可用作自學語言的參考書。經(jīng)驗豐富的計算機工作者也可以用它來更新知識。本書通過陳述各種語言結構的設計問題,分析一些常用語言中這些結構的設計選擇,并比較不同的選擇方案,來描述程序設計語言的基本概念。本書并不教讀者如何使用一種語言,而是討論語言的結構與特征及其在不同語言中的不同設計與實現(xiàn),以及如何為給定的任務選擇合適的語言。本書所使用的描述方式不但為讀者提供對現(xiàn)有的和將來的程序設計語言進行批判性評估所需的工具,而且可以增強讀者學習新語言和理解語言實現(xiàn)的重要性的能力。本書適合作為計算機專業(yè)本科生程序設計語言原理課程的教材,但對于成熟的程序員,這也是一本深入了解程序設計語言的理想書籍。本書特點:●使用Java、JavaScript、C++。Perl、Ada和Fortran來討論各種語言結構以及設計選擇方案●將面向?qū)ο蟪绦蛟O計與非面向?qū)ο蟮拿钍秸Z言結合起來討論●提供產(chǎn)生現(xiàn)有語言的特定設計選擇的歷史背景

作者簡介

  RobertW.Sebesta于賓夕法尼亞州立大學獲得計算機科學碩士和博士學位,現(xiàn)任科羅拉多大學科羅拉多斯普林斯分校計算機科學系副教授和系主任。他有三十多年的教授計算機科學的經(jīng)驗。他的專業(yè)領域和評估程度設計語言、編譯器設計及軟件測試方法和工具。他是ACM和IEEE計算機學會的成員。

圖書目錄

出版者的話
專家指導委員會
譯者序
前言
第1章 基本概念
1.1 學習程序設計語言原理的緣由
1.2 程序設計領域
1.2.1 科學應用
1.2.2 商務應用
1.2.3 人工智能
1.2.4 系統(tǒng)程序設計
1.2.5 腳本語言
1.2.6 專用語言
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.8 程序設計環(huán)境
本章小結
復習題
練習題
第2章 主要程序設計語言的發(fā)展
2.1 Zuse的Plankalkul語言
2.1.1 歷史背景
2.1.2 語言概述
2.2 最小硬件的程序設計:偽代碼
2.2.1 短代碼
2.2.2 快速編碼
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 Ⅳ、FORTRAN 77和FORTRAN 90
2.3.6 評估
2.4 函數(shù)式程序設計:LISP語言
2.4.1 人工智能和表數(shù)據(jù)處理的開始
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 ALGOL 60的評估
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.12.3 ALGOL的其他后代語言
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
2.15 面向?qū)ο蟮某绦蛟O計:Smalltalk
2.15.1 設計過程
2.15.2 語言概述
2.15.3 評估
2.16 結合命令式與面向?qū)ο蟮奶匦?;C++
2.16.1 設計過程
2.16.2 語言概述
2.16.3 評估
2.16.4 一種相關語言:Eiffel
2.17 萬維網(wǎng)程序設計:Java
2.17.1 設計過程
2.17.2 語言概述
2.17.3 評估
本章小結
文獻注釋
復習題
練習題
第3章 描述語法和語義
3.1 介紹
3.2 描述語法的普遍問題
3.2.1 語言識別器
3.2.2 語言生成器
3.3 描述語法的形式方法
3.3.1 巴科斯-諾爾范式與上下文無關文法
3.3.2 擴展的BNF
3.3.3 語法圖
3.3.4 文法與識別器
3.4 屬性文法
3.4.1 靜態(tài)語義
3.4.2 基本概念
3.4.3 屬性文法定義
3.4.4 內(nèi)在屬性
3.4.5 屬性文法的例子
3.4.6 計算屬性值
3.4.7 評估
3.5 描述程序的意義:動態(tài)語義
3.5.1 操作語義
3.5.2 公理語義
3.5.3 指稱語義
本章小結
文獻注釋
復習題
練習題
第4章 詞法分析和語法分析
4.1 介紹
4.2 詞法分析
4.3 語法分析問題
4.3.1 語法分析介紹
4.3.2 自頂向下語法分析器
4.3.3 自底向上語法分析器
4.3.4 語法分析的復雜性
4.4 遞歸下降語法分析
4.4.1 遞歸下降語法分析過程
4.4.2 LL文法類
4.5 自底向上語法分析
4.5.1 自底向上語法分析器的語法分析問題
4.5.2 移進-歸約算法
4.5.3 LR語法分析器
本章小結
復習題
練習題
第5章 名字、綁定、類型檢測和作用域
5.1 介紹
5.2 名字
5.2.1 設計問題
5.2.2 名字形式
5.2.3 特殊字
5.3 變量
5.3.1 名字
5.3.2 地址
5.3.3 類型
5.3.4 值
5.4 綁定概念
5.4.1 屬性-變量綁定
5.4.2 類型綁定
5.4.3 存儲綁定與生存期
5.5 類型檢測
5.6 強類型化
5.7 類型兼容性
5.8 作用域
5.8.1 靜態(tài)作用域
5.8.2 塊
5.8.3 靜態(tài)作用域的評估
5.8.4 動態(tài)作用域
5.8.5 動態(tài)作用域的評估
5.9 作用域與生存期
5.10 引用環(huán)境
5.11 命名常量
5.12 變量初始化
本章小結
復習題
練習題
第6章 數(shù)據(jù)類型
6.1 介紹
6.2 基本數(shù)據(jù)類型
6.2.1 數(shù)值類型
6.2.2 布爾類型
6.2.3 字符類型
6.3 字符串類型
6.3.1 設計問題
6.3.2 字符串及操作
6.3.3 串長度的選擇
6.3.4 評估
6.3.5 字符串類型的實現(xiàn)
6.4 用戶定義的序數(shù)類型
6.4.1 枚舉類型
6.4.2 子范圍類型
6.4.3 實現(xiàn)用戶定義的序數(shù)類型
6.5 數(shù)組類型
6.5.1 設計問題
6.5.2 數(shù)組和下標
6.5.3 下標綁定和數(shù)組類別
6.5.4 數(shù)組中的下標數(shù)目
6.5.5 數(shù)組初始化
6.5.6 數(shù)組操作
6.5.7 片
6.5.8 評估
6.5.9 數(shù)組類型的實現(xiàn)
6.6 相關數(shù)組
6.6.1 結構和操作
6.6.2 實現(xiàn)相關數(shù)組
6.7 記錄類型
6.7.1 記錄的定義
6.7.2 對記錄域的引用
6.7.3 記錄操作
6.7.4 評估
6.7.5 記錄類型的實現(xiàn)
6.8 聯(lián)合類型
6.8.1 設計問題
6.8.2 自由聯(lián)合
6.8.3 Pascal聯(lián)合類型
6.8.4 Ada聯(lián)合類型
6.8.5 評估
6.8.6 聯(lián)合類型的實現(xiàn)
6.9 集合類型
6.9.1 Pascal中的集合
6.9.2 評估
6.9.3 集合類型的實現(xiàn)
6.10 指針類型
6.10.1 設計問題
6.10.2 指針操作
6.10.3 指針的一些問題
6.10.4 Pascal語言中的指針
6.10.5 Ada中的指針
6.10.6 C和C++中的指針
6.10.7 FORTRAN 90中的指針
6.10.8 引用類型
6.10.9 評估
6.10.10 指針類型和引用類型的實現(xiàn)
本章小結
文獻注釋
復習題
練習題
第7章 表達式與賦值語句
7.1 介紹
7.2 算術表達式
7.2.1 操作符求值順序
7.2.2 操作數(shù)求值順序
7.3 重載操作符
7.4 類型轉(zhuǎn)換
7.4.1 表達式中的強制轉(zhuǎn)換
7.4.2 顯式類型轉(zhuǎn)換
7.4.3 表達式中的錯誤
7.5 關系表達式和布爾表達式
7.5.1 關系表達式
7.5.2 布爾表達式
7.6 短路求值
7.7 賦值語句
7.7.1 簡單賦值
7.7.2 多目標
7.7.3 條件目標
7.7.4 復合賦值操作符
7.7.5 一元賦值操作符
7.7.6 賦值作為表達式
7.8 混合模式賦值
本章小結
復習題
練習題
第8章 語句層次的控制結構
8.1 介紹
8.2 復合語句
8.3 選擇語句
8.3.1 雙向選擇語句
8.3.2 多向選擇結構
8.4 循環(huán)語句
8.4.1 計數(shù)器控制的循環(huán)
8.4.2 邏輯控制的循環(huán)
8.4.3 用戶定位的循環(huán)控制機制
8.4.4 基于數(shù)據(jù)結構的重復
8.5 無條件轉(zhuǎn)移
8.5.1 無條件轉(zhuǎn)移中的問題
8.5.2 標號形式
8.6 受保護命令
8.7 結論
本章小結
復習題
練習題
第9章 子程序
9.1 介紹
9.2 子程序的基本原理
9.2.1 子程序的共同特征
9.2.2 基本定義
9.2.3 參數(shù)
9.2.4 過程與函數(shù)
9.3 子程序的設計問題
9.4 局部引用環(huán)境
9.5 參數(shù)傳遞方法
9.5.1 參數(shù)傳遞的語義模型
9.5.2 參數(shù)傳遞的實現(xiàn)模型
9.5.3 主要語言中的參數(shù)傳遞
9.5.4 參數(shù)類型檢測
9.5.5 實現(xiàn)參數(shù)傳遞方法
9.5.6 多維數(shù)組作為參數(shù)
9.5.7 設計考慮
9.5.8 參數(shù)傳遞的例子
9.6 子程序名作為參數(shù)傳遞
9.7 重載子程序
9.8 通用子程序
9.8.1 Ada中的通用子程序
9.8.2 C++中的通用函數(shù)
9.9 分別編譯與獨立編譯
9.10 函數(shù)的設計問題
9.10.1 函數(shù)的副作用
9.10.2 返回值的類型
9.11 訪問非局部環(huán)境
9.11.1 FORTRAN COMMON塊
9.11.2 外部聲明和模塊
9.12 用戶定義的重載操作符
9.13 協(xié)同程序
本章小結
復習題
練習題
第10章 實現(xiàn)子程序
10.1 調(diào)用與返回的一般語義
10.2 實現(xiàn)FORTRAN 77子程序
10.3 在類ALGOL語言中實現(xiàn)子程序
10.3.1 更復雜的活動記錄
10.3.2 一個沒有遞歸及非局部引用的例子
10.3.3 遞歸
10.3.4 實現(xiàn)非局部引用的機制
10.4 塊
10.5 實現(xiàn)動態(tài)作用域
10.5.1 深訪問
10.5.2 淺訪問
10.6 子程序名參數(shù)的實現(xiàn)
10.6.1 靜態(tài)鏈方法
10.6.2 顯示
10.6.3 再次討論引用環(huán)境的混亂
本章小結
文獻注釋
復習題
練習題
第11章 抽象數(shù)據(jù)類型
11.1 抽象的概念
11.2 封裝
11.3 數(shù)據(jù)抽象的介紹
11.3.1 浮點數(shù)作為抽象數(shù)據(jù)類型
11.3.2 用戶定義的抽象數(shù)據(jù)類型
11.3.3 一個例子
11.4 設計問題
11.5 語言示例
11.5.1 SIMULA 67中的類
11.5.2 Ada中的抽象數(shù)據(jù)類型
11.5.3 C++中的抽象數(shù)據(jù)類型
11.6 有參數(shù)的抽象數(shù)據(jù)類型
11.6.1 Ada
11.6.2 C++
本章小結
復習題
練習題
第12章 支持面向?qū)ο蟮某绦蛟O計
12.1 介紹
12.2 面向?qū)ο蟪绦蛟O計
12.2.1 介紹
12.2.2 繼承
12.2.3 多態(tài)與動態(tài)綁定
12.2.4 面向?qū)ο笳Z言的計算
12.3 面向?qū)ο笳Z言的設計問題
12.3.1 純對象模型
12.3.2 子類是子類型嗎
12.3.3 實現(xiàn)繼承與接口繼承
12.3.4 類型檢測與多態(tài)
12.3.5 單繼承與多繼承
12.3.6 對象的分配與解除分配
12.3.7 動態(tài)綁定與靜態(tài)綁定
12.4 Smalltalk概況
12.4.1 一般特征
12.4.2 Smalltalk環(huán)境
12.5 Smalltalk語言介紹
12.5.1 表達式
12.5.2 方法
12.5.3 賦值語句
12.5.4 塊與控制結構
12.5.5 類
12.5.6 方法的更多方面
12.6 Smalltalk程序示例
12.6.1 簡單表格處理
12.6.2 LOGO風格的圖形
12.7 Smalltalk的輪廓特性
12.7.1 類型檢測與多態(tài)
12.7.2 繼承
12.8 Smalltalk的評估
12.9 C++對面向?qū)ο蟪绦蛟O計的支持
12.9.1 一般特征
12.9.2 繼承
12.9.3 動態(tài)綁定
12.9.4 評估
12.10 Java對面向?qū)ο蟪绦蛟O計的支持
12.10.1 一般特征
12.10.2 繼承
12.10.3 動態(tài)綁定
12.10.4 封裝
12.10.5 評估
12.11 Ada 95對面向?qū)ο蟪绦蛟O計的支持
12.11.1 一般特征
12.11.2 繼承
12.11.3 動態(tài)綁定
12.11.4 評估
12.12 Eiffel對面向?qū)ο蟪绦蛟O計的支持
12.12.1 一般特征
12.12.2 繼承
12.12.3 動態(tài)綁定
12.12.4 評估
12.13 JavaScript的對象模型
12.13.1 一般特征
12.13.2 JavaScript對象
12.13.3 對象的創(chuàng)建與修改
12.13.4 評估
12.14 面向?qū)ο蠼Y構的實現(xiàn)
12.14.1 存儲實例數(shù)據(jù)
12.14.2 消息對方法的動態(tài)綁定
本章小結
復習題
練習題
第13章 并發(fā)
13.1 介紹
13.1.1 多處理器體系結構
13.1.2 并發(fā)的種類
13.1.3 學習并發(fā)的動機
13.2 子程序?qū)哟尾l(fā)的介紹
13.2.1 基本概念
13.2.2 為并發(fā)而設計的語言
13.2.3 設計問題
13.3 信號量
13.3.1 介紹
13.3.2 合作同步
13.3.3 競爭同步
13.3.4 評估
13.4 管程
13.4.1 介紹
13.4.2 競爭同步
13.4.3 合作同步
13.4.4 評估
13.5 消息傳遞
13.5.1 介紹
13.5.2 同步消息傳遞的概念
13.5.3 Ada 83的消息傳遞模型
13.5.4 合作同步
13.5.5 競爭同步
13.5.6 任務的終止
13.5.7 優(yōu)先級
13.5.8 二元信號量
13.5.9 評估
13.6 Ada 95中的并發(fā)
13.6.1 保護的對象
13.6.2 異步消息
13.7 Java線程
13.7.1 Thread類
13.7.2 優(yōu)先級
13.7.3 競爭同步
13.7.4 合作同步
13.7.5 評估
13.8 語句層次的并發(fā)
本章小結
文獻注釋
復習題
練習題
第14章 異常處理
14.1 異常處理介紹
14.1.1 基本概念
14.1.2 設計問題
14.1.3 歷史
14.2 PL/I中的異常處理
14.2.1 異常處理程序
14.2.2 異常與異常處理程序的綁定
14.2.3 繼續(xù)
14.2.4 其他設計選擇
14.2.5 示例
14.2.6 評估
14.3 Ada中的異常處理
14.3.1 異常處理程序
14.3.2 異常與異常處理程序的綁定
14.3.3 繼續(xù)
14.3.4 其他設計選擇
14.3.5 示例
14.3.6 評估
14.4 C++中的異常處理
14.4.1 異常處理程序
14.4.2 處理與異常處理程序的綁定
14.4.3 繼續(xù)
14.4.4 其他設計選擇
14.4.5 示例
14.4.6 評估
14.5 Java中的異常處理
14.5.1 異常類
14.5.2 異常處理程序
14.5.3 異常與異常處理程序的綁定
14.5.4 繼續(xù)
14.5.5 其他設計選擇
14.5.6 示例
14.5.7 finally子句
14.5.8 評估
本章小結
文獻注釋
復習題
練習題
第15章 函數(shù)式程序設計語言
15.1 介紹
15.2 數(shù)學函數(shù)
15.2.1 簡單函數(shù)
15.2.2 函數(shù)形式
15.3 函數(shù)式程序設計語言的基礎
15.4 第一種函數(shù)式程序設計語言:LISP
15.4.1 數(shù)據(jù)類型和結構
15.4.2 第一個LISP解釋器
15.5 Scheme介紹
15.5.1 Scheme的起源
15.5.2 原始函數(shù)
15.5.3 構造函數(shù)的函數(shù)
15.5.4 謂詞函數(shù)
15.5.5 控制流程
15.5.6 Scheme示例函數(shù)
15.5.7 函數(shù)形式
15.5.8 產(chǎn)生代碼的函數(shù)
15.5.9 Scheme的命令式特性
15.6 COMMON LISP
15.7 ML
15.8 Haskell
15.9 函數(shù)式語言的應用
15.10 函數(shù)式語言和命令式語言的比較
本章小結
文獻注釋
復習題
練習題
第16章 邏輯程序設計語言
16.1 介紹
16.2 謂詞演算的簡短介紹
16.2.1 命題
16.2.2 子句形式
16.3 謂詞演算與定理證明
16.4 邏輯程序設計概述
16.5 Prolog的起源
16.6 Prolog的基本元素
16.6.1 項
16.6.2 事實語句
16.6.3 規(guī)則語句
16.6.4 目標語句
16.6.5 Prolog的推理過程
16.6.6 簡單算術
16.6.7 鏈表結構
16.7 Prolog的缺陷
16.7.1 歸結次序控制
16.7.2 封閉世界假設
16.7.3 否定問題
16.7.4 內(nèi)在的限制
16.8 邏輯程序設計的應用
16.8.1 關系數(shù)據(jù)庫管理系統(tǒng)
16.8.2 專家系統(tǒng)
16.8.3 自然語言處理
16.8.4 教育
16.9 結論
本章小結
文獻注釋
復習題
練習題
參考文獻
索引

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號