登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

『簡體書』C++语义和性能分析

書城自編碼: 3089938
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作 者: 杨镰
國際書號(ISBN): 9787568033299
出版社: 华中科技大学出版社
出版日期: 2017-12-01
版次: 1
頁數/字數: 224/285000
書度/開本: 16开 釘裝: 平装

售價:NT$ 315

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
走出内心的深渊:快节奏人群心理疾病与健康指南(原书第3版)
《 走出内心的深渊:快节奏人群心理疾病与健康指南(原书第3版) 》

售價:NT$ 352.0
如何成为一家千亿公司
《 如何成为一家千亿公司 》

售價:NT$ 347.0
趋势跟踪: 汤姆·巴索的交易谋略
《 趋势跟踪: 汤姆·巴索的交易谋略 》

售價:NT$ 352.0
滚滚红尘(《滚滚红尘》电影原著)
《 滚滚红尘(《滚滚红尘》电影原著) 》

售價:NT$ 250.0
罗马之变(法语直译,再现罗马共和国走向罗马帝国的辉煌历史)
《 罗马之变(法语直译,再现罗马共和国走向罗马帝国的辉煌历史) 》

售價:NT$ 500.0
自然之争:1600年以来苏格兰和英格兰北部地区的环境史(新史学译丛)
《 自然之争:1600年以来苏格兰和英格兰北部地区的环境史(新史学译丛) 》

售價:NT$ 485.0
硝烟下的博弈:工业革命与中西方战争
《 硝烟下的博弈:工业革命与中西方战争 》

售價:NT$ 398.0
让内的理性主义 发现无意识之旅
《 让内的理性主义 发现无意识之旅 》

售價:NT$ 301.0

建議一齊購買:

+

NT$ 319
《 C++性能优化指南 》
+

NT$ 425
《 Linux二进制分析 》
+

NT$ 929
《 系统编程:分布式应用的设计与开发 》
+

NT$ 641
《 PHP7内核剖析 》
+

NT$ 353
《 Lua设计与实现 》
+

