中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

超值優(yōu)惠券
¥50
滿100可用 有效期2天

全場圖書通用(淘書團除外)

不再提示
關閉
歡迎光臨中圖網(wǎng) 請 | 注冊

包郵 CPYTHON設計與實現(xiàn)

出版社:人民郵電出版社出版時間:2024-06-01
開本: 16開 頁數(shù): 260
中 圖 價:¥69.9(7.0折) 定價  ¥99.8 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

CPYTHON設計與實現(xiàn) 版權信息

CPYTHON設計與實現(xiàn) 本書特色

Python 之父 Guido van Rossum 推薦,CPython 核心開發(fā)者 Carol Willing 作序。

以平易近人的方式解釋 Python 解釋器的概念、思想和技術細節(jié),手把手帶你重新編譯CPython,了解Python的內(nèi)部實現(xiàn)。

CPython 即用C語言實現(xiàn)的 Python 解釋器,是目前使用廣泛的 Python 解釋器,GitHub Star數(shù)近 50k。

不了解 Python 的人可能不知道,當我們談論 Python 的時候,99% 的情況其實說的就是 CPython。

CPYTHON設計與實現(xiàn) 內(nèi)容簡介

大模型的出現(xiàn)讓 AI 技術經(jīng)歷了從量變到質(zhì)變的過程,而 Python 作為 AI 優(yōu)選語言,一直默默推動著 AI 技術的快速發(fā)展。你是否想過,這是為什么呢?答案就藏在 CPython 中! CPython 是用 C 語言實現(xiàn)的 Python 解釋器,它是 Python 的官方實現(xiàn),并且是使用*廣泛的 Python 解釋器。其實在談論 Python 的時候,99% 的情況說的就是 CPython!本書共 16 章,從獲取 CPython 源代碼開始,手把手帶你重新編譯 CPython,我們將一起調(diào)試代碼、升級組件,在這個過程中,你可以詳細了解 Python 各類特性的工作原理,成長為一名更棒的Python 程序員。

CPYTHON設計與實現(xiàn) 目錄

第 1章 獲取 CPython 源代碼 1

第 2章 準備開發(fā)環(huán)境 3

2.1 使用 IDE或代碼編輯器 3

2.2 安裝 Visual Studio 4

2.3 安裝 Visual Studio Code 6

2.3.1 安裝 6

2.3.2 本書中的推薦擴展程序 6

2.3.3 使用高級代碼導航和擴展 7

2.3.4 配置任務和啟動文件 8

2.4 安裝 JetBrains CLion 9

2.5 安裝 Vim 12

2.6 小結 15

第3章 編譯 CPython 16

3.1 在 macOS 系統(tǒng)上編譯 CPython 16

3.2 在 Linux 系統(tǒng)上編譯 CPython 18

3.3 安裝自定義版本 19

3.4 make 快速入門 20

3.5 CPython 的 make 目標 21

3.5.1 構建目標 21

3.5.2 測試目標 21

3.5.3 清理目標 22

3.5.4 安裝目標 22

3.5.5 其他目標 23

3.6 在 Windows 系統(tǒng)上編譯 CPython 23

3.6.1 安裝依賴項 24

3.6.2 從命令行編譯 24

3.6.3 使用 Visual Studio 編譯 25

3.7 PGO 28

3.8 小結 29

第4章 Python 語言和語法 30

4.1 為什么 CPython 是用 C 語言

而不是 Python 語言實現(xiàn)的 30

4.2 Python 語言規(guī)范 32

4.2.1 語言說明文檔 32

4.2.2 語法文件 33

4.3 解析器生成器 35

4.4 重新生成語法 36

4.5 小結 39

第5章 配置和輸入 41

5.1 配置狀態(tài) 42

5.1.1 預初始化配置 43

5.1.2 相關源文件 43

5.1.3 運行時配置數(shù)據(jù)結構 44

5.1.4 通過命令行來設置運行時

配置 44

5.1.5 查看運行時標志 45

5.2 構建配置 45

5.3 從輸入構建模塊 46

5.3.1 相關的源文件 46

5.3.2 讀取文件和輸入 47

5.3.3 從命令行輸入字符串 47

5.3.4 通過本地模塊輸入 48

