您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
Ruby原理剖析
字数: 490千字
装帧: 平装
出版社: 华中科技大学出版社
作者: (美)帕特里克·肖内西(Patrick Shaughnessy) 著;张汉东 译;秦凡鹏 审校
出版日期: 2016-10-01
商品条码: 9787568022620
版次: 1
开本: 16开
页数: 360
出版年份: 2016
定价:
¥78.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
《Ruby源码剖析:图解动态语言核心技术》解开Ruby编程语言的魔法面纱。本书图文并茂、深入浅出地剖析了Ruby编程语言的底层实现机制。作者通过一个又一个实验,将虚拟机执行Ruby代码的方式、Ruby的运行时垃圾回收机制、hash表的工作原理、类和模块的秘密,还有Ruby与Lisp算法上的渊源关系逐一呈现在读者的眼前。
作者简介
帕特里克·肖内西(Patrick Shaughnessy)是有名的Ruby开发者,目前在麦肯锡管理咨询公司(McKinsey & Co.)从事开发工作。Patrick有20多年软件开发工作经验,精通C、Java、PHP、Ruby等多种编程语言。他是Ruby Conference Circuit的主持人,定期在Ruby Weekly电子报、Ruby5 Podcast和The Ruby Show上发表文章和演讲。
目录
1分词与语法解析
1.1词条:构成Ruby语言的单词
1.2语法解析:Ruby如何理解代码
1.2.1理解LALR解析算法
1.2.2真实的Ruby语法规则
1.3总结
2编译
2.1Ruby 1.8没有编译器
2.2Ruby 1.9和Ruby 2.0引入了编译器
2.3Ruby如何编译简单脚本
2.4编译块调用
2.5本地表
2.5.1编译可选参数
2.5.2编译关键字参数
2.6总结
3Ruby如何执行代码
3.1YARV内部栈和Ruby调用栈
3.1.1逐句查看Ruby如何执行简单脚本
3.1.2执行块调用
3.2访问Ruby变量的两种方式
3.2.1本地变量访问
3.2.2方法参数被看成本地变量
3.2.3动态变量访问
3.3总结
4控制结构与方法调度
4.1Ruby如何执行if语句
4.2作用域之间的跳转
4.2.1捕获表
4.2.2捕获表的其他用途
4.3send指令:Ruby最复杂的控制结构
4.3.1方法查找和方法调度
4.3.2Ruby方法的11种类型
4.4调用普通Ruby方法
4.4.1为普通Ruby方法准备参数
4.5调用内建的Ruby方法
4.5.1调用attr_reader和attr_writer
4.5.2方法调度优化attr_reader和attr_writer
4.6总结
5对象与类
5.1Ruby对象内部
5.1.1检验klass和ivptr
5.1.2观察同一个类的两个实例
5.1.3基本类型对象
5.1.4简单立即值接近不需要结构体
5.1.5基本类型对象有实例变量吗
5.1.6基本类型对象的实例变量保存在哪里
5.2RClass结构体内部有什么
5.2.1继承
5.2.2类实例变量vs类变量
5.2.3存取类变量
5.2.4常量
5.2.5真实的RClass结构体
5.3总结
6方法查找和常量查找
6.1Ruby如何实现模块
6.1.1模块是类
6.1.2将模块include到类中
6.2Ruby的方法查找算法
6.2.1方法查找示例
6.2.2方法查找算法实践
6.2.3Ruby中的多继承
6.2.4全局方法缓存
6.2.5内联方法缓存
6.2.6清空Ruby的方法缓存
6.2.7在同一个类中include两个模块
6.2.8在模块中include模块
6.2.9Module#prepend示例
6.2.10Ruby如何实现Module#prepend
6.2.11在已被include的模块中增加方法
6.2.12在已被include的模块中include其他模块
6.2.13“被include的类”与原始模块共享方法表
6.3常量查找
6.3.1在超类中查找常量
6.3.2Ruby如何在父级命名空间中查找常量
6.4Ruby中的词法作用域
6.4.1为新类或模块创建常量
6.4.2在父命名空间中使用词法作用域查找常量
6.4.3Ruby的常量查找算法
6.4.4Ruby真实的常量查找算法
6.5总结
7散列表:Ruby内部的主力军
7.1Ruby中的散列表
7.1.1在散列表中保存值
7.1.2从散列表中检索值
7.2散列表如何扩展以容纳更多的值
7.2.1散列冲突
7.2.2重新散列条目
7.3Ruby如何实现散列函数
7.3.1Ruby 2.0中的散列优化
7.4总结
8Ruby如何借鉴Lisp几十年前的理念
8.1块:Ruby中的闭包
8.1.1Ruby如何调用块
8.1.2借用1975年的理念
8.2Lambda和Proc:把函数当做一等公民
8.2.1栈内存vs堆内存
8.2.2深入探索Ruby如何保存字符串的值
8.2.3Ruby如何创建Lambda
8.2.4Ruby如何调用Lambda
8.2.5Proc对象
8.2.6在同一个作用域中多次调用lambda
8.3总结
9元编程
9.1定义方法的多种方式
9.1.1Ruby的普通方法定义过程
9.1.2使用对象前缀定义类方法
9.1.3使用新的词法作用域定义类方法
9.1.4使用单类定义方法
9.1.5在单类的词法作用域中定义方法
9.1.6创建Refinement
9.1.7使用Refinement
9.1.8很好作用域中的self
9.1.9类作用域中的self
9.1.10元类作用域中的self
9.1.11类方法中的self
9.2元编程与闭包:eval、instance_eval和binding
9.2.1能写代码的代码
9.2.2使用binding参数调用eval
9.2.3instance_eval示例
9.2.4Ruby闭包的另一个重点
9.2.5instance_eval改变接收者的self
9.2.6instance_eval为新的词法作用域创建单类
9.2.7使用define_method
9.2.8充当闭包的方法
9.3总结
10JRuby:基于JVM的Ruby
10.1使用MRI和JRuby运行程序
10.1.1JRuby如何解析和编译代码
10.1.2JRuby如何执行代码
10.1.3用Java类实现Ruby类
10.1.4使用-J-XX:+PrintCompilation选项
10.1.5JIT是否提升了JRuby程序的性能
10.2JRuby和MRI中的字符串
10.2.1JRuby和MRI如何保存字符串数据
10.2.2写时复制
10.2.3创建专享且非共享的字符串
10.2.4可视化写时复制
10.2.5修改共享字符串更慢
10.3总结
11Rubinius:用Ruby实现的Ruby
11.1Rubinius内核和虚拟机
11.1.1词法分析和解析
11.1.2使用Ruby编译Ruby
11.1.3Rubinius字节码指令
11.1.4Ruby和C++一起工作
11.1.5使用C++对象实现Ruby对象
11.1.6Rubinius中的(栈)回溯
11.2Rubinius和MRI中的数组
11.2.1MRI中的数组
11.2.2Rubinius中的数组
11.2.3阅读Array#shift源码
11.2.4修改Array#shift方法
11.3总结
12MRI、JRuby、Rubinius垃圾回收
12.1垃圾回收器解决三个问题
12.2MRI中的垃圾回收:标记与清除
12.2.1空闲列表
12.2.2标记
12.2.3MRI如何标记存活对象
12.2.4清除
12.2.5延迟清除
12.2.6标记-清除的缺点
12.2.7观察MRI执行延迟清除
12.2.8观察MRI执行全回收
12.2.9解读GC分析报告
12.3JRuby和Rubinius中的垃圾回收
12.4复制垃圾回收
12.4.1碰撞分配
12.4.2半空间算法
12.4.3伊甸堆
12.5分代垃圾回收
12.5.1弱代假说
12.5.2为新生代使用半空间算法
12.5.3晋升对象
12.5.4成熟代对象垃圾回收
12.6并发垃圾回收
12.6.1当对象图改变时进行标记
12.6.2三色标记
12.6.3JVM中的三种垃圾收集器
12.6.4触发主收集
12.7延伸阅读
12.8总结
索引
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网