出版時間:2008-6-1 出版社:機械工業(yè)出版社 作者:(美)賽巴斯塔(Sebesta,R.W.) 頁數(shù):514 譯者:張勤,王方矩
Tag標簽:無
內(nèi)容概要
本書從為什么學習程序設(shè)計語言入手,深入細致地講解了命令式語言的主要結(jié)構(gòu)及其設(shè)計與實現(xiàn),內(nèi)容涉及變量、數(shù)據(jù)類型、表達式和賦值語句、控制語句、子程序、數(shù)據(jù)抽象機制、支持面向?qū)ο蟪绦蛟O(shè)計(繼承和動態(tài)方法綁定)、并發(fā)和異常處理等方面。最后兩章介紹了函數(shù)式程序設(shè)計語言和邏輯程序設(shè)計語言。 本書內(nèi)容豐富,剖析透徹,被美國和加拿大多所高等院校采用作為教材。本書既可用做高等院校計算機及相關(guān)專業(yè)本科生程序設(shè)計語言課程的教材和參考書,也可供程序設(shè)計人員參考。
作者簡介
Robert W.Sebesta,賓夕法尼亞州立大學獲得計算機科學博士,擁有30多年的教授計算機科學課程的經(jīng)驗。目前擔任科羅拉多大學科羅拉多斯普林斯分校計算機科學系的副教授、ACM和IEEE計算機學會的會員,主要研究方向是設(shè)計和評估程序設(shè)計語言、編譯器設(shè)計以及軟件測試方法和工具。
書籍目錄
出版者的話專家指導(dǎo)委員會譯者序前言第1章 基本概念 1.1 學習程序設(shè)計語言原理的緣由 l.2 程序設(shè)計應(yīng)用領(lǐng)域 1.3 語言評估標準 1.4 影響語言設(shè)計的因素 1.5 語言分類 1.6 語言設(shè)計中的權(quán)衡 1.7 實現(xiàn)方法 1.8 程序設(shè)計環(huán)境 小結(jié)*復(fù)習題*練習題第2章 主要程序設(shè)計語言的發(fā)展 2.1 Zuse的Plankalktil語言 2.2 最小硬件的程序設(shè)計:偽代碼 2.3 IBM 704計算機與Fortran 2.4 函數(shù)式程序設(shè)計語言:LISP 2.5 邁向成熟的第一步:ALGOL 60 2.6 商務(wù)記錄計算機化:COBOL 2.7 分時操作的開始:BASIC 2.8 用途廣泛的語言:PL/I 2.9 兩種早期的動態(tài)語言:APL和SNOBOL 2.10 數(shù)據(jù)抽象的開始:SIMuLA 67 2.11 正交性語言的設(shè)計:ALGOL 68 2.12 早期ALGOL系列語言的后代產(chǎn)品 2.13 基于邏輯的程序設(shè)計:Prolog 2.14 歷史上規(guī)模最大的語言設(shè)計:Ada 2.15 面向?qū)ο蟮某绦蛟O(shè)計:Smalltalk 2.16 結(jié)合命令式與面向?qū)ο蟮奶匦裕篊++ 2.17 一種基于命令式的面向?qū)ο笳Z言:Java 2.18 腳本語言:JavaScript、PHP、Python和Ruby 2.19 一種基于c的新世紀語言:C# 2.20 標志與程序設(shè)計混合式語言 小結(jié)*文獻注釋*復(fù)習題*練習題*程序設(shè)計 練習題第3章 描述語法和語義 3.1 概述 3.2 描述語法的普遍問題 3.3 描述語法的形式方法 3.4 屬性文法 3.5 描述程序的意義:動態(tài)語義 小結(jié)*文獻注釋*復(fù)習題*練習題第4章 詞法分析和語法分析 4.1 概述 4.2 詞法分析 4.3 語法分析問題 4.4 遞歸下降語法分析 4.5 自底向上語法分析 小結(jié)*復(fù)習題*練習題*程序設(shè)計練習題第5章 名字、綁定、類型檢測和作用域 5.1 概述 5.2 名字 5.3 變量 5.4 綁定的概念 5.5 類型檢測 5.6 強類型化 5.7 類型等價 5.8 作用域 5.9 作用域與生存期 5.10 引用環(huán)境 5.11 命名常量 小結(jié)*復(fù)習題*練習題*程序設(shè)計練習題第6章 數(shù)據(jù)類型 6.1 概述 6.2 基本數(shù)據(jù)類型 6.3 字符串類型 6.4 用戶定義的序數(shù)類型 6.5 數(shù)組類型 6.6 關(guān)聯(lián)數(shù)組 6.7 記錄類型 6.8 聯(lián)合類型 6.9 指針類型與引用類型 小結(jié)*文獻注釋*復(fù)習題*練習題*程序 設(shè)計練習題第7章 表達式與賦值語句 7.1 概述 7.2 算術(shù)表達式 7.3 重載操作符 7.4 類型轉(zhuǎn)換 7.5 關(guān)系表達式和布爾表達式 7.6 短路求值 7.7 賦值語句 7.8 混合模式賦值 小結(jié)*復(fù)習題*練習題*程序設(shè)計練習題第8章 語句層次的控制結(jié)構(gòu) 8.1 概述 8.2 選擇語句 8.3 循環(huán)語句 8.4 無條件分支 8.5 守衛(wèi)的命令 8.6 結(jié)論 小結(jié)*復(fù)習題*練習題*程序設(shè)計練習題第9章 子程序 9.1 概述 9.2 子程序的基本原理 9.3 子程序的設(shè)計問題 9.4 局部引用環(huán)境 9.5 參數(shù)傳遞方法 9.6 子程序名作為參數(shù) 9.7 重載子程序 9.8 通用子程序 9.9 函數(shù)的設(shè)計問題 9.10 用戶定義的重載操作符 9.11 協(xié)同程序 小結(jié)*復(fù)習題*練習題*程序設(shè)計練習題第10章 實現(xiàn)子程序 10.1 調(diào)用與返回的一般語義 10.2 實現(xiàn)“簡單”子程序 10.3 實現(xiàn)具有棧動態(tài)局部變量的子程序 10.4 嵌套子程序 10.5 塊 10.6 實現(xiàn)動態(tài)作用域 小結(jié)*復(fù)習題*練習題第11章 抽象數(shù)據(jù)類型和封裝結(jié)構(gòu) 11.1 抽象概念 11.2 數(shù)據(jù)抽象介紹 ll.3 抽象數(shù)據(jù)類型的設(shè)計問題 11.4 語言示例 11.5 有參數(shù)的抽象數(shù)據(jù)類型 11.6 封裝結(jié)構(gòu) 11.7 命名封裝 小結(jié)*復(fù)習題*練習題*程序設(shè)計練習題第12章 支持面向?qū)ο蟮某绦蛟O(shè)計 12.1 概述 12.2 面向?qū)ο蟪绦蛟O(shè)計 12.3 面向?qū)ο笳Z言的設(shè)計問題 12.4 Smalltalk對面向?qū)ο蟪绦蛟O(shè)計的支持 12.5 C++對面向?qū)ο蟪绦蛟O(shè)計的支持 12.6 Java對面向?qū)ο蟪绦蛟O(shè)計的支持 12.7 C#對面向?qū)ο蟪绦蛟O(shè)計的支持 12.8 Ada 95對面向?qū)ο蟪绦蛟O(shè)計的支持 12.9 Ruby對面向?qū)ο蟪绦蛟O(shè)計的支持 12.10 JavaScript的對象模型 12.11 面向?qū)ο蠼Y(jié)構(gòu)的實現(xiàn) 小結(jié)*復(fù)習題*練習題*程序設(shè)計練習題第13章 并發(fā) 13.1 概述 13.2 子程序?qū)哟尾l(fā)的介紹 13.3 信號量 13.4 管程 13.5 消息傳遞 13.6 Ada對并發(fā)的支持 13.7 Java線程 13.8 C#線程 13.9 語句層次的并發(fā) 小結(jié)*文獻注釋*復(fù)習題*練習題。程序 設(shè)計練習題第14章 異常處理和事件處理 14.1 異常處理慨述 14.2 Ada中的異常處理 14.3 C++中的異常處理 14.4 Java中的異常處理 14.5 事件處理概述 14.6 Java的事件處理 小結(jié)*文獻注釋*復(fù)習題*練習題*程序 設(shè)計練習題第15章 函數(shù)式程序設(shè)計語言 15.1 概述 15.2 數(shù)學函數(shù) 15.3 函數(shù)式程序設(shè)計語言的基礎(chǔ) 15.4 第一種函數(shù)式程序設(shè)計語言:LISP 15.5 Scheme概述 15.6 COMMONLISP 15.7 ML 15.8 Haskell 15.9 函數(shù)式語言的應(yīng)用 15.10 函數(shù)式語言和命令式語言的比較 小結(jié)*文獻注釋*復(fù)習題*練習題*程序 設(shè)計練習題第16章 邏輯程序設(shè)計語言 16.1 概述 16.2 謂詞演算的簡短介紹 16.3 謂詞演算與定理證明 16.4 邏輯程序設(shè)計概述 16.5 Prolog的起源 16.6 Prolog的基本元素 16.7 Prolog的缺陷 16.8 邏輯程序設(shè)計的應(yīng)用 小結(jié)*文獻注釋*復(fù)習題+練習題*程序 設(shè)計練習題參考文獻索引
章節(jié)摘錄
第1章 基本概念我們在深入學習程序設(shè)計語言原理之前,需要考慮幾個基本的概念。首先我們將講解,為什么計算機科學專業(yè)的學生以及專業(yè)軟件開發(fā)人員需要學習語言的設(shè)計和評估的一般原理。這種討論對于那些認為只要有一、兩種程序設(shè)計語言的工作經(jīng)驗就足夠了的計算機科學人員來說,是十分有價值的。接下來,我們將簡略描述程序設(shè)計的主要范疇。然后,由于本書將評價各種程序設(shè)計語言的構(gòu)成和特性,我們將會列出用于判別程序設(shè)計語言優(yōu)劣的標準。緊接著,我們將討論兩個影響程序設(shè)計語言的重要因素,即計算機體系結(jié)構(gòu)以及程序設(shè)計方法學。之后,我們將給出程序設(shè)計語言的不同分類。再接著,我們將闡述在語言設(shè)計中必須考慮的幾種主要權(quán)衡取舍方法。由于本書也敘述程序設(shè)計語言的實現(xiàn),因而我們在這一章中概括了最常用的程序設(shè)計語言實現(xiàn)的方法。最后,我們將簡略地描述幾個程序設(shè)計環(huán)境的例子并且討論這些環(huán)境因素對于軟件產(chǎn)品的影響。1.1 學習程序設(shè)計語言原理的緣由學生們會很自然地問,他們?nèi)绾文軌驈某绦蛟O(shè)計語言原理的學習中得益。畢竟在計算機科學領(lǐng)域里,還有其他大量的題材值得花費時間認真學習。下面,是我們認為計算機科學人員通過學習程序設(shè)計語言原理能夠獲得的種種益處。?增進表達思想的能力。人們普遍認為,我們思維的深度受我們用來進行思想交流的語言以及這種語言的表達能力的影響。對自然語言而言,那些只掌握有限語言的人,其思維的復(fù)雜程度,特別是其抽象思維的深度,必然受到局限。換言之,人們對不能口頭或筆頭描述的事物結(jié)構(gòu)必定很難將其概念化。
編輯推薦
《程序設(shè)計語言原理(原書第8版)》由機械工業(yè)出版社出版?!冻绦蛟O(shè)計語言原理(原書第8版)》特點及新增內(nèi)容:把程序設(shè)計語言Python和Ruby融入相關(guān)章節(jié)。修改了關(guān)于操作語義的內(nèi)容。新增有關(guān)支持Java 5.0和C#2005泛型類的內(nèi)容。涵蓋了當代語言(包括C#、Java、javaScript、perl、Python和Ruby等)有趣而重要的特性。收錄了James Gosling、Larry Wall、Alan Cooper、Bjarne Stroustrup等人的訪談。以Prolog語言為例,剖析了邏輯程序設(shè)計語言。討論了包括Scheme和ML在內(nèi)的函數(shù)式程序設(shè)計語言。將面向?qū)ο蠛头敲嫦驅(qū)ο蟮拿钍匠绦蛟O(shè)計結(jié)合起來討論。提供了產(chǎn)生現(xiàn)有語言的特定設(shè)計選擇的歷史背景。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載