动手撸个解释器(0)
整个系列基于Crafting Interpreters 中文翻译, 用C#语言实现.
开始之前
这一系列文章打算作为头脑复健和C#进阶学习来做, 所以更新比较随缘.
文章的记号尽量与书中保持一致, 除了每章的学习外还有英语学习以及练习题解答.
在完成实现后还会尝试用一些高阶方法进行性能优化.
总览/前置知识
语言何以执行
前端
扫描(词法分析)->解析(语法分析)->静态分析
各种报错信息在这一阶段出现
中端
这一阶段主要是生成中间代码(也就是IR)以及一些优化工作(也能后推到后端再干)
后端
终于到可执行的阶段了, 后端把IR转换成可实际运行的形式
可实际运行的形式不一定是机器码, 有可能是字节码(这就要通过虚拟机/运行时来执行了)
英语学习
Pidgin
也就是语言学里常说的皮钦语, 这里被翻译成了”洋泾浜语言”, 注解里说是”一种混杂的英语”其实并不准确, 实际上两个或多个没有共同语言的人群交流所产生的混合语言都可以叫皮钦语
tailor-built
tailor is a person whose occupation is making fitted clothes such as suits, pants, and jackets to fit individual customers.
既然是裁缝-构建, 那意思就很明显了: 量体裁衣, 量身定制
还有一个很接近的组合词tailor-made: If something is tailor-made, it has been specially designed for a particular person or purpose.
whip up
prepare or cook quickly or hastily
用在开发里很有快速原型的感觉了
cabal
团体(通常还含有暗中勾结, 密谋诡计的意味), 翻译成秘社似乎少了点意味
lingo
strange or incomprehensible language or speech: such as a)a foreign language; b)the special vocabulary of a particular field of interest; c)language characteristic of an individual
lingo也能当口癖来用, 那duolinggo是不是可以翻译成多儿的口癖(逃
Cambrian
也就是寒武纪, 埃迪卡拉纪到奥陶纪之间(538.8~486.85百万年前)的地质时期
词源上来自于威尔士的拉丁版本
Cymru