制造面板ITeye - 超凡娱乐

制造面板ITeye

2019-01-11 01:34:50 | 作者: 夜山 | 标签: 常识,弥补,制造 | 浏览: 2632

克己编程言语中文高清版 作者简介: 前桥和弥(Maebasi Kazuya) 1969年出世,著有《降服C指针》、《完全把握C言语》、《Java之谜和圈套》等。其言必有中的“毒舌”文风和对编程言语深入的见地遭到广大读者的欢迎。 作者主页:http://kmaebashi.com/。 译者简介: 2004年开端从事对日软件开发作业,其间还从事技能及软件工程相关训练作业。自2011年开端从事电力行业产品研制。持续重视企业级运用架构和Web客户端技能。 6年技能开发及项目经历,曾以技能工程师身份赴日本作业两年,后归国联合兴办互联网公司,现居上海持续创业中。首要从事PHP方向的Web开发。酷爱开源,曾向Zend Framework等闻名PHP开源项目奉献代码,并于Github自主研制运维EvaThumber等开源项目取得国内社区认可。乐于共享技能心得,个人技能博客avnpc.com在国内PHP圈小有影响。 13年编程经历。其间7年专心于研制根据Java EE和.NET的开发结构以及根据UML 2.0模型的代码生成东西。现在正带领团队开发云核算PaaS渠道及云核算自动化装备布置的体系。译本有《降服C指针》等。 目录 · · · · · · 第1章 引子 001 1.1 为什么要制造编程言语 002 1.2 克己编程言语并不是很难 003 1.3 本书的构成与面向读者 004 1.4 用什么言语来制造 006 1.5 要制造怎样的言语 007 1.5.1 要规划怎样的语法 007 1.5.2 要规划怎样的运转办法 009 弥补常识 “用户”指的是谁? 012 弥补常识 解说器并不会进行翻译 012 1.6 环境建立 012 1.6.1 建立开发环境 012 弥补常识 关于bison与flex的装置 014 1.6.2 本书触及的源代码以及编译器 015 第2章 试做一个核算器 017 2.1 yacc/lex是什么 018 弥补常识 词法剖析器与解析器是各自独立的 019 2.2 试做一个核算器 020 2.2.1 lex 021 2.2.2 简略正则表达式讲座 024 2.2.3 yacc 026 2.2.4 生成履行文件 033 2.2.5 了解抵触所代表的意义 034 2.2.6 错误处理 040 2.3 不借助东西编写核算器 041 2.3.1 克己词法剖析器 041 弥补常识 保留字(关键字) 046 弥补常识 防止重复包括 047 2.3.2 克己语法剖析器 048 弥补常识 预读记号的处理 053 2.4 少量理论常识——LL(1)与LALR(1) 054 弥补常识 Pascal/C 中的语法处理窍门 056 2.5 习题:扩展核算器 056 2.5.1 让核算器支撑括号 056 2.5.2 让核算器支撑负数 058 第3章 制造无类型言语crowbar 061 3.1 制造crowbar ver.0.1言语的根底部分 062 3.1.1 crowbar是什么 062 3.1.2 程序的结构 063 3.1.3 数据类型 064 3.1.4 变量 064 弥补常识 初度赋值兼做变量声明的理由 066 弥补阐明 各种言语的全局变量处理 067 3.1.5 句子与结构操控 067 弥补常识 elif、elsif、elseif的挑选 068 3.1.6 句子与运算符 069 3.1.7 内置函数 069 3.1.8 让crowbar支撑C 言语调用 070 3.1.9 从crowbar中调用C 言语(内置函数的编写) 071 3.2 预先预备 071 3.2.1 模块与命名规矩 072 3.2.2 内存办理模块MEM 073 弥补常识 valgrind 075 弥补常识 财主式编程 075 弥补常识 符号表与拘留操作 076 3.2.3 调试模块DBG 076 3.3 crowbar ver.0.1的完成 077 3.3.1 crowbar的解说器——CRB_Interpreter 077 弥补常识 不完全类型 080 3.3.2 词法剖析——crowbar.l 081 弥补常识 静态变量的答应规模 084 3.3.3 剖析树的构建——crowbar.y 与create.c 085 3.3.4 常量折叠 089 3.3.5 错误信息 089 弥补常识 关于crowbar中运用的枚举型界说 091 3.3.6 运转——execute.c 092 3.3.7 表达式评价——eval.c 096 3.3.8 值——CRB_Value 104 3.3.9 原生指针型 105 3.3.10 变量 106 3.3.11 字符串与废物收回机制——string_pool.c 108 3.3.12 编译与运转 110 第4章 数组和mark-sweep废物收回器 113 4.1 crowbar ver.0.2 114 4.1.1 crowbar的数组 114 4.1.2 拜访数组元素 115 4.1.3 数组是一种引证类型 116 弥补常识 “数组的数组”和多维数组 116 4.1.4 为数组添加元素 118 4.1.5 添加( 模仿) 函数调用功用 118 4.1.6 其他细节 118 4.2 制造mark-sweep GC 119 4.2.1 引证数据类型的结构 119 4.2.2 mark-sweep GC 121 弥补常识 引证和immutable 123 4.2.3 crowbar栈 124 4.2.4 其他根 127 4.2.5 原生函数的方式参数 128 4.3 完成GC 自身 129 4.3.1 目标的办理办法 129 4.3.2 GC 何时发动 129 4.3.3 sweep阶段 132 弥补常识 GC 现存的问题 133 弥补常识 Coping GC 134 4.4 其他批改 136 4.4.1 批改语法 136 4.4.2 函数的模仿 137 4.4.3 左值的处理 139 4.4.4 创立数组和原生函数的书写办法 142 4.4.5 原生指针类型的批改 144 第5章 中文支撑和Unicode 147 5.1 中文支撑战略和根底常识 148 5.1.1 现存问题 148 5.1.2 宽字符(双字节)串和多字节字符串 149 弥补常识 wchar_t 肯定能表明1 个字符吗? 150 5.1.3 多字节字符/ 宽字符之间的转化函数群 150 5.2 Unicode 153 5.2.1 Unicode的前史 153 5.2.2 Unicode的编码办法 154 弥补常识 Unicode能够固定(字节)长度吗? 156 5.3 crowbar book_ver.0.3的完成 156 5.3.1 要完成到什么程度? 156 5.3.2 建议转化的机遇 157 5.3.3 关于区域设置 158 5.3.4 处理0x5C问题 158 弥补常识 失利的 #ifdef 160 5.3.5 应该是什么姿态 160 弥补常识 还能够是其他姿态——Code Set Independent 161 第6章 制造静态类型的言语Diksam 163 6.1 制造Diksam Ver 0.1言语的根本部分 164 6.1.1 Diksam的运转状况 164 6.1.2 什么是Diksam 165 6.1.3 程序结构 165 6.1.4 数据类型 166 6.1.5 变量 166 6.1.6 句子和流程操控 167 6.1.7 表达式 167 6.1.8 内建函数 168 6.1.9 其他 168 6.2 什么是静态的/ 履行字节码的言语 169 6.2.1 静态类型的言语 169 6.2.2 什么是字节码 169 6.2.3 将表达式转化为字节码 170 6.2.4 将操控结构转化为字节码 173 6.2.5 函数的完成 173 6.3 Diksam ver.0.1的完成——编译篇 175 6.3.1 目录结构 175 6.3.2 编译的概要 176 6.3.3 构建剖析树(create.c) 176 6.3.4 批改剖析树(fix_tree.c) 179 6.3.5 Diksam的运转方式——DVM_Executable 185 6.3.6 常量池 186 弥补常识 YARV 的状况 187 6.3.7 全局变量 188 6.3.8 函数 189 6.3.9 顶层结构的字节码 189 6.3.10 行号对应表 190 6.3.11 栈的需要量 190 6.3.12 生成字节码(generate.c) 191 6.3.13 生成实践的编码 193 6.4 Diksam虚拟机 197 6.4.1 加载/ 链接DVM_Executable到DVM 200 6.4.2 履行——巨大的switch case 202 6.4.3 函数调用 204 第7章 为Diksam引进数组 207 7.1 Diksam中数组的规划 208 7.1.1 声明数组类型的变量 208 7.1.2 数组常量 209 弥补常识 D 言语的数组 210 7.2 批改编译器 210 7.2.1 数组的语法规矩 210 7.2.2 TypeSpecifier结构体 212 7.3 批改DVM 213 7.3.1 添加指令 213 弥补常识 创立Java 的数组常量 215 弥补常识 C 言语中数组的初始化 217 7.3.2 目标 217 弥补常识 ArrayStoreException 218 7.3.3 添加null 219 7.3.4 哎! 还缺陷什么吧? 219 第8章 将类引进Diksam 221 8.1 切割源文件 222 8.1.1 包和切割源代码 222 弥补常识 #include、文件名、行号 225 8.1.2 DVM_ExecutableList 225 8.1.3 ExecutableEntry 226 8.1.4 分隔编译源代码 227 8.1.5 加载和再链接 230 弥补常识 动态加载时的编译器 233 8.2 规划Diksam中的类 233 8.2.1 超简略的面向目标入门 233 8.2.2 类的界说和实例创立 237 8.2.3 承继 239 8.2.4 关于接口 241 8.2.5 编译与接口 242 8.2.6 Diksam怎么会规划成这样? 243 8.2.7 数组和字符串的办法 245 8.2.8 查看类的类型 246 8.2.9 向下转型 246 8.3 关于类的完成——承继和多态 247 8.3.1 字段的内存布局 247 8.3.2 多态——以单承继为条件 249 8.3.3 多承继——C++ 250 8.3.4 Diksam的多承继 252 弥补常识 无类型言语中的承继 254 8.3.5 重写的条件 254 8.4 关于类的完成 256 8.4.1 语法规矩 256 8.4.2 编译时的数据结构 258 8.4.3 DVM_Executable中的数据结构 260 8.4.4 与类有关的指令 262 弥补常识 办法调用、括号和办法指针 263 8.4.5 办法调用 264 8.4.6 super 266 8.4.7 类的链接 266 8.4.8 完成数组和字符串的办法 267 8.4.9 类型查看和向下转型 267 弥补常识 目标完结器(finalizer)和析构函数(destructor) 268 第9章 运用篇 271 9.1 为crowbar引进目标和闭包 272 9.1.1 crowbar的目标 272 9.1.2 目标完成 273 9.1.3 闭包 274 9.1.4 办法 276 9.1.5 闭包的完成 278 9.1.6 试着盯梢程序实践履行时的轨道 281 9.1.7 闭包的语法规矩 284 9.1.8 一般函数 284 9.1.9 模仿办法(批改版) 285 9.1.10 根据原型的面向目标 286 9.2 反常处理机制 286 9.2.1 为crowbar引进反常 286 9.2.2 setjmp()/longjmp() 289 弥补常识 Java 和C# 反常处理的不同 293 9.2.3 为Diksam引进反常 295 弥补常识 catch 的编写办法 296 9.2.4 反常的数据结构 297 9.2.5 反常处理时生成的字节码299 9.2.6 受查反常 301 弥补常识 受查反常的是与非 303 弥补常识 反常处理自身的是与非 304 9.3 构建脚本 305 9.3.1 根本思路 306 9.3.2 YY_INPUT 307 9.3.3 Diksam的构建脚本 308 9.3.4 三次加载/ 链接 308 9.4 为crowbar引进鬼车 309 9.4.1 关于“鬼车” 309 9.4.2 正则表达式常量 310 9.4.3 正则表达式的相关函数 311 9.5 其他 312 9.5.1 foreach 和迭代器(crowbar) 312 9.5.2 switch case(Diksam) 314 9.5.3 enum(Diksam) 315 9.5.4 delegate(Diksam) 316 9.5.5 final、const(Diksam) 319 附录A crowbar言语的规划 322 附录B Diksam言语的规划 336 附录C Diksam Virtual Machine 指令集 359 编程言语实用化攻略——写在最终 369 参考文献 375

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表超凡娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章