自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (17)
  • 收藏
  • 关注

原创 使用nodejs编译智能合约,部署合约,调用合约

使用nodejs编译智能合约nodejs环境搭建,自行百度解决新建工程 新建项目工程文件夹,进入文件夹 在`cmd`里使用`npm install solc` 智能合约,以下提供一个简单的智能合约 使用nodejs编译智能合约 将智能合约部署到私链上 使用nodejs,web3访问智能合约 具体步骤一共分为以上几步。手把手一步一步...

2018-09-06 19:30:47 3787 3

图解密码技术.pdf

★ 畅销书全面升级!新增椭圆曲线密码、比特币等前沿内容! ★ 日本数学协会出版奖得主、《程序员的数学》《数学女孩》作者 结城浩重磅力作! ◎ 第3版全面修订,内容更前沿 第3版对全书内容进行了大幅更新,并新增POODLE攻击、“心脏出血”漏洞、Superfish事件、SHA-3竞赛、Keccak、认证加密、椭圆曲线密码、比特币等新内容。 ◎ 拒绝繁冗的数学公式和干巴巴的理论 无需编程基础,配图讲解,真的很好懂! ◎ 全面涵盖现代密码技术 对称密码、公钥密码、单向散列函数、消息认证码、数字签名、伪随机数生成器、量子密码、量子计算机,一网打尽。 目录 译 者 序 阅读 前 言 阅读 第1部分 密码 阅读 第1章 环游密码世界 阅读 第2章 历史上的密码 ——写一篇别人看不懂的文章 第3章 对称密码(共享密钥密码)——用相同的密钥进行加密和解密 第4章 分组密码的模式——分组密码是如何迭代的 第5章 公钥密码——用公钥加密,用私钥解密  第6章 混合密码系统——用对称密码提高速度,用公钥密码保护会话密钥  第2部分 认证 第7章 单向散列函数——获取消息的“指纹” 阅读 第8章 消息认证码——消息被正确传送了吗 第9章 数字签名——消息到底是谁写的 第10章 证书——为公钥加上数字签名 第3部分 密钥、随机数与应用技术 第11章 密钥——秘密的精华  第12章 随机数——不可预测性的源泉 第13章 PGP——密码技术的完美组合  第14章 SSL/TLS ——为了更安全的通信 第15章 密码技术与现实社会 ——我们生活在不完美的安全中 附录 椭圆曲线密码 作者介绍 <作译者介绍> 结城浩(Hiroshi Yuki) 生于1963年,日本知名技术作家和程序员。在编程语言、设计模式、数学、加密技术等领域,编写了很多深受欢迎的入门书。代表作有《数学女孩》系列、《程序员的数学》等。 作者网站:http://www.hyuki.com/ 周自恒 IT、编程爱好者,初中时曾在NOI(国家信息学奥赛)天津赛区获一等奖,现就职于 某管理咨询公司,任咨询顾问兼战略技术总监。译著有《图解CIO工作指南(第4版)》《大数据的冲击》《代码的未来》《30天自制操作系统》《家用游戏机简史》《有趣的二进制》等。

2019-06-25

Go语言实战

Go语言结合了底层系统语言的能力以及现代语言的高级特性,旨在降低构建简单、可靠、高效软件的门槛。本书向读者提供一个专注、全面且符合语言习惯的视角。Go语言实战同时关注语言的规范和实现,涉及的内容包括语法、类型系统、并发、管道、测试,以及其他一些主题。 购买地址:https://item.jd.com/12136974.html Go语言结合了底层系统语言的能力以及现代语言的高级特性,旨在降低构建简单、可靠、高效软件的门槛。本书向读者提供一个专注、全面且符合语言习惯的视角。Go语言实战同时关注语言的规范和实现,涉及的内容包括语法、类型系统、并发、管道、测试,以及其他一些主题。

2018-06-13

go语言编程实战代码

An example project for book 'Go Programming Concurrency in Practice, 2nd edition' (《Go并发编程实战》第2版).

2018-06-13

Go语言编程_许式伟

