分享
 
 
 

程序设计语言原理(原书第8版)

程序设计语言原理(原书第8版)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机/网络,程序设计,其他,

作者: (美)賽巴斯塔(Sebesta,R.W.)著

出 版 社: 机械工业出版社

出版时间: 2008-6-1字数:版次: 1页数: 514印刷时间: 2008/06/01开本: 大16开印次: 1纸张: 胶版纸I S B N : 9787111239512包装: 平装编辑推荐

本书的主旨是为读者提供对现有的和将来的程序设计语言进行客观评价所需要的方法和思路,增强读者学习新语言的能力并理解语言的实现。本书从学习程序设计语言的原因,常用程序设计语言的演化史、评估程序设计语言结构的标准,以及这些语言基本的实现方法开始讲起,通过不局限于特定语言种类地分析语言结构的设计问题,检测设计选择,以及比较设计可选方案来讲述程序设计语言基本原理。本书并非讲授如何使用一门语言,而是讨论语言的结构、特性及其在各种情景中的设计和实现以及如何根据给定的任务选择合适的语言。

本书特点及新增内容:

把程序设计语言Python和Ruby融入相关章节。

修改了关于操作语义的内容。

新增有关支持Java 5.0和C#2005泛型类的内容。

涵盖了当代语言(包括C#、Java、javaScript、perl、Python和Ruby等)有趣而重要的特性。

收录了James Gosling、Larry Wall、Alan Cooper、Bjarne Stroustrup等人的访谈。

以Prolog语言为例,剖析了逻辑程序设计语言。

讨论了包括Scheme和ML在内的函数式程序设计语言。

将面向对象和非面向对象的命令式程序设计结合起来讨论。

提供了产生现有语言的特定设计选择的历史背景。

内容简介

本书从为什么学习程序设计语言入手,深入细致地讲解了命令式语言的主要结构及其设计与实现,内容涉及变量、数据类型、表达式和赋值语句、控制语句、子程序、数据抽象机制、支持面向对象程序设计(继承和动态方法绑定)、并发和异常处理等方面。最后两章介绍了函数式程序设计语言和逻辑程序设计语言。

本书内容丰富,剖析透彻,被美国和加拿大多所高等院校采用作为教材。本书既可用做高等院校计算机及相关专业本科生程序设计语言课程的教材和参考书,也可供程序设计人员参考。

作者简介

Robert W.Sebesta,宾夕法尼亚州立大学获得计算机科学博士,拥有30多年的教授计算机科学课程的经验。目前担任科罗拉多大学科罗拉多斯普林斯分校计算机科学系的副教授、ACM和IEEE计算机学会的会员,主要研究方向是设计和评估程序设计语言、编译器设计以及软件测试方法和工具。

目录

出版者的话

专家指导委员会

译者序

前言

第1章 基本概念

1.1 学习程序设计语言原理的缘由

l.2 程序设计应用领域

1.3 语言评估标准

1.4 影响语言设计的因素

1.5 语言分类

1.6 语言设计中的权衡

1.7 实现方法

1.8 程序设计环境

小结*复习题*练习题

第2章 主要程序设计语言的发展

2.1 Zuse的Plankalktil语言

2.2 最小硬件的程序设计:伪代码

2.3 IBM 704计算机与Fortran

2.4 函数式程序设计语言:LISP

2.5 迈向成熟的第一步:ALGOL 60

2.6 商务记录计算机化:COBOL

2.7 分时操作的开始:BASIC

2.8 用途广泛的语言:PL/I

2.9 两种早期的动态语言:APL和SNOBOL

2.10 数据抽象的开始:SIMuLA 67

2.11 正交性语言的设计:ALGOL 68

2.12 早期ALGOL系列语言的后代产品

2.13 基于逻辑的程序设计:Prolog

2.14 历史上规模最大的语言设计:Ada

2.15 面向对象的程序设计:Smalltalk

2.16 结合命令式与面向对象的特性:C++

2.17 一种基于命令式的面向对象语言:Java

2.18 脚本语言:JavaScript、PHP、Python和Ruby

2.19 一种基于c的新世纪语言:C#

2.20 标志与程序设计混合式语言

小结*文献注释*复习题*练习题*程序设计

练习题

第3章 描述语法和语义

3.1 概述

3.2 描述语法的普遍问题

3.3 描述语法的形式方法

3.4 属性文法

3.5 描述程序的意义:动态语义

小结*文献注释*复习题*练习题

第4章 词法分析和语法分析

4.1 概述

4.2 词法分析

4.3 语法分析问题

4.4 递归下降语法分析

4.5 自底向上语法分析

小结*复习题*练习题*程序设计练习题

第5章 名字、绑定、类型检测和作用域

5.1 概述

5.2 名字

5.3 变量

5.4 绑定的概念

5.5 类型检测

5.6 强类型化

5.7 类型等价

5.8 作用域

5.9 作用域与生存期

5.10 引用环境

5.11 命名常量

小结*复习题*练习题*程序设计练习题

第6章 数据类型

6.1 概述

6.2 基本数据类型

6.3 字符串类型

6.4 用户定义的序数类型

6.5 数组类型

6.6 关联数组

6.7 记录类型

6.8 联合类型

6.9 指针类型与引用类型

小结*文献注释*复习题*练习题*程序

设计练习题

第7章 表达式与赋值语句

7.1 概述

7.2 算术表达式

7.3 重载操作符

7.4 类型转换

7.5 关系表达式和布尔表达式

7.6 短路求值

7.7 赋值语句

7.8 混合模式赋值

小结*复习题*练习题*程序设计练习题

第8章 语句层次的控制结构

8.1 概述

8.2 选择语句

8.3 循环语句

8.4 无条件分支

8.5 守卫的命令

8.6 结论

小结*复习题*练习题*程序设计练习题

第9章 子程序

9.1 概述

9.2 子程序的基本原理

9.3 子程序的设计问题

9.4 局部引用环境

9.5 参数传递方法

9.6 子程序名作为参数

9.7 重载子程序

9.8 通用子程序

9.9 函数的设计问题

9.10 用户定义的重载操作符

9.11 协同程序

小结*复习题*练习题*程序设计练习题

第10章 实现子程序

10.1 调用与返回的一般语义

10.2 实现“简单”子程序

10.3 实现具有栈动态局部变量的子程序

10.4 嵌套子程序

10.5 块

10.6 实现动态作用域

小结*复习题*练习题

第11章 抽象数据类型和封装结构

11.1 抽象概念

11.2 数据抽象介绍

ll.3 抽象数据类型的设计问题

11.4 语言示例

11.5 有参数的抽象数据类型

11.6 封装结构

11.7 命名封装

小结*复习题*练习题*程序设计练习题

第12章 支持面向对象的程序设计

12.1 概述

12.2 面向对象程序设计

12.3 面向对象语言的设计问题

12.4 Smalltalk对面向对象程序设计的支持

12.5 C++对面向对象程序设计的支持

12.6 Java对面向对象程序设计的支持

12.7 C#对面向对象程序设计的支持

12.8 Ada 95对面向对象程序设计的支持

12.9 Ruby对面向对象程序设计的支持

12.10 JavaScript的对象模型

12.11 面向对象结构的实现

小结*复习题*练习题*程序设计练习题

第13章 并发

13.1 概述

13.2 子程序层次并发的介绍

13.3 信号量

13.4 管程

13.5 消息传递

13.6 Ada对并发的支持

13.7 Java线程

13.8 C#线程

13.9 语句层次的并发

小结*文献注释*复习题*练习题。程序

设计练习题

第14章 异常处理和事件处理

14.1 异常处理慨述

14.2 Ada中的异常处理

14.3 C++中的异常处理

14.4 Java中的异常处理

14.5 事件处理概述

14.6 Java的事件处理

小结*文献注释*复习题*练习题*程序

设计练习题

第15章 函数式程序设计语言

15.1 概述

15.2 数学函数

15.3 函数式程序设计语言的基础

15.4 第一种函数式程序设计语言:LISP

15.5 Scheme概述

15.6 COMMONLISP

15.7 ML

15.8 Haskell

15.9 函数式语言的应用

15.10 函数式语言和命令式语言的比较

小结*文献注释*复习题*练习题*程序

设计练习题

第16章 逻辑程序设计语言

16.1 概述

16.2 谓词演算的简短介绍

16.3 谓词演算与定理证明

16.4 逻辑程序设计概述

16.5 Prolog的起源

16.6 Prolog的基本元素

16.7 Prolog的缺陷

16.8 逻辑程序设计的应用

小结*文献注释*复习题+练习题*程序

设计练习题

参考文献

索引

书摘插图

第1章基本概念

我们在深入学习程序设计语言原理之前,需要考虑几个基本的概念。首先我们将讲解,为什么计算机科学专业的学生以及专业软件开发人员需要学习语言的设计和评估的一般原理。这种讨论对于那些认为只要有一、两种程序设计语言的工作经验就足够了的计算机科学人员来说,是十分有价值的。接下来,我们将简略描述程序设计的主要范畴。然后,由于本书将评价各种程序设计语言的构成和特性,我们将会列出用于判别程序设计语言优劣的标准。紧接着,我们将讨论两个影响程序设计语言的重要因素,即计算机体系结构以及程序设计方法学。之后,我们将给出程序设计语言的不同分类。再接着,我们将阐述在语言设计中必须考虑的几种主要权衡取舍方法。

由于本书也叙述程序设计语言的实现,因而我们在这一章中概括了最常用的程序设计语言实现的方法。最后,我们将简略地描述几个程序设计环境的例子并且讨论这些环境因素对于软件产品的影响。

1.1学习程序设计语言原理的缘由

学生们会很自然地问,他们如何能够从程序设计语言原理的学习中得益。毕竟在计算机科学领域里,还有其他大量的题材值得花费时间认真学习。下面,是我们认为计算机科学人员通过学习程序设计语言原理能够获得的种种益处。

•增进表达思想的能力。人们普遍认为,我们思维的深度受我们用来进行思想交流的语言以及这种语言的表达能力的影响。对自然语言而言,那些只掌握有限语言的人,其思维的复杂程度,特别是其抽象思维的深度,必然受到局限。换言之,人们对不能口头或笔头描述的事物结构必定很难将其概念化。

程序员在开发软件的过程中也同样受制于这个法则,用来开发软件的程序设计语言制约着程序员能够应用的控制结构、数据结构和数据抽象的类型,因而也制约着他们所能够设计的算法。了解多种程序设计语言的特性,能够使程序员在软件开发的过程中减少这种受限性。程序员可以通过学习新的程序设计语言的结构来拓宽软件开发的思路。

……

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有