NT$ 929
《 深入理解并行编程 》
編輯推薦:
对于严肃的C程序员来说,本书是一部推荐之作!本书作者有20多年的C开发经验,在微软公司总部工作期间,用C参与开发过包括Windows XP系统在内的许多知名商用软件系统,在C语言上有着深厚的功底。他在书中力求以新的视角,给读者展现C语言的基本理念和发展主线,读者如果能够理解本书的精髓,会大大提升对C的掌握程度,更不会为C11以来的新的思想和新的语言构造而感到惊讶和力不从心。在本书即将出版之际,C 17也在2017年年初得到C委员会的通过,并且即将正式颁布。深入理解书中相关内容,对理解C 11以来的一系列新思想,会有似曾相识的感受。C11到C17的新构造,都没有脱离C类型系统的主体思想。熟读本书可以作为学习C17的前奏。
內容簡介:
本书从C的发展历史、类型系统、语义以及性能的视角,给读者展现了C语言的基本理念和发展主线。一方面用抽象的理论框架,比如集合论、有限自动机、类型和类型系统等诠释了C的理论方面;另一方面又从语义着手,从底层操作剖析了C的实现方法。
使读者既能站得高、看得远,又能把握C的实质,从而全面掌握C语言。本书作者有20多年的C开发经验,在微软总部工作期间,用C参与开发过包括Windows XP系统在内的许多知名商用软件系统,在C语言上有着深厚的功底。在本书作者看来,理解C的精髓和灵魂,必须从C类型系统着手,这样才能写出性能优异而又易于维护的系统。另外,从C11到C17的新构造,都没有脱离C类型系统的主体思想。熟读本书可以作为学习C17的前奏。
關於作者:
杨镰,1985年毕业于华中工学院计算机系。1988年赴美留学,获波特兰州立大学计算机科学硕士学位。1995年加盟微软总部,在微软研究院从事软件安全和性能研发方面的工作。在微软工作的15年里,他先后参加了Windows Vista、Windows Server 2008、 MSN以及Bing的研发,在软件工程、软件性能优化、软件安全等领域有很深厚的功底和实践。他在不同的国际会议上发表了多篇论文,内容涉及软件工程、机器学习和高级语言。在繁忙的工作之余,他是滑雪高手,对如何提高滑雪板的性能也颇有研究。
目錄
第1章 C简史 1
1.1
C 的历史背景 1
1.2
C大事记 5
1.2.1
1979年:C with classes诞生 5
1.2.2
1983年8月:C正式命名 6
1.2.3
1986年:《The C Programming Language》出版 7
1.2.4
1987年:C2.0发布 7
1.2.5
1990年:《The Annotated C Reference Manual》出版 8
1.2.6
1994年:STL诞生 8
1.2.7
1998年:ISO C 正式通过 9
1.2.8
2011年:C11颁布 9
1.3
C的进化和改进理念 10
1.4
C的历史贡献及未来 11
第2章 程序设计语言的语义 14
2.1 哲学基础 14
2.2 语义的形式化描述 14
2.3 操作性语义 16
2.4 语义描述涉及的主要元素
17
第3章 C类型系统 19
3.1 类型系统简介 19
3.2 数据类型的表达规则 21
3.2.1
基本数据类型的表达规则 22
3.2.2
用户自定义类型的表达规则 23
3.3 类型实例的构造规则 25
3.3.1
类型和类型实例 25
3.3.2
类型实例的构造和析构 27
3.4 类型的操作规则 33
3.4.1
context 33
3.4.2
函数 34
3.4.3
过程 35
3.4.4
过程函数 35
3.4.5
方法 36
3.4.6
特别讨论:过程方法的自动机诠释 37
3.4.7
运算符 38
3.5
C类型系统的特征 39
3.5.1
特征 1:支持OOP 39
3.5.2
特征2:强静态类型 40
3.5.3
特征3:UDT是一等公民 41
3.5.4
特征4:类型清除 45
3.5.5
特征5:支持模板 49
3.5.6
特征6:指针和REF 53
3.5.7
特征7:类型修正符 60
3.6 其他(非C)类型系统 62
3.7 类型系统的意义和用途 62
3.7.1
程序的精确性保障 62
3.7.2
性能的可保障性 64
第4章 C变量语义 66
4.1 变量简介 66
4.2
C变量的属性 68
4.2.1
C变量的存储属性 68
4.2.2
C 变量的值语义 95
4.2.3
C变量的自洽性 106
4.2.4
C变量的总分性 109
4.2.5
C变量的多态性 112
4.3 临时变量 113
第5章 C对OOP的支持 116
5.1
object的内存布局 117
5.2 继承 119
5.2.1
继承object的内存布局 123
5.2.2
多继承 128
5.2.3
继承类object的语义规则 130
5.3 多态类和多态变量 137
5.4
C对抽象的支持 139