这本书从整体的写作风格来说,会以介绍 Go 语言特性为主,示例则尽量采用作者平常的实践,而不是一个没有太大实际意义的语法示范样例。, 本书作者背景极强,许式伟为原金山WPS首席架构师、曾是盛大创新院研究员,目前是国内Go语言实践圈子公认的Go语言专家。参与本书写作的几位作者都是实际用Go语言开发的项目的开发人员,有较强的实战经验。, 本书以介绍Go语言特性为主,示例则尽量采用作者开发团队平常的实践,内容涉及内存管理(堆和栈)、错误处理、OOP、并发编程等关键话题。 这本书面向的读者是所有打算用Go语言的开发者,主要包括目前使用C、C++、Java、C#的开发人员,甚至一些Python、PHP开发人员也可能转为 Go 程序员。

2018-06-13

Go并发编程实战

Go并发编程实战全面介绍了Go语言的特点、安装部署环境、工程规范、工具链、语言语法、并发编程模型以及在多个编程实战中的应用,重点阐述了Go语言并发编程模型和机制。本书共分为四个部分,介绍了Go语言编程环境搭建、Go语言基础编程、Go语言并发编程方法及其原理,以及使用Go语言开发的应用系统的案例讲解。 本书适用于有一定计算机编程基础的从业者以及对Go语言编程感兴趣的爱好者,非常适合作为Go语言编程进阶教程。 本书特点: 1. 全面介绍Go语言基础编程。本书通过5个章节详细地介绍了Go的语言细节和底层实现细节,贯穿于语言层面和源码层面,让读者可以对Go语言的实现有更加深刻的理解。 2. 直击Go语言的精髓和最大亮点——并发编程技术。本书最大的看点和特色在于并发编程。本书深入剖析了并发编程模型及其在多个编程实战中的应用,重点阐述了Go语言并发编程模型和机制,详细介绍了Go并发编程的核心要素——Goroutine和Channel的概念、原理、基本用法和高级技巧应用,以及编写并发程序的过程中对各种同步工具的运用等问题。                3. 示例全面详细。本书展示和细致讲解了各种各样的代码实例,尤其是包含了像载荷发生器和网络爬虫框架这样的实用程序,让读者可以对并发、线程、信号等概念有清晰的理解。 Go并发编程实战 目录: 第一部分Go语言的世界 第1章初识Go语言 第2章Go语言环境搭建 第二部分编程基础 第3章词法与数据类型 第4章流程控制方法 第5章程序测试和文档 第三部分并发编程 第6章并发编程综述 第7章Goroutine和Channel 第8章同步 第四部分编程实战 第9章一个网络爬虫框架的设计和实现

2018-06-13

go web编程

