目前无货,
欢迎选购其他类似产品。
前翻 后翻
正在播放... 已暂停   您正在聆听的 Audible 音频版本的样品。
了解更多信息
查看此图片

深度探索C++对象模型

平均4.4 星 169 条商品评论
| 天天低价·正品质优
|
分享
广告

显示所有 格式和版本 隐藏其他格式和版本
亚马逊价格
全新品最低价 非全新品最低价
 

click to open popover

看过此商品后顾客买的其它商品?

无需Kindle设备,下载免费Kindle阅读软件,即可在您的手机、电脑及平板电脑上畅享阅读。

  • iPhone/iPad/Mac
  • Android手机或平板电脑

请输入您的手机号码,获取Kindle阅读软件的下载链接。



基本信息

  • 出版社: 华中科技大学出版社有限责任公司; 第1版 (2009年5月1日)
  • 平装: 360页
  • 开本: 16
  • ISBN: 7560924182, 9787560924182
  • 条形码: 9787560924182
  • 商品尺寸: 22.8 x 18.4 x 2.6 cm
  • 商品重量: 581 g
  • 品牌: 华中科技大学出版社
  • ASIN: B0011A8QKO
  • 用户评分: 平均4.4 星 169 条商品评论
  • 亚马逊热销商品排名: 图书商品里排第388,361名 (查看图书商品销售排行榜)
  • 您想告诉我们您发现了更低的价格?

商品描述

编辑推荐

《深度探索C++对象模型》涵盖了C++对象模型的语意暗示,并指出这个模型是如何影响你的程序的。C++成山似海的书籍堆中,这一本不是婴幼儿奶粉,也不是较大婴儿奶粉,它是成人专用的低脂高钙特殊奶粉。
对于C++底层机制感兴趣的读者,这《深度探索C++对象模型》会给你"漫卷诗书喜欲狂"的感觉。
了解C++ Object Model,是学习Component Object Model的最短路线。
如果你是一位C++程序员,渴望对于底层知识获得一个完整的了解,那么Inside The C++ Object Model正适合你。

媒体推荐

前言
差不多有10年之久,我在贝尔实验室(Bell Laboratories)埋首于C++的实现任务。最初的工作是在cfront上面(Bjarne Stroustrup的第一个C++编译器),从1986年的1.1版到1991年9月的3.0版,然后移转到Simplifier(这是我们内部的命名),也就是Found~ion项目中的C++对象模型部分。在Simplifier设计期间,我开始酝酿这本书。
Foundation项目是什么?在Bjarne的领导下,贝尔实验室中的一个小组探索着以C++完成大规模程序设计时的种种问题的解决之道。Foundation项目是我们为了构造大系统而努力定义的一个新的开发模型;我们只使用C++,并不提供多重语言的解决方案。这是个令人兴奋的工作,一方面是因为工作本身,一方面是因为工作伙伴:Bjarne、Andy Koenig、Rob Murray、Martin Carroll、Judy Ward、Steve Buroff、Peter Juhl,以及我自己。Barbara Moo管理我们这一群人(Bjarne和Andy除外)。Barbara Moo常说管理一个软件团队,就像放牧一群骄傲的猫。
我们把Foundation想象成一个核心,在那上面,其它人可以为使用者铺设一层真正的开发环境,把它整修为他们所期望的UNIX或Smalltalk模型。私底下我们把它称为Grail(传说中耶稣最后的晚餐所用的圣杯),人人都想要,但是从来没人找到过!
Grail使用一个由Rob Murray发展出来并命名为ALF的面向对象层次结构,提供一个永久的、以语意为基础的表现法。在Grail中,传统编译器被分解为数个各自分离的可执行文件。parser负责建立程序的ALF表现法。其它每一个组件(比如type checking、simplification,code generation)以及工具(比如browser)都在程序的一个ALF表现体上操作(并可能加以扩展)。Simplifier是编译器的一部分,处于typechecking和codegeneration之间。Simplifier这个名称是由Bjarne所倡议的,它原本是cfront的一个阶段(phase)。
在type checking和code generation之间,Simplifier做什么事呢?它用来转换内部的程序表现。有三种转换风味是任何对象模型都需要的:
1.与编译器息息相关的转换(Implementation,dependent transformations)
这是与特定编译器有关的转换。在ALF之下,这意味着我们所谓的“tentative”nodes。例如,当parser看到这个表达式:
fct();
它并不知道是否(a)这是一个函数调用操作,或者(b)这是overloaded call operator在class object fct上的一种应用。默认情况下,这个式子所代表的是一个函数调用,但是当(b)的情况出现时,Simplifier就要重写并调换call subtree。
2.语言语意转换(Language semantics transformations)
这包括constructor/destructor的合成和扩展、memberwise初始化、对于memberwise copy的支持、在程序胫邪膊錭onversion operators、临时性对象,以及对constructor/destructor的调用。
3.程序代码和对象模型的转换(Code and object model transformations)
这包括对virtual functions、virtual base class和inheritance的一般支持、new和delete运算符、class objects所组成的数组、local static class instances、带有非常量表达式(nonconstant expression)之global object的静态初始化操作。我对Simplifier所规划的一个目标是:提供一个对象模型体系,在其中,对象的实现是一个虚拟接口,支持各种对象模型。
最后两种类型的转换构成了本书的基础。这意味着本书是为编译器设计者而写的吗?不是,绝对不是!这本书是由一位编译器设计者针对中高级C++程序员所写的。隐藏在这本书背后的假设是,程序员如果了解C++对象模型,就可以写出比较没有错误倾向而且比较有效率的代码。


买家评论

热门买家评论

于 2008年2月5日
版本: 平装|已确认购买
11 条评论| 9 个人发现此评论有用. 这条评论对您有用吗?报告滥用情况
于 2015年1月2日
版本: 平装|已确认购买
0回应| 2 个人发现此评论有用. 这条评论对您有用吗?报告滥用情况
于 2011年3月18日
版本: 平装|已确认购买
0回应| 10 个人发现此评论有用. 这条评论对您有用吗?报告滥用情况
于 2012年1月4日
版本: 平装|已确认购买
0回应| 2 个人发现此评论有用. 这条评论对您有用吗?报告滥用情况
于 2013年2月24日
版本: 平装|已确认购买
0回应| 2 个人发现此评论有用. 这条评论对您有用吗?报告滥用情况
于 2009年9月23日
版本: 平装|已确认购买
0回应|这条评论对您有用吗?报告滥用情况
于 2017年3月27日
版本: 平装|已确认购买
0回应| 1 个人发现此评论有用. 这条评论对您有用吗?报告滥用情况
于 2010年11月22日
版本: 平装|已确认购买
0回应| 3 个人发现此评论有用. 这条评论对您有用吗?报告滥用情况

按发表时间排序