搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
编程原本
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111367291
  • 作      者:
    (美)Alexander Stepanov, (美)Paul McJones著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2012
收藏
编辑推荐
  追溯数学原理,探求编程的本质
  STL之父Alexander Stepanov力作
  C++之父Bjarne Stroustrup鼎力推荐
  北大数学学院教授裘宗燕老师倾情献译
展开
作者简介

  Alexander Stepanov 于1967~1972年间在国立莫斯科大学学习数学,从1972年开始在苏联,1977年移民后继续在美国从事编程工作。他编写过操作系统、编程工具、编译器和各种程序库。他在程序设计基础方面的工作先后得到GE、Polytechnic、AT&T、惠普、SGI和Adobe的支持。1995年因C++标准模板库的设计获Dr. Dobb, Journal的程序设计杰出贡献奖。

展开
内容介绍

  《编程原本》提供了有关编程的一种与众不同的理解。其主旨是,实际的编程也应像其他科学和工程领域一样基于坚实的数学基础。本书展示了在实际编程语言(如C++)中实现的算法如何在最一般的数学背景中操作。例如,如何定义快速求幂算法,使之能使用任何可交换运算。使用抽象算法将能得到更高效、可靠、安全和经济的软件。
  这不是一本很容易读的书,它也不是能提升你的编程技能的秘诀和技巧汇编。本书的价值是更根本性的,其终极目标是提升你对编程的洞察力。要想从中大获裨益,你需要从头到尾认真学习:阅读代码,证明引理,完成练习。到结束之时,你将看到如何把这里讨论的演绎方法应用到你的程序中,保证你做出的软件部件能一起工作,并表现出它们所应该表现的行为。
  书中给出的算法和需求针对某些被操作的类型。有关这些描述的代码(也可以通过Web得到)采用C++的一个小子集书写,这样做是为了让所有有经验的程序员都能理解。这个小子集可以看做一种特殊语言,是由Sean Parent和Bjarne Stroustrup一起设计的。
  无论你是一位软件开发者,还是其他以编程作为一项重要活动的专业人员,或者是一名在校的学生,你都会逐渐理解本书的经验丰富的作者多年来一直在教授和阐释的道理:数学对于编程是绝好的东西,理论对于实际是绝好的东西。
 

展开
精彩书评
  “要是问一位机械、建筑或电子工程师,如果不依靠坚实的数学基础,他们能走多远。他们会告诉你‘走不了多远’。而所谓的软件工程师在实践其技能时,却常常对他们所做工作的数学基础知之甚少,甚至一无所知。同时我们也很奇怪为什么软件由于不能按时发布并充斥错误而声名狼藉,而其他工程师却能按时完成其桥梁、汽车、各种电子装置等,而且缺陷很少。本书就是想纠正这种不平衡现象。我在Adobe的高级开发团队的成员们,但凡参加了基于同样材料的课程,都觉得付出的时间获益匪浅。初看可能觉得这种高度技术性的文字只是为计算机科学家写的,其实所有从事实际工作的软件工程师都应该来读。”
  —— Martin Newell,Adobe 院士

  “本书包含一些我所见过的最美的代码。”
  —— Bjarne Stroustrup,C++ 设计者

  “我很高兴看到Alex课程的内容。担任Silicon Graphics的CTO时,我曾大力支持这一课程的开发和教授,现在这本书已经能被所有程序员阅读了。”
  —— Forest Baskett,合伙人,New Enterprise Associates

  “Paul的耐心和在体系结构方面的经验帮助把Alex的数学方法组织成为一套高度结构化的大厦——功德无量!”
  —— Robert W. Taylor,Xerox PARC CSL和DEC系统研究中心创始人
展开
目录
译者序
前言
关于作者
第1章  基础
1.1理念范畴:实体,类别,类属
1.2值
1.3对象
1.4过程
1.5规范类型
1.6规范过程
1.7概念
1.8总结
第2章  变换及其轨道
2.1变换
2.2轨道
2.3碰撞点
2.4轨道规模的度量
2.5动作
2.6总结
第3章  可结合运算
3.1可结合性
3.2计算乘幂
3.3程序变换
3.4处理特殊情况的过程
3.5参数化算法
3.6线性递归
3.7累积过程
3.8总结
第4章  线性序
4.1关系的分类
4.2全序和弱序
4.3按序选取
4.4自然全序
4.5派生过程组
4.6按序选取过程的扩展
4.7总结
第5章  有序代数结
5.1基本代数结构
5.2有序代数结构
5.3求余
5.4最大公因子
5.5广义gcd
5.6Steingcd
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随机访问迭代器
6.10总结
第7章坐标结构
7.1二叉坐标
7.2双向二叉坐标
7.3坐标结构
7.4同构,等价和有序
7.5总结
第8章  后继可变的坐标
8.1链接迭代器
8.2链接重整
8.3链接重整的应用
8.4链接的二叉坐标
8.5结论
第9章拷贝 
9.1可写性
9.2基于位置的拷贝
9.3基于谓词的拷贝
9.4范围的交换
9.5总结
第10章  重整
10.1置换
10.2重整
10.3 反转算法
10.4 轮换算法
10.5 算法选择
10.6 总结
200
第11章  划分和归并
11.1划分
11.2平衡的归约
11.3归并
11.4总结
第12章  复合对象
12.1简单复合对象
12.2动态序列
12.3基础类型
12.4总结

附录A  数学表示
附录B  程序设计语言
参考文献
索引
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证