第一部分 Go与Web应用 第1章 Go与Web应用 3 1.1 使用Go语言构建Web应用 3 1.1.1 Go与可扩展Web应用 4 1.1.2 Go与模块化Web应用 4 1.1.3 Go与可维护的Web应用 5 1.1.4 Go与高性能Web应用 5 1.2 Web应用的工作原理 6 1.3 HTTP简介 7 1.4 Web应用的诞生 8 1.5 HTTP请求 9 1.5.1 请求方法 10 1.5.2 安全的请求方法 11 1.5.3 幂等的请求方法 11 1.5.4 浏览器对请求方法的支持 11 1.5.5 请求首部 12 1.6 HTTP响应 13 1.6.1 响应状态码 13 1.6.2 响应首部 14 1.7 URI 15 1.8 HTTP/2简介 16 1.9 Web应用的各个组成部分 16 1.9.1 处理器 17 1.9.2 模板引擎 18 1.10 Hello Go 18 1.11 小结 21 第2章 ChitChat论坛 23 2.1 ChitChat简介 23 2.2 应用设计 24 2.3 数据模型 26 2.4 请求的接收与处理 27 2.4.1 多路复用 器 27 2.4.2 服务静态文件 29 2.4.3 创建处理器函数 29 2.4.4 使用cookie进行访问控制 30 2.5 使用模板生成HTML响应 33 2.6 安装PostgreSQL 38 2.6.1 在Linux或FreeBSD系统上安装 38 2.6.2 在Mac OS X系统上安装 39 2.6.3 在Windows系统上安装 39 2.7 连接数据库 39 2.8 启动服务器 44 2.9 Web应用运作流程回顾 45 2.10 小结 46 第二部分 Web应用的基本组成部分 第3章 接收请求 49 3.1 Go的net/http标准库 49 3.2 使用Go构建服务器 51 3.2.1 Go Web服务器 51 3.2.2 通过HTTPS提供服务 53 3.3 处理器和处理器函数 56 3.3.1 处理请求 56 3.3.2 使用多个处理器 58 3.3.3 处理器函数 59 3.3.4 串联多个处理器和处理器函数 61 3.3.5 ServeMux和DefaultServeMux 65 3.3.6 使用其他多路复用器 66 3.4 使用HTTP/2 68 3.5 小结 70 第4章 处理请求 72 4.1 请求和响应 72 4.1.1 Request结构 73 4.1.2 请求URL 73 4.1.3 请求首部 74 4.1.4 请求主体 76 4.2 Go与HTML表单 77 4.2.1 Form字段 79 4.2.2 PostForm字段 80 4.2.3 MultipartForm字段 81 4.2.4 文件 83 4.2.5 处理带有JSON主体的POST请求 85 4.3 ResponseWriter 86 4.4 cookie 91 4.4.1 Go与cookie 91 4.4.2 将cookie发送至浏览器 92 4.4.3 从浏览器里面获取cookie 94 4.4.4 使用cookie实现闪现消息 96 4.5 小结 99 第5章 内容展示 100 5.1 模板引擎 100 5.2 Go的模板引擎 102 5.2.1 对模板进行语法分析 104 5.2.2 执行模板 105 5.3 动作 106 5.3.1 条件动作 106 5.3.2 迭代动作 108 5.3.3 设置动作 109 5.3.4 包含动作 111 5.4 参数、变量和管道 113 5.5 函数 114 5.6 上下文感知 116 5.6.1 防御XSS攻击 119 5.6.2 不对HTML进行转义 121 5.7 嵌套模板 122 5.8 通过块动作定义默认模板 126 5.9 小结 127 第6章 存储数据 128 6.1 内存存储 128 6.2 文件存储 131 6.2.1 读取和写入CSV文件 133 6.2.2 gob包 135 6.3 Go与SQL 137 6.3.1 设置数据库 138 6.3.2 连接数据库 140 6.3.3 创建帖子 142 6.3.4 获取帖子 144 6.3.5 更新帖子 145 6.3.6 删除帖子 145 6.3.7 一次获取多篇帖子 146 6.4 Go与SQL的关系 147 6.4.1 设置数据库 147 6.4.2 一对多关系 150 6.5 Go与关系映射器 152 6.5.1 Sqlx 152 6.5.2 Gorm 154 6.6 小结 157 第三部分 实战演练 第7章 Go Web服务 161 7.1 Web服务简介 161 7.2 基于SOAP的Web服务简介 163 7.3 基于REST的Web服务简介 166 7.3.1 将动作转换为资源 168 7.3.2 将动作转换为资源的属性 169 7.4 通过Go分析和创建XML 169 7.4.1 分析XML 169 7.4.2 创建XML 177 7.5 通过Go分析和创建JSON 180 7.5.1 分析JSON 181 7.5.2 创建JSON 184 7.6 创建Go Web服务 187 7.7 小结 194 第8章 应用测试 196 8.1 Go与测试 196 8.2 使用Go进行单元测试 197 8.2.1 跳过测试用例 201 8.2.2 以并行方式运行测试 202 8.2.3 基准测试 203 8.3 使用Go进行HTTP测试 206 8.4 测试替身以及依赖注入 210 8.5 第三方Go测试库 217 8.5.1 Gocheck测试包简介 217 8.5.2 Ginkgo测试框架简介 223 8.6 小结 228 第9章 发挥Go的并发优势 230 9.1 并发与并行的区别 230 9.2 goroutine 232 9.2.1 使用goroutine 232 9.2.2 goroutine与性能 235 9.2.3 等待goroutine 238 9.3 通道 239 9.3.1 通过通道实现同步 240 9.3.2 通过通道实现消息传递 242 9.3.3 有缓冲通道 243 9.3.4 从多个通道中选择 244 9.4 在Web应用中使用并发 247 9.4.1 创建马赛克图片 248 9.4.2 马赛克图片Web应用 251 9.4.3 并发版马赛克图片生成Web应用 254 9.5 小结 262 第10章 Go的部署 263 10.1 将应用部署到独立的 服务器 264 10.2 将应用部署到 Heroku 270 10.3 将应用部署到Google App Engine 273 10.4 将应用部署到 Docker 278 10.4.1 什么是Docker 278 10.4.2 安装Docker 279 10.4.3 Docker的理念与 组件 280 10.4.4 Docker化一个Go Web 应用 281 10.4.5 将Docker容器推送至 互联网 283 10.5 部署方法之间的 对比 286 10.6 小结 287