第6章 C 性能分析 141
6.1 性能分析原理 141
6.2 算法的重要性 149
6.3
RAM内存读取的性能 153
6.3.1
单线程heap管理器 154
6.3.2
定制化heap管理系统 157
6.4 关于缓存 164
6.5 关于IO 175
6.6
C的特殊性能问题 176
6.6.1
临时变量的性能问题 176
6.6.2
STL 容器 180
6.6.3
Type Erasure 185
6.6.4
异常处理 187
6.6.5
继承的性能问题 194
6.6.6
直接函数、间接函数、内联函数 200
参考文献 204
內容試閱
我与C
1988年,我在美国波特兰州立大学(PSU)攻读计算机科学硕士学位时,第yi次接触到C语言。当时,我的导师是波兰裔,名叫博卡斯基(Marek Perkowski,http:www.pdx.eduprofilemarek-perkowski)。他研究机器人和设计自动化(design automation)理论,喜欢人工智能领域里颇受青睐的Lisp程序设计语言,因此他也把对Lisp这种优美、简洁的语言的欣赏传递给了他的研究生们。我也开始使用Lisp语言,常常能感受到这种语言的数学美和惊人的抽象能力。
在PSU那种松散的学术氛围中,不同的声音是一件平常的事情:博士候选人大卫史密斯在一次讨论时说:
OOP方法才是今后的方向;Functional语言(如Lisp)只能待在象牙塔里;数风流语言,还要看C语言。
这大概是我第yi次听说C语言,我还将信将疑。不过,不久之后发生的一件事使我终身难忘,也证实了他的观点。在计算机系举办的一次软件五角棋大赛中,我使用Lisp语言编写了一个五角棋程序,自认为它非常优美、智慧且简洁,所以信心百倍。可是,第yi轮就惨败给了我的对手。而对手的程序是使用C语言编写的!惨败的原因是,相比对手的程序,我的程序反应速度实在很慢,所以失分于超时。
这件事加深了我对C语言的印象,我决定尝试使用C语言和OOP方法!于是在1988年的冬季,我一学期同时选了Smalltalk语言和C语言两门课程。
从Smalltalk语言中,我认识到OOP方法的精髓。同时我也认识到Smalltalk语言在性能和实用性上的局限性;从C语言中,我体会到OOP方法中沉淀的哲学思想与实际应用的结合,以及程序设计的艺术性和工艺性。在学习C语言之前,我对于计算机科学的兴趣完全停留在表面。学习了C语言之后,我惊喜地发现:C语言让我这个不喜欢烦琐、复杂系统的计算机科学新手看到了一个充满哲理性的表达工具,能够帮助我清晰地表达自己的逻辑思维和创造性。另一方面,C的实用性和强大的性能保障,也让我终选择了用它来做毕业论文项目。
离开学校后不久,我就进入微软公司总部的微软研究院工作,从事Windows NT的性能研究。去微软公司面试的时间是1995年8月17日,距离Windows 95的轰动性发布只有一周时间。记得面试的一个C问题是论述多态性(polymorphism)是否意味着动态绑定。我的面试官告诉我:C没有动态绑定,只有静态绑定,而COM(component object model)里才有真正的动态绑定。我十分认真、激动地争辩道:C的polymorphism就是动态绑定。两人从会议室争论到咖啡厅,然后又争论到坐落在美丽的华盛顿湖畔的一家意大利餐厅。晚上,当人事部门宣布面试结果时,我以为一定没戏,后悔自己太认真,不知道天高地厚。没想到我被那位面试官所在的团队微软公司总部的微软研究院软件性能研究中心(PPRC)录用,而且我们一直是合作良好的同事。直到今天,我还认为我对了,他错了。但在微软公司当时的氛围里,对错并不是重要的,重要的是激情和执着。而正是这种精神和文化,将20世纪90年代的微软和世界区分开来,让软件世界的微软时代降临。我也有幸加入到这个世界一流公司的研发队伍中,在几个重要的产品组里,贡献了自己的青春,实现了读研时的理想。20世纪90年代,微软公司是充满活力和朝气的崛起的巨人。
记得有个朋友的儿子在美国东部一所大学读书,一次去他家过圣诞节,吃饭时他问我:你怎么就能进微软,而我的许多朋友都进不去呢?其实,我的真实答案是两个字:运气。但是我当时的回答是:你必须每天花至少20分钟时间,读一些具体的计算机科学著作;然后至少花10分钟时间,想一些抽象的问题,比如宇宙爆炸理论的逻辑错误和量子叠加的荒谬性等,只要和技术无关就好。因为我一直以为:如果你对哲学没有兴趣,你不可能成为一个优秀的程序员;而做一个平庸的程序员太累了,不值得!
加入微软公司后,我有机会参与到多个大型的C项目的开发中。从Windows NT性能测试工具到Windows Vista的安全性,以及后来的Windows 2008服务器,C都在实战中给我惊喜,但有时它也会给我带来噩梦。然而,我体会深的,就是几乎每天我都会庆幸自己又学到了新的技能和思想,这种新东西可能是技术上的,也可能是方法学上的,这种体会持续了我在微软公司工作的5000多个日日夜夜。
我发现,C并不是一门简单、平庸的语言。正因为它的定位,它是植根于C以及VNA系统的,因此一个对VNA不清楚的程序员,是不可能掌握C语言的。C也并非一门在数学上有深厚根基的语言,很难像Lisp语言那样用Lambda表达式和高阶函数等概念表达C。这其实是C程序不容易编写好的深层原因。
在微软公司工作10多年,我接触过许多C资深程序员,比如《深度探索C对象模型》的作者Stan Lippman。我是作为VC组的架构师,通过发现VC在实现C SPEC方面的一些错误而结识了他,并数次就C的历史、哲学和设计模板问题与他交流。
然而,我接触更多的是C新手,比如我带领的多个美国常春藤名校的实习生,现在也早已成为各部门的高级主管。即使在这样一个世界一流的软件公司里,他们中间一些人对C语言的精神,尤其是它的语义层面上的规则,仍存在诸多的误解。一些通俗但并不精确的观点在业内长期流行:比如C的后门很多,C的性能较C有较大差距等。造成这些误解,一方面是由于缺乏系统性的教育和简明易懂的著作,另一方面是C语言本身缺乏严格的数学、逻辑框架。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.