搜索
bottom↓
回复: 43

自制编程语言【日.中译】 PDF --图灵丛书

  [复制链接]

出10入61汤圆

发表于 2013-12-9 10:50:57 | 显示全部楼层 |阅读模式
本帖最后由 tcm123 于 2013-12-9 14:16 编辑

作者: (日)前桥和弥   
译者: 刘卓 徐谦 吴雅明
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115333209
上架时间:2013-10-31
出版日期:2013 年12月
开本:16开
页码:378
版次:1-1

《自制编程语言》
第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

【觉得好的话买纸质版吧】
  

日本人原著中译本--30天自制操作系统
http://www.amobbs.com/thread-5496976-1-1.html

趣闻:[转]牛人自制CPU
http://www.amobbs.com/thread-3485390-1-1.html

看看国外牛人DIY的CPU-性感-超多激_情美图-3点全露-自拍
http://www.amobbs.com/forum.php? ... highlight=CPU%2BDIY

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-12-9 11:08:34 | 显示全部楼层
高级货    顶一个

出0入0汤圆

发表于 2013-12-9 11:13:48 | 显示全部楼层
收藏先。。。。

出0入0汤圆

发表于 2013-12-9 11:44:02 | 显示全部楼层
学习学习,看看能不能做个脚本解释器。

出0入0汤圆

发表于 2013-12-9 11:50:50 来自手机 | 显示全部楼层
貌似标题有错别字

出0入0汤圆

发表于 2013-12-9 11:54:59 | 显示全部楼层
下载,谢。

出0入0汤圆

发表于 2013-12-9 11:56:36 | 显示全部楼层
很不错的样子

出0入93汤圆

发表于 2013-12-9 12:03:56 | 显示全部楼层
下来看看谢谢楼主

出0入0汤圆

发表于 2013-12-9 12:11:27 来自手机 | 显示全部楼层
碉堡了的感觉

出0入0汤圆

发表于 2013-12-9 12:16:14 | 显示全部楼层
还有这样的论著啊,不错!

出50入0汤圆

发表于 2013-12-9 12:20:28 | 显示全部楼层
这个有个性,必须顶。

出0入0汤圆

发表于 2013-12-9 12:57:57 来自手机 | 显示全部楼层
下载下来学习一下

出0入0汤圆

发表于 2013-12-9 13:03:39 | 显示全部楼层
先收藏了。谢谢。                                                                                                                                       

出0入0汤圆

发表于 2013-12-9 14:00:18 | 显示全部楼层
有时间要好好学一下,自制编程语言

出0入0汤圆

发表于 2013-12-9 14:09:31 | 显示全部楼层
自制CPU,自制操作系统,自制编程语言一条龙服务。

出10入61汤圆

 楼主| 发表于 2013-12-9 14:16:40 | 显示全部楼层
zcx2012 发表于 2013-12-9 11:50
貌似标题有错别字

已修正

出0入0汤圆

发表于 2013-12-9 14:20:58 | 显示全部楼层
好东西要顶

出0入8汤圆

发表于 2013-12-9 14:52:38 | 显示全部楼层
先标记收藏下,呵呵

出0入0汤圆

发表于 2013-12-9 16:18:42 | 显示全部楼层
先顶起,再谢谢楼主

出0入9汤圆

发表于 2013-12-9 16:38:43 | 显示全部楼层
已下载,感谢楼主。

出0入0汤圆

发表于 2013-12-9 18:21:07 | 显示全部楼层
比起编译原理如何?

出0入0汤圆

发表于 2013-12-9 20:35:05 | 显示全部楼层
不错的书,顶一个

出0入0汤圆

发表于 2013-12-9 20:48:17 来自手机 | 显示全部楼层
哈哈'这都可以啊,不错

出0入0汤圆

发表于 2013-12-10 20:15:38 | 显示全部楼层
下来看看,

出0入0汤圆

发表于 2013-12-10 20:27:11 | 显示全部楼层
标记一下。

出0入0汤圆

发表于 2013-12-10 20:36:50 | 显示全部楼层
有没有<cpu制作法>这本书

出0入8汤圆

发表于 2013-12-10 22:23:25 | 显示全部楼层
只是部分试读章节,难道大家都只下不看?

出0入0汤圆

发表于 2013-12-11 00:03:56 来自手机 | 显示全部楼层
看起来很厉害的样子

出0入0汤圆

发表于 2013-12-11 00:11:15 | 显示全部楼层
顶顶,下了看看,3q

出0入0汤圆

发表于 2013-12-16 08:56:56 | 显示全部楼层
不全啊,还是去看龙书吧

出0入0汤圆

发表于 2014-1-10 11:33:22 来自手机 | 显示全部楼层
谢谢楼主                  

出0入0汤圆

发表于 2014-1-10 11:45:25 | 显示全部楼层
前桥和弥  写了好多书

出0入0汤圆

发表于 2014-1-10 11:51:59 | 显示全部楼层
日本人的科技书也不少,我在图书馆见了很多。

出0入0汤圆

发表于 2014-4-12 22:48:10 | 显示全部楼层
记号,收藏

出100入0汤圆

发表于 2014-4-13 01:00:54 来自手机 | 显示全部楼层
mark 收藏!

出0入0汤圆

发表于 2014-4-13 01:53:44 | 显示全部楼层
好书,,,,叮叮

出0入0汤圆

发表于 2014-4-13 07:43:11 来自手机 | 显示全部楼层
好书,必须支持

出0入0汤圆

发表于 2014-4-13 07:47:45 | 显示全部楼层
有点意思



出0入0汤圆

发表于 2014-4-13 19:50:57 | 显示全部楼层
这个下载版本只有部份内容,哪里有完整的能下载吗?

出0入0汤圆

发表于 2014-4-13 20:36:00 来自手机 | 显示全部楼层
不错,正想做个8051模拟器

出0入0汤圆

发表于 2014-5-11 12:56:21 | 显示全部楼层
记号,收藏

出0入0汤圆

发表于 2014-5-11 13:09:34 | 显示全部楼层
记号,收藏

出0入0汤圆

发表于 2014-5-11 13:17:09 | 显示全部楼层
求个完整版,谁有能否共享?
不是不想花钱买,而是现在买不了的问题。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 13:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表