2018-06-13

编译原理(原书第2版)(Compilers Principle,Techniques and Tools

内容简介 · · · · · · 本书全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。 本书是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。 作者简介 · · · · · · Alfred V. Aho是哥伦比亚大学的Lawrence Gussman计算机科学教授。Aho教授多次获奖,其中包括哥伦比亚校友会颁发的2003年度Great Teacher奖和电子与电器工程师协会的Jonh von Neumann奖章。他是美国国家工程院院士,以及ACM和IEEE的会员。 Monica S. Lam是斯坦福大学的计算机科学教授。她曾经是Tensilica的首席科学家,并且是moka5的创建者和首席执行官。她领导了SUIF项目。该项目开发了最流行的研究性编译器之一,并首创了很多在工业界得到应用的编译技术。 Ravi Sethi发起了Avaya公司的研究组织,并且是Avaya实验室的主管。之前他曾经是Bell实验室的高级副总裁,并且是Lucent科技的通信软件的首席技术官。他曾经在Pennsylvania州立大学和Arizona大学拥有教职,并在Priceton大学和Rutgers大学任教。他是ACM的会员。 Jeffery D. Ullman是Gradiance公司的首席执行官和Standford大学的Stanford W. Ascherman计算机科学(名誉退休)教授。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础软件的教育技术。他是美国国家工程院的院士,ACM的会员,并且是Karlstrom奖和Knuth奖的获得者。 目录 · · · · · · 出版者的话 译者序 前言 第1章 引论 1.1 语言处理器 1.2 一个编译器的结构 1.2.1 词法分析 1.2.2 语法分析 1.2.3 语义分析 1.2.4 中间代码生成 1.2.5 代码优化 1.2.6 代码生成 1.2.7 符号表管理 1.2.8 将多个步骤组合成趟 1.2.9 编译器构造工具 1.3 程序设计语言的发展历程 1.3.1 走向高级程序设计语言 1.3.2 对编译器的影响 1.3.3 1.3 节的练习 1.4 构建一个编译器的相关科学 1.4.1 编译器设计和实现中的建模 1.4.2 代码优化的科学 1.5 编译技术的应用 1.5.1 高级程序设计语言的实现 1.5.2 针对计算机体系结构的优化 1.5.3 新计算机体系结构的设计 1.5.4 程序翻译 1.5.5 软件生产率工具 1.6 程序设计语言基础 1.6.1 静态和动态的区别 1.6.2 环境与状态 1.6.3 静态作用域和块结构 1.6.4 显式访问控制 1.6.5 动态作用域 1.6.6 参数传递机制 1.6.7 别名 1.6.8 1.6 节的练习 1.7 第1章的总结 1.8 第1章的参考书目 第2章 一个简单的语法制导翻译器 2.1 引言 2.2 语法定义 2.2.1 文法定义 2.2.2 推导 2.2.3 语法分析树 2.2.4 二义性 2.2.5 运算符的结合性 2.2.6 运算符的优先级 2.2.7 2.2 节的练习 2.3 语法制导翻译 2.3.1 后缀表示 2.3.2 综合属性 2.3.3 简单语法制导定义 2.3.4 树的遍历 2.3.5 翻译方案 2.3.6 2.3 节的练习 2.4 语法分析 2.4.1 自顶向下分析方法 2.4.2 预测分析法 2.4.3 何时使用产生式 2.4.4 设计一个预测语法分析器 2.4.5 左递归 2.4.6 2.4 节的练习 2.5 简单表达式的翻译器 2.5.1 抽象语法和具体语法 2.5.2 调整翻译方案 2.5.3 非终结符号的过程 2.5.4 翻译器的简化 2.5.5 完整的程序 2.6 词法分析 2.6.1 剔除空白和注释 2.6.2 预读 2.6.3 常量 2.6.4 识别关键字和标识符 2.6.5 词法分析器 2.6.6 2.6 节的练习 2.7 符号表 2.7.1 为每个作用域设置一个符号表 2.7.2 符号表的使用 2.8 中间代码生成 2.8.1 两种中间表示形式 2.8.2 语法树的构造 2.8.4 三地址码 2.8.5 2.8 节的练习 2.9 第2章的总结 第3章 词法分析 3.1 词法分析器的作用 3.1.1 词法分析及解析 3.1.2 词法单元、模式、词素 3.1.3 词法单元的属性 3.1.4 词法错误 3.1.5 3.1 节的练习 3.2 输入缓冲 3.2.1 缓冲区对 3.2.2 哨兵标记 3.3 词法单元的规约 3.3.1 串和语言 3.3.2 语言上的运算 3.3.3 正则表达式 3.3.4 正则定义 3.3.5 正则表达式的扩展 3.3.6 3.3 节的练习 3.4 词法单元的识别 3.4.1 状态转换图 3.4.2 保留字和标识符的识别 3.4.3 完成我们的连续性例子 3.4.4 基于状态转换图的词法分析器的体系结构 3.4.5 3.4 节的练习 3.5 词法分析器生成工具Lex 3.5.1 Lex的使用 3.5.2 Lex程序的结构 3.5.3 Lex中的冲突解决 3.5.4 向前看运算符 3.5.5 3.5 节练习 3.6 有穷自动机 3.6.1 不确定的有穷自动机 3.6.2 转换表 3.6.3 NFA接受输入字符串 3.6.4 确定的有穷自动机 3.6.5 3.6 节的练习 3.7 从正则表达式到自动机 3.7.1 从NFA到DFA的转换 3.7.2 NFA的模拟 3.7.3 NFA模拟效率 3.7.4 从正则表达式构造NFA 3.7.5 字符串处理算法的效率 3.7.6 3.7 节的练习 3.8 词法分析器生成工具的设计 3.8.1 被生成的词法分析器的结构 3.8.2 基于NFA的模式匹配 3.8.3 词法分析器使用的DFA 3.8.4 实现向前看运算符 3.8.5 3.8 的练习 3.9 基于DFA的模式匹配器的优化 3.9.1 NFA的重要状态 3.9.2 根据抽象语法树计算得到的函数 3.9.3 计算nullable、firstpos及lastpos 3.9.4 计算followpos 3.9.5 根据正则表达式构建DFA 3.9.6 最小化一个DFA的状态数 3.9.7 词法分析器的状态最小化 3.9.8 在DFA模拟中用时间换取空间 3.9.9 3.9 节的练习 3.9.10 第3章的总结 3.11 第3章参考文献 第4章 语法分析 4.1 引论 4.1.1 语法分析器的角色 4.1.2 代表性的文法 4.1.3 语法错误的处理 4.1.4 错误恢复策略 4.2 上下文无关文法 4.2.1 上下文无关文法的正式定义 4.2.2 符号表示的惯例 4.2.3 推导 4.2.4 语法分析树和推导 4.2.5 二义性 4.2.6 验证文法生成的语言 4.2.7 上下文无关文法和正则表达式 4.2.8 4.2 节的练习 4.3 设计文法 4.3.1 词法分析和语法分析 4.3.2 消除二义性 4.3.3 左递归的消除 4.3.4 提取左公因子 4.3.5 非上下文无关的语言构造 4.3.6 4.3 节的练习 4.4 自顶向下的语法分析 4.4.1 递归下降的语法分析 4.4.2 FIRST和FOLLOW 4.4.3 LL(1)文法 4.4.4 非递归的预测分析 4.4.5 预测分析中的错误恢复 4.4.6 4.4 节的练习 4.5 自底向上的语法分析 4.5.1 归约 4.5.2 句柄剪枝 4.5.3 移入-归约语法分析技术 4.5.4 移入-归约语法分析中的冲突 4.5.5 4.5 节的练习 4.6 LR语法分析技术介绍:简单LR技术 4.6.1 为什么使用LR语法分析器? 4.6.2 项和LR(0)自动机 4.6.3 LR-语法分析算法 4.6.4 构造SLR-分析表 4.6.5 可行前缀 4.6.6 4.6 节的练习 4.7 更强大的LR语法分析器 4.7.1 规范LR(1)项 4.7.2 构造LR(1)项集 4.7.3 规范LR(1)分析表 4.7.4 构造LALR语法分析表 4.7.5 LALR语法分析表的高效构造方法 4.7.6 LR语法分析表的压缩 4.7.7 4.7 节的练习 4.8 使用二义性文法 4.8.1 用优先级和结合性解决冲突 4.8.2 “悬空-else”二义性 4.8.3 LR语法分析中的错误恢复 4.8.4 4.8 节的练习 4.9 语法分析器的生成工具 4.9.1 语法分析器的生成工具Yacc 4.9.2 使用Yacc处理二义性文法 4.9.3 用Lex创建Yacc的词法分析器 4.9.4 Yacc中的错误恢复 4.9.5 4.9节的练习 4.10:第4章的小结 4.11 第4章的参考文献 第5章 语法制导的翻译 5.1 语法制导定义 5.1.1 继承属性和综合属性 5.1.2 在一棵语法分析树的结点上对一个SDD求值 5.1.3 5.1 节的练习 5.2 SDD的求值顺序 5.2.1 依赖图 5.2.2 属性求值的顺序 5.2.3 S-属性定义 5.2.4 L-属性定义 5.2.5 具有受控副作用的语义规则 5.2.6 5.2 节的练习 5.3 语法制导翻译的应用 5.3.1 抽象语法树的构造 5.3.2 类型的结构 5.3.3 5.3 节的练习 5.4 语法制导的翻译方案 5.4.1 后缀翻译方案 5.4.2 后缀SDT的语法分析栈实现 5.4.3 产生式内部带有语义动作的SDT 5.4.4 从SDT中消除左递归 5.4.5 L-属性定义的SDT 5.4.6 5.4 节的练习 5.5 实现L-属性的SDD 5.5.1 在递归下降语法分析过程中进行翻译 5.5.2 边扫描边生成代码 5.5.3 L-属性的SDD和LL语法分析 5.5.4 L-属性的SDD的自底向上语法分析 5.5.5 5.5 节的练习 5.6 第5章的总结 5.7 第5章的参考文献 第6章 中间代码生成 第7章 运行时刻环境 第7章 总结 第8章 代码生成 第9章 机器无关优化 第10章 指令级并行 第11章 并行性和局部性的优化 第12章 过程间分析

2018-06-13

编译原理中文版

内容简介 · · · · · · 《编译原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的计算机 科学家,他们在计算机科学理论、数据库等很多领域都做出了杰出贡献。《编译原理》 是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。《编译原理》一 直被世界各地的著名高等院校和科研机构(如贝尔实验室、哥伦比亚大学、普 林斯顿大学和斯坦福大学等)广泛用作本科生和研究生编译原理与技术课程的 教材,《编译原理》对我国计算机教育界也具有重大影响。 书中深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制 导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在 最后两章中讨论了实现编译器的一些编程问题和几个编译器实例,而且每章都 提供了大量的练习和参考文献。 作者简介 · · · · · · Alfred V. Aho是哥伦比亚大学的Lawrence Gussman计算机科学教授。Aho教授多次获奖,其中包括哥伦比亚校友会颁发的2003年度Great Teacher奖和电子与电器工程师协会的Jonh von Neumann奖章。他是美国国家工程院院士,以及ACM和IEEE的会员。 Monica S. Lam是斯坦福大学的计算机科学教授。她曾经是Tensilica的首席科学家,并且是moka5的创建者和首席执行官。她领导了SUIF项目。该项目开发了最流行的研究性编译器之一,并首创了很多在工业界得到应用的编译技术。 Ravi Sethi发起了Avaya公司的研究组织,并且是Avaya实验室的主管。之前他曾经是Bell实验室的高级副总裁,并且是Lucent科技的通信软件的首席技术官。他曾经在Pennsylvania州立大学和Arizona大学拥有教职,并在Priceton大学和Rutgers大学任教。他是ACM的会员。 Jeffery D. Ullman是Gradiance公司的首席执行官和Standford大学的Stanford W. Ascherman计算机科学(名誉退休)教授。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础软件的教育技术。他是美国国家工程院的院士,ACM的会员,并且是Karlstrom奖和Knuth奖的获得者。 目录 · · · · · · 第一章 编译简介 第二章 简单的一遍编译器 第三章 词法分析 第四章 语法分析 第五章 语法制导翻译 第六章 类型检查 第七章 运行时环境 第八章 中间代码生成 第九章 代码生成 第十章 代码优化 第十一章 编写一个编译器 第十二章 编译器实例

2018-06-13

[编译原理-鲸书]Advanced Compiler Design and Implementation

steven s.muchnick具有丰富而广博的经验。他曾经是计算机科学教授,后来他将自己的知识和经验应用于编译器设计,成为两种计算机体系结构(惠普的pa-risc和sun的sparc)开发团队的核心成员,并担任这些系统的高级编译器设计与实现的领导人。他的研究和开发经验对于指导读者做出编译器设计决策极具价值

2018-06-13

[笨方法学.Python].(Learn.Python.The.Hard.Way).Zed.Shaw.文字版

译者前言 前言:笨办法更简单 习题 0: 准备工作 习题 1: 第一个程序 习题 2: 注释和井号 习题 3: 数字和数学计算 习题 4: 变量(variable)和命名 习题 5: 更多的变量和打印 习题 6: 字符串(string)和文本 习题 7: 更多打印 习题 8: 打印,打印 习题 9: 打印,打印,打印 习题 10: 那是什么? 习题 11: 提问 习题 12: 提示别人 习题 13: 参数、解包、变量 习题 14: 提示和传递 习题 15: 读取文件 习题 16: 读写文件 习题 17: 更多文件操作 习题 18: 命名、变量、代码、函数 习题 19: 函数和变量 习题 20: 函数和文件 习题 21: 函数可以返回东西 习题 22: 到现在你学到了哪些东西? 习题 23: 读代码 习题 24: 更多练习 习题 25: 更多更多的练习 习题 26: 恭喜你,现在可以考试了! 习题 27: 记住逻辑关系 习题 28: 布尔表达式练习 习题 29: 如果(if) 习题 30: Else 和 If 习题 31: 作出决定 习题 32: 循环和列表 习题 33: While 循环 习题 34: 访问列表的元素 习题 35: 分支和函数 习题 36: 设计和调试 习题 37: 复习各种符号 习题 38: 阅读代码 习题 39: 列表的操作 习题 40: 字典, 可爱的字典 习题 41: 来自 Percal 25 号行星的哥顿人(Gothons) 习题 42: 物以类聚 习题 43: 你来制作一个游戏 习题 44: 给你的游戏打分 习题 45: 对象、类、以及从属关系 习题 46: 一个项目骨架 练习 47: 自动化测试 习题 48: 更复杂的用户输入 习题 49: 创建句子 习题 50: 你的第一个网站 习题 51: 从浏览器中获取输入 习题 52: 创建你的 web 游戏 下一步 老程序员的建议

2018-06-13

node.js开发指南

内容简介 · · · · · · Node.js是一种方兴未艾的新技术,诞生于2009年。经过两年的快速变化,Node.js生态圈已经逐渐走向稳定。Node.js采用了以往类似语言和框架中非常罕见的技术,总结为关键词就是:非阻塞式控制流、异步I/O、单线程消息循环。不少开发者在入门时总要经历一个痛苦的思维转变过程,给学习带来巨大的障碍。 而本书的目的就是帮助读者扫清这些障碍,学会使用Node.js进行Web后端开发,同时掌握事件驱动的异步式编程风格,以便进一步利用Node.js的高级特性。 作者简介 · · · · · · 郭家寶(BYVoid),清华大学计算机系2010级本科生,曾获得信息学奥林匹克竞赛(NOI)金牌。他从中学开始涉足开源开发,参与过「汉典网」等许多Web项目的前后端设计开发,同时是Linux输入法ibus-pinyin的作者。他从2009年Node.js诞生之始,就一直在关注它的发展,有过许多用Node.js建立网站的经验,活跃于CNode社区。 目录 · · · · · · 目    录 第1章  Node.js简介  1 1.1  Node.js 是什么  2 1.2  Node.js 能做什么  3 1.3  异步式 I/O 与事件驱动  4 1.4  Node.js 的性能  5 1.4.1  Node.js 架构简介  5 1.4.2  Node.js 与 PHP + Nginx  6 1.5  JavaScript 简史  6 1.5.1  Netscape 与 LiveScript  7 1.5.2  Java 与 Javascript  7 1.5.3  微软的加入—— JScript  8 1.5.4  标准化—— ECMAScript  8 1.5.5  浏览器兼容性问题  9 1.5.6  引擎效率革命和 JavaScript 的未来  9 1.6  CommonJS  10 1.6.1  服务端 JavaScript 的重生  10 1.6.2  CommonJS 规范与实现  11 1.7  参考资料  12 第2章  安装和配置Node.js  13 2.1  安装前的准备  14 2.2  快速安装  14 2.2.1  Microsoft Windows系统上安装Node.js  14 2.2.2  Linux 发行版上安装Node.js  16 2.2.3  Mac OS X上安装Node.js  16 2.3  编译源代码  17 2.3.1  在 POSIX 系统中编译  17 2.3.2  在 Windows系统中编译  18 2.4  安装Node 包管理器  18 2.5  安装多版本管理器  19 2.6  参考资料  21 第3章  Node.js快速入门  23 3.1  开始用 Node.js 编程  24 3.1.1  Hello World  24 3.1.2  Node.js 命令行工具  25 3.1.3  建立 HTTP 服务器  26 3.2  异步式 I/O 与事件式编程  29 3.2.1  阻塞与线程  29 3.2.2  回调函数  31 3.2.3  事件  33 3.3  模块和包  34 3.3.1  什么是模块  35 3.3.2  创建及加载模块  35 3.3.3  创建包  38 3.3.4  Node.js 包管理器  41 3.4  调试  45 3.4.1  命令行调试  45 3.4.2  远程调试  47 3.4.3  使用 Eclipse 调试 Node.js  48 3.4.4  使用 node-inspector 调试Node.js  54 3.5  参考资料  55 第4章  Node.js核心模块  57 4.1  全局对象  58 4.1.1  全局对象与全局变量  58 4.1.2  process  58 4.1.3  console  60 4.2  常用工具 util  61 4.2.1  util.inherits  61 4.2.2  util.inspect  62 4.3  事件驱动 events  63 4.3.1  事件发射器  64 4.3.2  error 事件  65 4.3.3  继承 EventEmitter  65 4.4  文件系统 fs  65 4.4.1  fs.readFile  66 4.4.2  fs.readFileSync  67 4.4.3  fs.open  67 4.4.4  fs.read  68 4.5  HTTP 服务器与客户端  70 4.5.1  HTTP 服务器  70 4.5.2  HTTP 客户端  74 4.6  参考资料  77 第5章  使用Node.js进行Web开发  79 5.1  准备工作  80 5.1.1  使用http模块  82 5.1.2  Express 框架  83 5.2  快速开始  84 5.2.1  安装 Express  84 5.2.2  建立工程  85 5.2.3  启动服务器  86 5.2.4  工程的结构  87 5.3  路由控制  89 5.3.1  工作原理  89 5.3.2  创建路由规则  92 5.3.3  路径匹配  93 5.3.4  REST 风格的路由规则  94 5.3.5  控制权转移  95 5.4  模板引擎  97 5.4.1  什么是模板引擎  97 5.4.2  使用模板引擎  98 5.4.3  页面布局  99 5.4.4  片段视图  100 5.4.5  视图助手  100 5.5  建立微博网站  102 5.5.1  功能分析  102 5.5.2  路由规划  102 5.5.3  界面设计  103 5.5.4  使用Bootstrap  104 5.6  用户注册和登录  107 5.6.1  访问数据库  107 5.6.2  会话支持  110 5.6.3  注册和登入  111 5.6.4  页面权限控制  120 5.7  发表微博  123 5.7.1  微博模型  123 5.7.2  发表微博  125 5.7.3  用户页面  126 5.7.4  首页  127 5.7.5  下一步  129 5.8  参考资料  129 第6章  Node.js进阶话题  131 6.1  模块加载机制  132 6.1.1  模块的类型  132 6.1.2  按路径加载模块  132 6.1.3  通过查找node_modules目录加载模块  133 6.1.4  加载缓存  134 6.1.5  加载顺序  134 6.2  控制流  135 6.2.1  循环的陷阱  135 6.2.2  解决控制流难题  137 6.3  Node.js 应用部署  138 6.3.1  日志功能  138 6.3.2  使用cluster模块  140 6.3.3  启动脚本  142 6.3.4  共享80端口  143 6.4  Node.js 不是银弹  144 6.5  参考资料  146 附录A  JavaScript的高级特性  147 附录B  Node.js编程规范  167 索引  175

2018-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除