当前位置:首页 > 程序设计 >
《Ruby原理剖析》电子书封面

Ruby原理剖析

  • 发布时间:2020年08月01日 19:45:58
  • 作者:张汉东,秦凡鹏
  • 大小:64.3 MB
  • 类别:Ruby电子书
  • 格式:PDF
  • 版本:影印版
  • 评分:7.9

    Ruby原理剖析 PDF 影印版

      给大家带来的一篇关于Ruby相关的电子书资源,介绍了关于Ruby原理、Ruby方面的内容,本书是由华中科技大学出版社出版,格式为PDF,资源大小64.3 MB,张汉东,秦凡鹏编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.3。

      内容介绍

      Ruby原理剖析》解开Ruby编程语言的魔法面纱。全书图文并茂、深入浅出地剖析了Ruby编程语言的核心工作原理。作者本着科学实证的精神,设计了一系列实验,帮助读者轻松了解这门编程语言的工作奥秘,包括Ruby如何用虚拟机执行代码,Ruby的垃圾回收算法,以及类和模块在Ruby内部的关系等。 

      目录

      • 1 分词与语法解析 3
      • 1.1 词条:构成Ruby语言的单词 5
      • 1.2 语法解析:Ruby如何理解代码 13
      • 1.2.1 理解LALR解析算法 14
      • 1.2.2 真实的Ruby语法规则 21
      • 1.3 总结 31
      • 2 编译 33
      • 2.1 Ruby 1.8没有编译器 34
      • 2.2 Ruby 1.9和Ruby 2.0引入了编译器 35
      • 2.3 Ruby如何编译简单脚本 37
      • 2.4 编译块调用 41
      • 2.5 本地表 49
      • 2.5.1 编译可选参数 52
      • 2.5.2 编译关键字参数 53
      • 2.6 总结 57
      • 3 Ruby如何执行代码 59
      • 3.1 YARV内部栈和Ruby调用栈 60
      • 3.1.1 逐句查看Ruby如何执行简单脚本 62
      • 3.1.2 执行块调用 65
      • 3.2 访问Ruby变量的两种方式 72
      • 3.2.1 本地变量访问 72
      • 3.2.2 方法参数被看成本地变量 75
      • 3.2.3 动态变量访问 76
      • 3.3 总结 86
      • 4 控制结构与方法调度 89
      • 4.1 Ruby如何执行if语句 90
      • 4.2 作用域之间的跳转 93
      • 4.2.1 捕获表 94
      • 4.2.2 捕获表的其他用途 96
      • 4.3 send指令:Ruby最复杂的控制结构 99
      • 4.3.1 方法查找和方法调度 99
      • 4.3.2 Ruby方法的11种类型 100
      • 4.4 调用普通Ruby方法 102
      • 4.4.1 为普通Ruby方法准备参数 103
      • 4.5 调用内建的Ruby方法 104
      • 4.5.1 调用attr_reader和attr_writer 105
      • 4.5.2 方法调度优化attr_reader和attr_writer 106
      • 4.6 总结 110
      • 5 对象与类 113
      • 5.1 Ruby对象内部 114
      • 5.1.1 检验klass和ivptr 115
      • 5.1.2 观察同一个类的两个实例 117
      • 5.1.3 基本类型对象 118
      • 5.1.4 简单立即值完全不需要结构体 119
      • 5.1.5 基本类型对象有实例变量吗 120
      • 5.1.6 基本类型对象的实例变量保存在哪里 122
      • 5.2 RClass结构体内部有什么 125
      • 5.2.1 继承 128
      • 5.2.2 类实例变量vs类变量 129
      • 5.2.3 存取类变量 131
      • 5.2.4 常量 134
      • 5.2.5 真实的RClass结构体 135
      • 5.3 总结 140
      • 6 方法查找和常量查找 143
      • 6.1 Ruby如何实现模块 145
      • 6.1.1 模块是类 145
      • 6.1.2 将模块include到类中 147
      • 6.2 Ruby的方法查找算法 148
      • 6.2.1 方法查找示例 149
      • 6.2.2 方法查找算法实践 151
      • 6.2.3 Ruby中的多继承 152
      • 6.2.4 全局方法缓存 153
      • 6.2.5 内联方法缓存 154
      • 6.2.6 清空Ruby的方法缓存 155
      • 6.2.7 在同一个类中include两个模块 155
      • 6.2.8 在模块中include模块 157
      • 6.2.9 Module#prepend 示例 158
      • 6.2.10 Ruby如何实现Module#prepend 161
      • 6.2.11 在已被include的模块中增加方法 164
      • 6.2.12 在已被include的模块中include其他模块 164
      • 6.2.13 “被include的类”与原始模块共享方法表 166
      • 6.3 常量查找 168
      • 6.3.1 在超类中查找常量 169
      • 6.3.2 Ruby如何在父级命名空间中查找常量 170
      • 6.4 Ruby中的词法作用域 171
      • 6.4.1 为新类或模块创建常量 172
      • 6.4.2 在父命名空间中使用词法作用域查找常量 173
      • 6.4.3 Ruby的常量查找算法 175
      • 6.4.4 Ruby真实的常量查找算法 177
      • 6.5 总结 178
      • 7 散列表:Ruby内部的主力军 181
      • 7.1 Ruby中的散列表 182
      • 7.1.1 在散列表中保存值 183
      • 7.1.2 从散列表中检索值 185
      • 7.2 散列表如何扩展以容纳更多的值 188
      • 7.2.1 散列冲突 188
      • 7.2.2 重新散列条目 189
      • 7.3 Ruby如何实现散列函数 195
      • 7.3.1 Ruby 2.0中的散列优化 202
      • 7.4 总结 203
      • 8 Ruby如何借鉴Lisp几十年前的理念 207
      • 8.1 块: Ruby中的闭包 208
      • 8.1.1 Ruby如何调用块 210
      • 8.1.2 借用1975年的理念 212
      • 8.2 Lambda和Proc:把函数当做一等公民 219
      • 8.2.1 栈内存vs堆内存 220
      • 8.2.2 深入探索Ruby如何保存字符串的值 220
      • 8.2.3 Ruby如何创建Lambda 223
      • 8.2.4 Ruby如何调用Lambda 226
      • 8.2.5 Proc对象 227
      • 8.2.6 在同一个作用域中多次调用lambda 232
      • 8.3 总结 234
      • 9 元编程 237
      • 9.1 定义方法的多种方式 239
      • 9.1.1 Ruby的普通方法定义过程 239
      • 9.1.2 使用对象前缀定义类方法 241
      • 9.1.3 使用新的词法作用域定义类方法 242
      • 9.1.4 使用单类定义方法 244
      • 9.1.5 在单类的词法作用域中定义方法 245
      • 9.1.6 创建Refinement 246
      • 9.1.7 使用Refinement 248
      • 9.1.8 顶级作用域中的self 250
      • 9.1.9 类作用域中的self 251
      • 9.1.10 元类作用域中的self 252
      • 9.1.11 类方法中的self 253
      • 9.2 元编程与闭包:eval、instance_eval和binding 255
      • 9.2.1 能写代码的代码 255
      • 9.2.2 使用binding参数调用eval 257
      • 9.2.3 instance_eval示例 259
      • 9.2.4 Ruby闭包的另一个重点 260
      • 9.2.5 instance_eval改变接收者的self 262
      • 9.2.6 instance_eval为新的词法作用域创建单类 262
      • 9.2.7 使用define_method 266
      • 9.2.8 充当闭包的方法 266
      • 9.3 总结 268
      • 10 JRuby:基于JVM的Ruby 271
      • 10.1 使用MRI和JRuby运行程序 272
      • 10.1.1 JRuby如何解析和编译代码 274
      • 10.1.2 JRuby如何执行代码 276
      • 10.1.3 用Java类实现Ruby类 278
      • 10.1.4 使用-J-XX: PrintCompilation选项 281
      • 10.1.5 JIT是否提升了JRuby程序的性能 283
      • 10.2 JRuby和MRI中的字符串 284
      • 10.2.1 JRuby和MRI如何保存字符串数据 284
      • 10.2.2 写时复制 286
      • 10.2.3 创建唯一且非共享的字符串 288
      • 10.2.4 可视化写时复制 290
      • 10.2.5 修改共享字符串更慢 291
      • 10.3 总结 293
      • 11 Rubinius:用Ruby实现的Ruby 295
      • 11.1 Rubinius内核和虚拟机 296
      • 11.1.1 词法分析和解析 298
      • 11.1.2 使用Ruby编译Ruby 299
      • 11.1.3 Rubinius字节码指令 300
      • 11.1.4 Ruby和C 一起工作 302
      • 11.1.5 使用C 对象实现Ruby对象 303
      • 11.1.6 Rubinius中的(栈)回溯 305
      • 11.2 Rubinius和MRI中的数组 307
      • 11.2.1 MRI中的数组 307
      • 11.2.2 Rubinius中的数组 309
      • 11.2.3 阅读Array#shift源码 311
      • 11.2.4 修改Array#shift方法 312
      • 11.3 总结 315
      • 12 MRI、JRuby、Rubinius垃圾回收 317
      • 12.1 垃圾回收器解决三个问题 319
      • 12.2 MRI中的垃圾回收: 标记与清除 320
      • 12.2.1 空闲列表 320
      • 12.2.2 标记 321
      • 12.2.3 MRI如何标记存活对象 323
      • 12.2.4 清除 323
      • 12.2.5 延迟清除 324
      • 12.2.6 标记-清除的缺点 325
      • 12.2.7 观察MRI执行延迟清除 327
      • 12.2.8 观察MRI执行全回收 328
      • 12.2.9 解读GC分析报告 329
      • 12.3 JRuby和Rubinius中的垃圾回收 332
      • 12.4 复制垃圾回收 333
      • 12.4.1 碰撞分配 333
      • 12.4.2 半空间算法 334
      • 12.4.3 伊甸堆 336
      • 12.5 分代垃圾回收 337
      • 12.5.1 弱代假说 337
      • 12.5.2 为新生代使用半空间算法 338
      • 12.5.3 晋升对象 338
      • 12.5.4 成熟代对象垃圾回收 339
      • 12.6 并发垃圾回收 341
      • 12.6.1 当对象图改变时进行标记 341
      • 12.6.2 三色标记 343
      • 12.6.3 JVM中的三种垃圾收集器 344
      • 12.6.4 触发主收集 347
      • 12.7 延伸阅读 348
      • 12.8 总结 349
      • 索引 351

      学习笔记

      python和ruby,我选谁?

      最近在考虑学习一门后端语言,在ruby和python直接犹豫,然后自己做了一些对比,希望能帮到有同样问题的你。 一、异同对比选择 1、Python和ruby的相同点: •都强调语法简单,都具有更一般的表达方式。python是缩进,ruby是类basic的表达。都大量减少了符号。 •都是动态数据类型。都是有丰富的数据结构。 •都具有C语言扩展能力,都具有可移植性,比perl的可移植性更好。也都可以作为嵌入语言。 •都是面向对象的语言,都可以作为大项目的开发工具。 •都有丰富的库支持。 •也有最宽松的版权许可,除了一些工具属于GNU世界。 •都有lisp特色的eval函数,也都能把函数作为参数。 •也有图形界面的……

      比较python和ruby

      本文给大家对比了下python和Ruby的异同以及各自的优缺点等,向大家展示了python与Ruby的资源以及学习曲线,非常适合在此两种语言中犹豫不决的小伙伴,希望大家能够喜欢 最近在考虑学习一门后端语言,在ruby和python直接犹豫,然后自己做了一些对比,希望能帮到有同样问题的你。 一、异同对比选择 1、Python和ruby的相同点: •都强调语法简单,都具有更一般的表达方式。python是缩进,ruby是类basic的表达。都大量减少了符号。 •都是动态数据类型。都是有丰富的数据结构。 •都具有C语言扩展能力,都具有可移植性,比perl的可移植性更好。也都可以作为嵌入语言。 •都是面向对象的语言,都可以作为大……

      以上就是本次介绍的Ruby电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:痛点:挖掘小数据满足用户需求

      下一篇:在你身边,为你设计:腾讯的用户体验设计之道

      展开 +

      收起 -

      下载地址:百度网盘下载
      Ruby相关电子书
      区块链轻松上手:原理、源码、搭建与应用
      区块链轻松上手:原理、源码、搭建与应用 完整超清版

      全新升级构思,区块链上手性极强,一步步正确引导和深层次 以HyperLedgerFabric主导线,框架结构分析更详细、技巧大量 从入门到精通区块链原理,有基础理论有实践活动,极致融合 如要迅速入

      立即下载
      Ceph设计原理与实现
      Ceph设计原理与实现 完整清晰版 立即下载
      深入理解Kafka:核心设计与实践原理
      深入理解Kafka:核心设计与实践原理 原书完整版

      本书从Kafka的基本概念入手,主要从生产端、消费端、服务端等3个方面进行全面的陈述,主要内容包括Kafka的基本使用方式、生产者客户端的使用、消费者客户端的使用

      立即下载
      深入理解云计算:基本原理和应用程序编程技术
      深入理解云计算:基本原理和应用程序编程技术 全书扫描版

      本书从云基础知识、云应用编程和云平台三个方面,介绍云计算的起源、发展、核心技术、编程技巧和实际应用,基于Aneka平台详细讲解并行计算、高吞吐量计算和数据密集型计算的范式。感兴趣的可以下载学习

      立即下载
      Ansible快速入门:技术原理与实战
      Ansible快速入门:技术原理与实战 高质量高清版

      这本书以新的自动化运维工具Ansible为主要内容,风格通俗易懂,侧重实战,由浅入深地介绍了Ansible以及周边产品Ansible Galaxy和Ansible Tower的用法,引领Ansible新手轻松入门

      立即下载
      揭秘Kotlin编程原理
      揭秘Kotlin编程原理 完整清晰版

      Kotlin的最底层是应用场景Java虚拟机(JVM)的,而《揭秘Kotlin编程原理》的创作者刚好是用户评价热销好书推荐《揭秘Java虚拟机:JVM结构设计与保持》的创作者,他对Kotlin語言的深入了解和剖析

      立即下载
      自学区块链:原理、技术及应用
      自学区块链:原理、技术及应用 完整高清版

      这不仅仅是一本学习区块链的自学教程,更是一本综合学习应用当前主流Web开发技术的实用教程。能够帮助开发者迅速掌握区块链项目的基本开发能力,从而具备更强的行业竞争力。本书简明

      立即下载
      深度学习:原理与应用实践
      深度学习:原理与应用实践 高清版

      《深度学习:原理与应用实践》 全面、系统地介绍深度学习相关的技术,包括人工神经网络,卷积神经网络,深度学习平台及源代码分析,深度学习入门与进阶,深度学习高级实践,所有章节

      立即下载
      读者留言
      高烨霖

      高烨霖 提供上传

      资源
      48
      粉丝
      22
      喜欢
      198
      评论
      8

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com