5.3.5 來自腳本文件或標準輸入的輸入 49

5.3.6 從編譯好的字節(jié)碼輸入 49

5.4 小結 50

第6章 基于語法樹的詞法分析和

語法解析 51

6.1 具象語法樹生成器 52

6.2 CPython 解析器-分詞器 54

6.2.1 相關源文件 54

6.2.2 從文件向解析器中輸入數(shù)據(jù) 54

6.2.3 解析器-分詞器工作流 55

6.3 抽象語法樹 58

6.3.1 相關源文件 59

6.3.2 使用 instaviz 工具展示

抽象語法樹 59

6.3.3 編譯抽象語法樹 62

6.4 要記住的術語 65

6.5 示例:添加一個約等于運算符 65

6.6 小結 69

第7章 編譯器 70

7.1 相關源文件 71

7.2 重要的專業(yè)術語 71

7.3 實例化一個編譯器 72

7.4 未來標志和編譯器標志 73

7.4.1 未來標志 73

7.4.2 在 Python 3.9 中引用未來

標志 73

7.4.3 編譯器標志 74

7.5 符號表 74

7.5.1 相關源文件 74

7.5.2 符號表數(shù)據(jù)結構 75

7.5.3 使用 symtable 標準庫模塊 75

7.5.4 符號表實現(xiàn) 77

7.6 核心編譯過程 79

7.6.1 從 Python 訪問編譯器 79

7.6.2 編譯器 C 語言API 80

7.6.3 指令 82

7.6.4 基礎幀塊 83

7.6.5 操作和參數(shù) 83

7.7 匯編 84

7.7.1 匯編器數(shù)據(jù)結構 84

7.7.2 匯編器深度優(yōu)先搜索算法 84

7.7.3 匯編器 C 語言API 85

7.7.4 深度優(yōu)先搜索 86

7.8 創(chuàng)建一個代碼對象 87

7.9 使用 instaviz 展示代碼對象 88

7.10 示例:實現(xiàn)約等于運算符 89

7.11 小結 94

第8章 求值循環(huán) 95

8.1 相關源文件 96

8.2 重要術語 96

8.3 構建線程狀態(tài) 96

8.3.1 線程狀態(tài)類型 96

8.3.2 相關源文件 97

8.4 構建幀對象 97

8.4.1 幀對象類型 97

8.4.2 相關源文件 98

8.4.3 幀對象初始化 API 98

8.5 幀的執(zhí)行 102

8.6 值棧 105

8.6.1 字節(jié)碼操作的例子:BINARY_OR 105

8.6.2 模擬值棧 106

8.6.3 棧效果 109

8.7 示例:在列表中添加元素 109

8.8 小結 112

第9章 內(nèi)存管理 114

9.1 C 語言中的內(nèi)存分配 114

9.1.1 靜態(tài)內(nèi)存分配 115

9.1.2 自動內(nèi)存分配 115

9.1.3 動態(tài)內(nèi)存分配 116

9.2 Python 內(nèi)存管理系統(tǒng)設計 117

9.2.1 內(nèi)存分配域 117

9.2.2 內(nèi)存分配器 118

9.3 CPython 內(nèi)存分配器 118

9.3.1 相關源文件 120

9.3.2 重要術語 120

9.3.3 內(nèi)存塊、內(nèi)存池和堆區(qū) 120

9.3.4 內(nèi)存塊分配 API 125

9.3.5 使用 Python調(diào)試API 126

9.4 對象和 PyMem 內(nèi)存分配域 126

9.5 原始內(nèi)存分配域 129

9.6 自定義內(nèi)存分配器 129

9.7 自定義的內(nèi)存分配“消毒劑” 130

9.7.1 AddressSanitizer 130

9.7.2 MemorySanitizer 131

9.7.3 UndefinedBehaviorSanitizer 131

9.8 PyArena 內(nèi)存堆區(qū) 132

9.9 引用計數(shù) 133

9.9.1 在 Python 中創(chuàng)建變量 133

9.9.2 增加引用 133

9.9.3 減少引用 134

9.9.4 字節(jié)碼操作中的引用計數(shù) 135

9.9.5 CPython 引用計數(shù)的優(yōu)點 137

9.10 垃圾回收 137

