• CPYTHON设计与实现
21年品牌 40万+商家 超1.5亿件商品

CPYTHON设计与实现

正版保障 假一赔十 可开发票

61.48 6.2折 99.8 全新

库存80件

广东广州
认证卖家担保交易快速发货售后保障

作者(英)安东尼·肖(Anthony Shaw)著

出版社人民邮电出版社

ISBN9787115645265

出版时间2024-06

装帧平装

开本16开

定价99.8元

货号16295604

上书时间2024-11-20

灵感书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
安东尼 · 肖(Anthony Shaw),CPython 项目贡献者,Apache 软件基金会成员。安东尼是一个狂热的 Python 爱好者,擅长理解复杂的系统,然后简化它们,并教给其他人。 译者介绍: 史海,Python 语言组成员,CPython 靠前00 贡献者,原 OpenStack 社区核心开发者,原华为云计算编程语言 Lab 负责人,目前负责华为云计算 IAAS 软件工程能力建设和优化。 赵羽,华为云计算编程语言 Lab 核心成员,华为公司 Python 编程语言生态建设及开源管理负责人。长期从事 Python 虚拟机的开发及研究工作。 陈啸,华为软件开发工程师。 李俊辰,拥有多年编译器开发经验。

目录
第 1章 获取 CPython 源代码 1 第 2章 准备开发环境 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 系统上编译 CPython 16 3.2 在 Linux 系统上编译 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 系统上编译 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 语言实现的 30 4.2 Python 语言规范 32 4.2.1 语言说明文档 32 4.2.2 语法文件 33 4.3 解析器生成器 35 4.4 重新生成语法 36 4.5 小结 39 第5章 配置和输入 41 5.1 配置状态 42 5.1.1 预初始化配置 43 5.1.2 相关源文件 43 5.1.3 运行时配置数据结构 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 从编译好的字节码输入 49 5.4 小结 50 第6章 基于语法树的词法分析和 语法解析 51 6.1 具象语法树生成器 52 6.2 CPython 解析器-分词器 54 6.2.1 相关源文件 54 6.2.2 从文件向解析器中输入数据 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 重要的专业术语 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 符号表数据结构 75 7.5.3 使用 symtable 标准库模块 75 7.5.4 符号表实现 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 操作和参数 83 7.7 汇编 84 7.7.1 汇编器数据结构 84 7.7.2 汇编器深度优先搜索算法 84 7.7.3 汇编器 C 语言API 85 7.7.4 深度优先搜索 86 7.8 创建一个代码对象 87 7.9 使用 instaviz 展示代码对象 88 7.10 示例:实现约等于运算符 89 7.11 小结 94 第8章 求值循环 95 8.1 相关源文件 96 8.2 重要术语 96 8.3 构建线程状态 96 8.3.1 线程状态类型 96 8.3.2 相关源文件 97 8.4 构建帧对象 97 8.4.1 帧对象类型 97 8.4.2 相关源文件 98 8.4.3 帧对象初始化 API 98 8.5 帧的执行 102 8.6 值栈 105 8.6.1 字节码操作的例子:BINARY_OR 105 8.6.2 模拟值栈 106 8.6.3 栈效果 109 8.7 示例:在列表中添加元素 109 8.8 小结 112 第9章 内存管理 114 9.1 C 语言中的内存分配 114 9.1.1 静态内存分配 115 9.1.2 自动内存分配 115 9.1.3 动态内存分配 116 9.2 Python 内存管理系统设计 117 9.2.1 内存分配域 117 9.2.2 内存分配器 118 9.3 CPython 内存分配器 118 9.3.1 相关源文件 120 9.3.2 重要术语 120 9.3.3 内存块、内存池和堆区 120 9.3.4 内存块分配 API 125 9.3.5 使用 Python调试API 126 9.4 对象和 PyMem 内存分配域 126 9.5 原始内存分配域 129 9.6 自定义内存分配器 129 9.7 自定义的内存分配“消毒剂” 130 9.7.1 AddressSanitizer 130 9.7.2 MemorySanitizer 131 9.7.3 UndefinedBehaviorSanitizer 131 9.8 PyArena 内存堆区 132 9.9 引用计数 133 9.9.1 在 Python 中创建变量 133 9.9.2 增加引用 133 9.9.3 减少引用 134 9.9.4 字节码操作中的引用计数 135 9.9.5 CPython 引用计数的优点 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章 并行和并发 146 10.1 并行模型和并发模型 147 10.2 进程的结构 148 10.3 多进程并行 149 10.3.1 在 POSIX 中fork 进程 149 10.3.2 Windows 系统上的 多进程 152 10.3.3 multiprocessing 包 152 10.3.4 相关源文件 152 10.3.5 spawn 进程和 fork 进程 152 10.3.6 使用队列和管道交换 数据 158 10.3.7 进程之间的共享状态 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 线程状态 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 创建生成器 179 10.6.4 执行生成器 181 10.7 协程 182 10.7.1 相关源文件 184 10.7.2 事件循环 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 内置类型 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 字节顺序标记 204 11.6.6 encodings 包 204 11.6.7 编解码器模块 205 11.6.8 编解码器的实现 205 11.6.9 内部的编解码器 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 系统上运行测试 套件 217 13.2 在 Linux 系统或 macOS 系统上 运行测试套件 217 13.3 测试标志 218 13.4 运行特定测试 218 13.5 测试模块 220 13.6 测试工具 220 13.7 小结 221 第 14章 调试 222 14.1 使用崩溃处理程序 222 14.2 编译调试的支持 223 14.2.1 Windows系统 223 14.2.2 macOS 系统或 Linux 系统 223 14.3 在 macOS 系统上使用LLDB 223 14.3.1 创建断点 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 创建断点 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 调试器 228 14.5.1 添加断点 229 14.5.2 启动调试器 229 14.5.3 处理断点 230 14.6 使用 CLion 调试器 231 14.6.1 调试 make 应用程序 232 14.6.2 附加调试器 232 14.6.3 创建断点 232 14.6.4 处理断点 234 14.7 小结 235 第 15章 基准测试、性能分析和追踪 236 15.1 使用 timeit 进行微基准测试 237 15.2 使用 Python 基准测试套件进行 运行时基准测试 238 15.2.1 执行基准测试 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 创建一个拉取请求来修复问题 251 16.3.3 其他贡献 252 16.4 继续学习 252 附录A 面向Python程序员的 C 语言 简介 253

