博客园 - xuld
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=68387
2023-03-13T09:32:28Z
xuld
https://www.cnblogs.com/xuld/
feed.cnblogs.com
https://www.cnblogs.com/xuld/p/17210095.html
T语言开发笔记1 - xuld
为什么会有开发语言的想法 在2012年,我准备开发一个给前端切图使用的屏幕取色器。 需求很简单,前端经常需要获取设计稿特定位置的颜色代码。虽然当时 PhotoShop 提供了内部取色器,但操作麻烦,而且打开 PhotoShop 很慢。有时候还想要从别的网站抄一个颜色,当时没这么现在这么强大的网站开发
2023-03-13T09:32:00Z
2023-03-13T09:32:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】为什么会有开发语言的想法 在2012年,我准备开发一个给前端切图使用的屏幕取色器。 需求很简单,前端经常需要获取设计稿特定位置的颜色代码。虽然当时 PhotoShop 提供了内部取色器,但操作麻烦,而且打开 PhotoShop 很慢。有时候还想要从别的网站抄一个颜色,当时没这么现在这么强大的网站开发 <a href="https://www.cnblogs.com/xuld/p/17210095.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/14764771.html
T 语言语法设计(预审稿) - xuld
欢迎吐槽 一、 字面量 1. 数字字面量 0, 0xff, 0b10_01, .1 2. 字符串字面量 'x', "x\n\uffff\Uffffffff", `x{1}y` 3. 布尔和空字面量 true, false, null 4. 数组和对象字面量 [0, 1..8, 2...3, 3..-
2021-05-13T07:36:00Z
2021-05-13T07:36:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】欢迎吐槽 一、 字面量 1. 数字字面量 0, 0xff, 0b10_01, .1 2. 字符串字面量 'x', "x\n\uffff\Uffffffff", `x{1}y` 3. 布尔和空字面量 true, false, null 4. 数组和对象字面量 [0, 1..8, 2...3, 3..- <a href="https://www.cnblogs.com/xuld/p/14764771.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12516828.html
给萌新的 TS custom transformer plugin 教程——TypeScript 自定义转换器插件 - xuld
xuld/原创 Custom transformer (自定义转换器)是干什么的 简单说,TypeScript 可以将 TS 源码编译成 JS 代码,自定义转换器插件则可以让你定制生成的代码。比如删掉代码里的注释、改变变量的名字、将类转换为函数等等。 TypeScript 将 TS 代码编译到 JS
2020-03-18T06:31:00Z
2020-03-18T06:31:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】xuld/原创 Custom transformer (自定义转换器)是干什么的 简单说,TypeScript 可以将 TS 源码编译成 JS 代码,自定义转换器插件则可以让你定制生成的代码。比如删掉代码里的注释、改变变量的名字、将类转换为函数等等。 TypeScript 将 TS 代码编译到 JS <a href="https://www.cnblogs.com/xuld/p/12516828.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12359115.html
TS 原理详细解读(7)绑定1-符号 - xuld
在上一节主要介绍了语法树的解析生成。就好比电脑已经听到了“你真聪明”这句话,现在要让电脑开始思考这句话的含义——是真聪明还是假聪明。 这是一个非常的复杂的过程,接下来将有连续几节内容介绍实现原理,本节则主要提前介绍一些相关的概念。 符号 在代码里面,可以定义一个变量、一个函数、或者一个类,这些定义都
2020-03-13T04:24:00Z
2020-03-13T04:24:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】在上一节主要介绍了语法树的解析生成。就好比电脑已经听到了“你真聪明”这句话,现在要让电脑开始思考这句话的含义——是真聪明还是假聪明。 这是一个非常的复杂的过程,接下来将有连续几节内容介绍实现原理,本节则主要提前介绍一些相关的概念。 符号 在代码里面,可以定义一个变量、一个函数、或者一个类,这些定义都 <a href="https://www.cnblogs.com/xuld/p/12359115.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12266985.html
TS 原理详细解读(5)语法2-语法解析 - xuld
在上一节介绍了语法树的结构,本节则介绍如何解析标记组成语法树。 对应的源码位于 src/compiler/parser.ts。 入口函数 要解析一份源码,输入当然是源码内容(字符串),同时还提供路径(用于报错)、语言版本(比如ES3 和 ES5 在有些细节不同)。 createSourceFile
2020-02-08T14:50:00Z
2020-02-08T14:50:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】在上一节介绍了语法树的结构,本节则介绍如何解析标记组成语法树。 对应的源码位于 src/compiler/parser.ts。 入口函数 要解析一份源码,输入当然是源码内容(字符串),同时还提供路径(用于报错)、语言版本(比如ES3 和 ES5 在有些细节不同)。 createSourceFile <a href="https://www.cnblogs.com/xuld/p/12266985.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12254147.html
T 语言语法设计方案总结 - xuld
早在 2015,我就已经精通了 C++、C#、JS,也用过其它语言,比如 PHP、Python、Java 做过一些项目,就觉得这些语言设计得太过复杂、坑多、麻烦,所以就开始设计一门新语言,暂且叫 T 语言。我希望新语言是非常简单的,比如不需要脚手架就可以开工,不担心依赖安装问题,不会因为用了很多依赖
2020-02-02T14:47:00Z
2020-02-02T14:47:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】早在 2015,我就已经精通了 C++、C#、JS,也用过其它语言,比如 PHP、Python、Java 做过一些项目,就觉得这些语言设计得太过复杂、坑多、麻烦,所以就开始设计一门新语言,暂且叫 T 语言。我希望新语言是非常简单的,比如不需要脚手架就可以开工,不担心依赖安装问题,不会因为用了很多依赖 <a href="https://www.cnblogs.com/xuld/p/12254147.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12238167.html
TypeScript 源码详细解读(4)语法1-语法树 - xuld
在上一节介绍了标记的解析,就相当于识别了一句话里有哪些词语,接下来就是把这些词语组成完整的句子,即拼装标记为语法树。 树(tree) 树是计算机数据结构里的专业术语。就像一个学校有很多年级,每个年级下面有很多班,每个班级下面有很多学生,这种组织结构就叫树。 组成树的每个部分称为节点(Node); 最
2020-01-28T07:16:00Z
2020-01-28T07:16:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】在上一节介绍了标记的解析,就相当于识别了一句话里有哪些词语,接下来就是把这些词语组成完整的句子,即拼装标记为语法树。 树(tree) 树是计算机数据结构里的专业术语。就像一个学校有很多年级,每个年级下面有很多班,每个班级下面有很多学生,这种组织结构就叫树。 组成树的每个部分称为节点(Node); 最 <a href="https://www.cnblogs.com/xuld/p/12238167.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12210780.html
TypeScript 源码详细解读(3)词法2-标记解析 - xuld
在上一节主要介绍了单个字符的处理,现在我们已经有了对单个字符分析的能力,比如: 判断字符是否是换行符:isLineBreak 判断字符是否是空格:isWhiteSpaceSingleLine 判断字符是否是数字:isDigit 判断字符是否是标识符(变量名): 标识符开头部分:isIdentifie
2020-01-18T15:56:00Z
2020-01-18T15:56:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】在上一节主要介绍了单个字符的处理,现在我们已经有了对单个字符分析的能力,比如: 判断字符是否是换行符:isLineBreak 判断字符是否是空格:isWhiteSpaceSingleLine 判断字符是否是数字:isDigit 判断字符是否是标识符(变量名): 标识符开头部分:isIdentifie <a href="https://www.cnblogs.com/xuld/p/12210780.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12187519.html
TypeScript 源码详细解读(2)词法1-字符处理 - xuld
本节文章研究的代码位于 tsc/src/compiler/scanner.ts 字符 任何源码都是由很多字符组成的,这些字符可以是字母、数字、空格、符号、汉字等…… 每一个字符都有一个编码值,比如字符“a”的编码值是97,字符“林”的编码值是26519。 每个字符对应的编码值是多少是由编码表决定的,
2020-01-13T07:31:00Z
2020-01-13T07:31:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】本节文章研究的代码位于 tsc/src/compiler/scanner.ts 字符 任何源码都是由很多字符组成的,这些字符可以是字母、数字、空格、符号、汉字等…… 每一个字符都有一个编码值,比如字符“a”的编码值是97,字符“林”的编码值是26519。 每个字符对应的编码值是多少是由编码表决定的, <a href="https://www.cnblogs.com/xuld/p/12187519.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12180913.html
TypeScript 源码详细解读(1)总览 - xuld
TypeScript 由微软在 2012 年 10 月首发,经过几年的发展,已经成为国内外很多前端团队的首选编程语言。前端三大框架中的 Angular 和 Vue 3 也都改用了 TypeScript 开发。即使很多人没直接用过 TypeScript,他们也在通过 VSCode 提供的智能提示功能间
2020-01-13T04:14:00Z
2020-01-13T04:14:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】TypeScript 由微软在 2012 年 10 月首发,经过几年的发展,已经成为国内外很多前端团队的首选编程语言。前端三大框架中的 Angular 和 Vue 3 也都改用了 TypeScript 开发。即使很多人没直接用过 TypeScript,他们也在通过 VSCode 提供的智能提示功能间 <a href="https://www.cnblogs.com/xuld/p/12180913.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/12116432.html
7年编程语言设计精华总结——写给想创造或正在创造一门新编程语言的同学 - xuld
无论因为什么,你可能想要自己造一个语言。在具体实施之前,请听我一些忠告。 首先开发语言是一个一非常漫长又辛苦的过程,现在很多成功的语言都是由一个大公司的团队经过几年的打造才完成的,如果你不能保证长期的投入,建议还是放弃这个念头,以免前功尽弃。 其次,你得明确你的语言的亮点是什么。除非你的亮点足以使用
2019-12-29T12:56:00Z
2019-12-29T12:56:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】无论因为什么,你可能想要自己造一个语言。在具体实施之前,请听我一些忠告。 首先开发语言是一个一非常漫长又辛苦的过程,现在很多成功的语言都是由一个大公司的团队经过几年的打造才完成的,如果你不能保证长期的投入,建议还是放弃这个念头,以免前功尽弃。 其次,你得明确你的语言的亮点是什么。除非你的亮点足以使用 <a href="https://www.cnblogs.com/xuld/p/12116432.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/8338501.html
我为什么开发新语言 - xuld
为什么有这么多的编程语言 1 改革换代,适应时代发展需求 2 特定的领域需要特定的语言 3 没有一个语言可以完美适配各种场景 4 个人习惯 所有语言都有一个发明初衷 Lisp - 一切抽象为数学符号,利用公式自动计算结果 C - 汇编太繁琐,我能更简洁地写逻辑 C++ - C 只能写普通逻辑,我能用
2018-01-23T16:46:00Z
2018-01-23T16:46:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】为什么有这么多的编程语言 1 改革换代,适应时代发展需求 2 特定的领域需要特定的语言 3 没有一个语言可以完美适配各种场景 4 个人习惯 所有语言都有一个发明初衷 Lisp - 一切抽象为数学符号,利用公式自动计算结果 C - 汇编太繁琐,我能更简洁地写逻辑 C++ - C 只能写普通逻辑,我能用 <a href="https://www.cnblogs.com/xuld/p/8338501.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/7928590.html
TypeScript 编译器源码研究(一) - xuld
TypeScript (以下简称 TS)是一个非常强大的语言,其编译器源码超过 10000 行。 源码在 Github 可以找到:https://github.com/Microsoft/TypeScript/tree/master/src/compiler 基础概念 只读(immutable)对象
2017-11-30T05:50:00Z
2017-11-30T05:50:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】TypeScript (以下简称 TS)是一个非常强大的语言,其编译器源码超过 10000 行。 源码在 Github 可以找到:https://github.com/Microsoft/TypeScript/tree/master/src/compiler 基础概念 只读(immutable)对象 <a href="https://www.cnblogs.com/xuld/p/7928590.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/5934319.html
gitignore 规范 - xuld
gitignore 应该包含 5 块内容: 以下是 NODEJS 项目的 .gitignore 模板:
2016-10-06T10:49:00Z
2016-10-06T10:49:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】gitignore 应该包含 5 块内容: 以下是 NODEJS 项目的 .gitignore 模板: <a href="https://www.cnblogs.com/xuld/p/5934319.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/5934311.html
[讨论]是否将单元测试文件和源文件放在一起 - xuld
目前根据习惯和创作时间,单元测试和源文件的代码都是分开的。 是否可以考虑将它们放在一起: 好处: 可以很清晰地知道哪些文件缺少测试。 可以快速在源文件和单元测试文件之间跳转,而不需要切换文件夹。 遵循了需要一起修改的代码放在一起的原则,方便修改源码时同步修改单元测试文件。 在移动、拷贝源码时可以轻松
2016-10-06T10:46:00Z
2016-10-06T10:46:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】目前根据习惯和创作时间,单元测试和源文件的代码都是分开的。 是否可以考虑将它们放在一起: 好处: 可以很清晰地知道哪些文件缺少测试。 可以快速在源文件和单元测试文件之间跳转,而不需要切换文件夹。 遵循了需要一起修改的代码放在一起的原则,方便修改源码时同步修改单元测试文件。 在移动、拷贝源码时可以轻松 <a href="https://www.cnblogs.com/xuld/p/5934311.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/5932780.html
分支规范 - xuld
一、目的 我们制定分支规范,意在实现以下目标: 二、主分支: master 主分支(master)用于存放最新的稳定版本。 正式发布时:在主分支上创建标签(tag)。如果发布非常频繁可以不加。 标签的命名规范为:release-v版本号-日期(如 release-v0.0.1-20161010)。业
2016-10-05T12:22:00Z
2016-10-05T12:22:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】一、目的 我们制定分支规范,意在实现以下目标: 二、主分支: master 主分支(master)用于存放最新的稳定版本。 正式发布时:在主分支上创建标签(tag)。如果发布非常频繁可以不加。 标签的命名规范为:release-v版本号-日期(如 release-v0.0.1-20161010)。业 <a href="https://www.cnblogs.com/xuld/p/5932780.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/5882677.html
源映射(Source Map)详解 - xuld
一、什么是源映射 为了提高性能,很多站点都会先压缩 JavaScript 代码然后上线, 但如果代码运行时出现错误,浏览器只会显示在已压缩的代码中的位置,很难确定真正的源码错误位置。 这时源映射就登场了。 源映射(Source Map)是一种数据格式,它存储了源代码和生成代码之间的位置映射关系。 源
2016-09-18T16:08:00Z
2016-09-18T16:08:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】一、什么是源映射 为了提高性能,很多站点都会先压缩 JavaScript 代码然后上线, 但如果代码运行时出现错误,浏览器只会显示在已压缩的代码中的位置,很难确定真正的源码错误位置。 这时源映射就登场了。 源映射(Source Map)是一种数据格式,它存储了源代码和生成代码之间的位置映射关系。 源 <a href="https://www.cnblogs.com/xuld/p/5882677.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/web-project-planning.html
前端项目结构设计精细方案 - xuld
开始的开始,前端项目很简单,html放外面,然后新建一个css和js文件夹,看起来很清晰。随着时间推进,项目变大,问题开始一一出现了:html 太多,找起来麻烦css 和 js 需要压缩css 和 js需要发布到 CDN开始只简单依赖一个jQuery,后来发现依赖的插件越来越多,不好更新维护html...
2015-10-21T05:42:00Z
2015-10-21T05:42:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】开始的开始,前端项目很简单,html放外面,然后新建一个css和js文件夹,看起来很清晰。随着时间推进,项目变大,问题开始一一出现了:html 太多,找起来麻烦css 和 js 需要压缩css 和 js需要发布到 CDN开始只简单依赖一个jQuery,后来发现依赖的插件越来越多,不好更新维护html... <a href="https://www.cnblogs.com/xuld/p/web-project-planning.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/4280329.html
我心目中的最好操作系统臆想 - xuld
作为个人,开发一个操作系统是几乎不可能的。虽然目前没有机会参与操作系统的开发,但是我对设计一个操作系统还是很有兴趣的。未来我所想象的操作系统,应该满足以下需求:1.一个操作系统,多个平台硬件。早期操作系统就是为了整合硬件平台、方便软件开发而出现的。现在很多操作系统都已忘初心,将大部分精力放在更有市场...
2015-02-08T10:54:00Z
2015-02-08T10:54:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】作为个人,开发一个操作系统是几乎不可能的。虽然目前没有机会参与操作系统的开发,但是我对设计一个操作系统还是很有兴趣的。未来我所想象的操作系统,应该满足以下需求:1.一个操作系统,多个平台硬件。早期操作系统就是为了整合硬件平台、方便软件开发而出现的。现在很多操作系统都已忘初心,将大部分精力放在更有市场... <a href="https://www.cnblogs.com/xuld/p/4280329.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/xuld/p/4089296.html
轻量、强大的代码编辑器控件-WinForm完美版 - xuld
前段时间做个小项目需要用到一个代码编辑器控件,但网上搜了半天,居然没发现一个完全满意的编辑器。现有的一些编辑器有:FastedTextBox 优点:1. 轻量。 2. 样式美观。 3. DEMO完整,文档丰富。缺点:1. 不支持中文/中文字体显示难看 2. 代码折叠只能支持整行。ICSharpCod...
2014-11-11T06:04:00Z
2014-11-11T06:04:00Z
xuld
https://www.cnblogs.com/xuld/
【摘要】前段时间做个小项目需要用到一个代码编辑器控件,但网上搜了半天,居然没发现一个完全满意的编辑器。现有的一些编辑器有:FastedTextBox 优点:1. 轻量。 2. 样式美观。 3. DEMO完整,文档丰富。缺点:1. 不支持中文/中文字体显示难看 2. 代码折叠只能支持整行。ICSharpCod... <a href="https://www.cnblogs.com/xuld/p/4089296.html" target="_blank">阅读全文</a>