9.10.1 相關源文件 138

9.10.2 垃圾回收器的設計 138

9.10.3 垃圾回收器管理的容器

類型 139

9.10.4 不可追蹤對象與可變性 140

9.10.5 垃圾回收算法 140

9.10.6 分代垃圾回收 143

9.10.7 使用 Python 的垃圾回收

API 144

9.11 小結 145

第 10章 并行和并發(fā) 146

10.1 并行模型和并發(fā)模型 147

10.2 進程的結構 148

10.3 多進程并行 149

10.3.1 在 POSIX 中fork 進程 149

10.3.2 Windows 系統(tǒng)上的

多進程 152

10.3.3 multiprocessing 包 152

10.3.4 相關源文件 152

10.3.5 spawn 進程和 fork 進程 152

10.3.6 使用隊列和管道交換

數(shù)據(jù) 158

10.3.7 進程之間的共享狀態(tài) 165

10.3.8 示例應用程序 165

10.3.9 多進程總結 167

10.4 多線程 167

10.4.1 全局解釋器鎖 168

10.4.2 相關源文件 169

10.4.3 在 Python 中啟動線程 169

10.4.4 線程狀態(tài) 172

10.4.5 POSIX 線程 176

10.4.6 Windows 線程 176

10.4.7 多線程總結 177

10.5 異步編程 177

10.6 生成器 177

10.6.1 生成器結構 178

10.6.2 相關源文件 179

10.6.3 創(chuàng)建生成器 179

10.6.4 執(zhí)行生成器 181

10.7 協(xié)程 182

10.7.1 相關源文件 184

10.7.2 事件循環(huán) 184

10.7.3 示例 185

10.8 異步生成器 186

10.9 子解釋器 187

10.9.1 相關源文件 189

10.9.2 示例 189

10.10 小結 190

第 11章 對象和類型 191

11.1 本章示例 192

11.2 內(nèi)置類型 192

11.3 對象類型和可變長度對象類型 193

11.4 type類型 194

11.4.1 類型槽 195

11.4.2 在 C 語言中使用類型 196

11.4.3 類型屬性字典 196

11.5 bool 類型和 long 類型 197

11.5.1 long類型 198

11.5.2 示例 199

11.6 Unicode 字符串類型 200

11.6.1 相關源文件 201

11.6.2 處理 Unicode 碼點 202

11.6.3 UTF-8和UTF-16 202

11.6.4 寬字符類型 203

11.6.5 字節(jié)順序標記 204

11.6.6 encodings 包 204

11.6.7 編解碼器模塊 205

11.6.8 編解碼器的實現(xiàn) 205

11.6.9 內(nèi)部的編解碼器 206

11.6.10 示例 207

11.7 字典類型 208

11.7.1 哈希 208

11.7.2 相關源文件 210

11.7.3 字典結構 210

11.7.4 查找 211

11.8 小結 212

第 12章 標準庫 213

12.1 Python 模塊 213

12.2 Python 模塊和 C 語言模塊 214

第 13章 測試套件 217

13.1 在 Windows 系統(tǒng)上運行測試

套件 217

13.2 在 Linux 系統(tǒng)或 macOS 系統(tǒng)上

運行測試套件 217

13.3 測試標志 218

13.4 運行特定測試 218

13.5 測試模塊 220

13.6 測試工具 220

13.7 小結 221

第 14章 調(diào)試 222

14.1 使用崩潰處理程序 222

14.2 編譯調(diào)試的支持 223

14.2.1 Windows系統(tǒng) 223

14.2.2 macOS 系統(tǒng)或 Linux

系統(tǒng) 223

14.3 在 macOS 系統(tǒng)上使用LLDB 223

14.3.1 創(chuàng)建斷點 224

14.3.2 啟動 CPython 224

14.3.3 附加到正在運行的 CPython 解釋器中 224

14.3.4 處理斷點 225

14.3.5 使用 cpython_lldb 擴展 226

14.4 使用 GDB 227

14.4.1 創(chuàng)建斷點 227

14.4.2 啟動 CPython 227

14.4.3 附加到正在運行的 CPython 解釋器中 227

14.4.4 處理斷點 228

14.4.5 使用 python-gdb 擴展 228