主编推荐
Python 之父 Guido van Rossum 推荐,CPython 核心开发者 Carol Willing 作序。 以平易近人的方式解释 Python 解释器的概念、思想和技术细节,手把手带你重新编译CPython,了解Python的内部实现。 CPython 即用C语言实现的 Python 解释器,是目前使用广泛的 Python 解释器,GitHub Star数近 50k。 不了解 Python 的人可能不知道,当我们谈论 Python 的时候,99% 的情况其实说的就是 CPython。

精彩内容
大模型的出现让 AI 技术经历了从量变到质变的过程,而 Python 作为 AI 优选语言,一直默默推动着 AI 技术的快速发展。你是否想过,这是为什么呢?答案就藏在 CPython 中! CPython 是用 C 语言实现的 Python 解释器,它是 Python 的官方实现,并且是使用最广泛的 Python 解释器。其实在谈论 Python 的时候,99% 的情况说的就是 CPython!本书共 16 章,从获取 CPython 源代码开始,手把手带你重新编译 CPython,我们将一起调试代码、升级组件,在这个过程中,你可以详细了解 Python 各类特性的工作原理,成长为一名更棒的Python 程序员。

媒体评论
“我把这本书推荐给所有想要开始学习 CPython 的人。” ——Guido van Rossum,Python 之父 “这本书将带你踏上探索主流编程语言 Python 的旅程,指导你了解 CPython 内部的运作原理,并让你一睹核心开发人员是如何精心制作语言的。我相信,读完这本书,不仅你的技能会增长,而且你将能够解决更复杂的问题,从而改善我们的世界。” ——Carol Willing,CPython 核心开发者,CPython 指导委员会成员 “这本书将带你探秘 Python 幕后,尽览 CPython 内核奥义,深入了解底层的内存管理、并发和性能调优技巧,领略大师级语言的设计与架构之美,助你成为真正的 Python 专家。” ——陈光,北京邮电大学副教授,博主@爱可可-爱生活 “掌握汽车发动机的工作原理或许并不直接提升你的驾驶水平,但学习一门编程语言的内部实现能实实在在提升你的技术能力。这本书从语法解析、编译器等基础概念出发,深入求值循环、内存管理等 CPython 解释器实现细节。对想了解语言实现细节、提升技术能力的 Python 程序员来说,非常值得一读。” ——朱雷( @piglei ),腾讯公司高级工程师,《Python 工匠:案例、技巧与工程实践》作者

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP