posts - 55, comments - 98, trackbacks - 0, articles - 2
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年10月25日

正文内容加载中...

posted @ 2012-10-25 09:33 xuld 阅读 (9432) 评论 (2) 编辑

2020年2月8日

摘要:在上一节介绍了语法树的结构,本节则介绍如何解析标记组成语法树。 对应的源码位于 src/compiler/parser.ts。 入口函数 要解析一份源码,输入当然是源码内容(字符串),同时还提供路径(用于报错)、语言版本(比如ES3 和 ES5 在有些细节不同)。 createSourceFile 阅读全文

posted @ 2020-02-08 22:50 xuld 阅读 (92) 评论 (0) 编辑

2020年2月2日

摘要:早在 2015,我就已经精通了 C++、C#、JS,也用过其它语言,比如 PHP、Python、Java 做过一些项目,就觉得这些语言设计得太过复杂、坑多、麻烦,所以就开始设计一门新语言,暂且叫 T 语言。我希望新语言是非常简单的,比如不需要脚手架就可以开工,不担心依赖安装问题,不会因为用了很多依赖 阅读全文

posted @ 2020-02-02 22:47 xuld 阅读 (6) 评论 (0) 编辑

2020年1月28日

摘要:在上一节介绍了标记的解析,就相当于识别了一句话里有哪些词语,接下来就是把这些词语组成完整的句子,即拼装标记为语法树。 树(tree) 树是计算机数据结构里的专业术语。就像一个学校有很多年级,每个年级下面有很多班,每个班级下面有很多学生,这种组织结构就叫树。 组成树的每个部分称为节点(Node); 最 阅读全文

posted @ 2020-01-28 15:16 xuld 阅读 (156) 评论 (0) 编辑

2020年1月18日

摘要:在上一节主要介绍了单个字符的处理,现在我们已经有了对单个字符分析的能力,比如: 判断字符是否是换行符:isLineBreak 判断字符是否是空格:isWhiteSpaceSingleLine 判断字符是否是数字:isDigit 判断字符是否是标识符(变量名): 标识符开头部分:isIdentifie 阅读全文

posted @ 2020-01-18 23:56 xuld 阅读 (128) 评论 (0) 编辑

2020年1月13日

摘要:本节文章研究的代码位于 tsc/src/compiler/scanner.ts 字符 任何源码都是由很多字符组成的,这些字符可以是字母、数字、空格、符号、汉字等…… 每一个字符都有一个编码值,比如字符“a”的编码值是97,字符“林”的编码值是26519。 每个字符对应的编码值是多少是由编码表决定的, 阅读全文

posted @ 2020-01-13 15:31 xuld 阅读 (77) 评论 (1) 编辑

摘要:TypeScript 由微软在 2012 年 10 月首发,经过几年的发展,已经成为国内外很多前端团队的首选编程语言。前端三大框架中的 Angular 和 Vue 3 也都改用了 TypeScript 开发。即使很多人没直接用过 TypeScript,他们也在通过 VSCode 提供的智能提示功能间 阅读全文

posted @ 2020-01-13 12:14 xuld 阅读 (343) 评论 (1) 编辑

2019年12月29日

摘要:无论因为什么,你可能想要自己造一个语言。在具体实施之前,请听我一些忠告。 首先开发语言是一个一非常漫长又辛苦的过程,现在很多成功的语言都是由一个大公司的团队经过几年的打造才完成的,如果你不能保证长期的投入,建议还是放弃这个念头,以免前功尽弃。 其次,你得明确你的语言的亮点是什么。除非你的亮点足以使用 阅读全文

posted @ 2019-12-29 20:56 xuld 阅读 (101) 评论 (0) 编辑

2018年1月24日

摘要:为什么有这么多的编程语言 1 改革换代,适应时代发展需求 2 特定的领域需要特定的语言 3 没有一个语言可以完美适配各种场景 4 个人习惯 所有语言都有一个发明初衷 Lisp - 一切抽象为数学符号,利用公式自动计算结果 C - 汇编太繁琐,我能更简洁地写逻辑 C++ - C 只能写普通逻辑,我能用 阅读全文

posted @ 2018-01-24 00:46 xuld 阅读 (539) 评论 (2) 编辑

2017年11月30日

摘要:TypeScript (以下简称 TS)是一个非常强大的语言,其编译器源码超过 10000 行。 源码在 Github 可以找到:https://github.com/Microsoft/TypeScript/tree/master/src/compiler 基础概念 只读(immutable)对象 阅读全文

posted @ 2017-11-30 13:50 xuld 阅读 (1907) 评论 (1) 编辑

2016年10月6日

摘要:gitignore 应该包含 5 块内容: 以下是 NODEJS 项目的 .gitignore 模板: 阅读全文

posted @ 2016-10-06 18:49 xuld 阅读 (441) 评论 (0) 编辑