14.5 使用 Visual Studio 調(diào)試器 228

14.5.1 添加斷點 229

14.5.2 啟動調(diào)試器 229

14.5.3 處理斷點 230

14.6 使用 CLion 調(diào)試器 231

14.6.1 調(diào)試 make 應用程序 232

14.6.2 附加調(diào)試器 232

14.6.3 創(chuàng)建斷點 232

14.6.4 處理斷點 234

14.7 小結 235

第 15章 基準測試、性能分析和追蹤 236

15.1 使用 timeit 進行微基準測試 237

15.2 使用 Python 基準測試套件進行

運行時基準測試 238

15.2.1 執(zhí)行基準測試 240

15.2.2 對比基準測試 240

15.3 使用 cProfile 分析 Python 代碼 242

15.4 使用 DTrace 分析 C 語言代碼 245

15.4.1 相關源文件 245

15.4.2 安裝 DTrace 246

15.4.3 編譯 DTrace 支持 246

15.4.4 使用 CLion 中的 DTrace 246

15.4.5 DTrace 示例 247

15.5 小結 248

第 16章 下一步計劃 249

16.1 為 CPython 編寫 C 語言擴展

模塊 249

16.2 改進 Python 應用程序 249

16.3 為 CPython 項目做貢獻 250

16.3.1 問題分類 250

16.3.2 創(chuàng)建一個拉取請求來修復問題 251

16.3.3 其他貢獻 252

16.4 繼續(xù)學習 252

附錄A 面向Python程序員的 C 語言

簡介 253
展開全部

CPYTHON設計與實現(xiàn) 相關資料

“我把這本書推薦給所有想要開始學習 CPython 的人!

——Guido van Rossum,Python 之父



“這本書將帶你踏上探索主流編程語言 Python 的旅程,指導你了解 CPython 內(nèi)部的運作原理,并讓你一睹核心開發(fā)人員是如何精心制作語言的。我相信,讀完這本書,不僅你的技能會增長,而且你將能夠解決更復雜的問題,從而改善我們的世界!

——Carol Willing,CPython 核心開發(fā)者,CPython 指導委員會成員



“這本書將帶你探秘 Python

CPYTHON設計與實現(xiàn) 作者簡介

安東尼 · 肖(Anthony Shaw),CPython 項目貢獻者,Apache 軟件基金會成員。安東尼是一個狂熱的 Python 愛好者,擅長理解復雜的系統(tǒng),然后簡化它們,并教給其他人。譯者介紹:史海,Python 語言組成員,CPython Top100 貢獻者,原 OpenStack 社區(qū)核心開發(fā)者,原華為云計算編程語言 Lab 負責人,目前負責華為云計算 IAAS 軟件工程能力建設和優(yōu)化。趙羽,華為云計算編程語言 Lab 核心成員,華為公司 Python 編程語言生態(tài)建設及開源管理負責人。長期從事 Python 虛擬機的開發(fā)及研究工作。陳嘯,華為軟件開發(fā)工程師。李俊辰,擁有多年編譯器開發(fā)經(jīng)驗。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 新疆系统集成_新疆系统集成公司_系统集成项目-新疆利成科技 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 板材品牌-中国胶合板行业十大品牌-环保板材-上海声达板材 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 北钻固控设备|石油钻采设备-石油固控设备厂家 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 聚丙烯酰胺_阴离子_阳离子「用量少」巩义亿腾厂家直销,售后无忧 聚合甘油__盐城市飞龙油脂有限公司 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 板式换热器_板式换热器价格_管式换热器厂家-青岛康景辉 | PE拉伸缠绕膜,拉伸缠绕膜厂家,纳米缠绕膜-山东凯祥包装 | 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 耐驰泵阀管件制造-耐驰泵阀科技(天津)有限公司 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 模具钢_高速钢_不锈钢-万利钢金属材料 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 微型实验室真空泵-无油干式真空泵-微型涡旋耐腐蚀压缩机-思科涡旋科技(杭州)有限公司 | 气动|电动调节阀|球阀|蝶阀-自力式调节阀-上海渠工阀门管道工程有限公司 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | LNG鹤管_内浮盘价格,上装鹤管,装车撬厂家-连云港赛威特机械 |