CanftIn's Blog
  • 搜索
  • 主页
  • 文章
  • 归档
  • 标签
  • 关于
Home » 所有文章

技术

LLVM源码分析系列(0): formatv

这篇文章作为LLVM源码分析系列的开篇,初步介绍LLVM中format的相关机制和原理,format在LLVM中较为容易理解,从这里启航,后...

2023-10-10 · 18 min · 矩木

从零构造现代语言编译器(8): 解析树

为什么不直接在tree中放NodeImpl*指针,NodeImpl指向自己的其他结点,而要用smallvector记录索引的方式,两者相比后...

2023-10-07 · 3 min · 矩木

从零构造现代语言编译器(7): Parse优先级

表达式 目录 表达式 目录 概述 优先级 名称 非限定名称 限定名称和成员访问 操作符 转换和类型转换 if 表达式 数值类型文字表达式 考虑的替代方案 参考文献 概述 表达式...

2023-10-03 · 6 min · 矩木

从零构造现代语言编译器(6): Parse节点和状态

1. 节点类型 2. 解析状态 这些状态代表了解析器在处理输入代码时可能遇到的各种情况。以下是对这些状态的详细解释: IndexExpression:处理...

2023-10-03 · 3 min · 矩木

从零构造现代语言编译器(5): 缓冲区

// TODO: 1. 分析老版本mmap的SourceBuffer。 // TODO: 2. 分vfs版本SourceBuffer。 // TODO: 3. 分析swift版本source mana...

2023-09-26 · 4 min · 矩木

从零构造现代语言编译器(4): 语言设计

1. 注释 在现有的编程语言中,注释有多种用途。主要的用例包括: 文档:为API的用户和未来的维护者提供人类可读的注释,解释其功能以及如何使用它。这...

2023-09-26 · 9 min · 矩木

从零构造现代语言编译器(3): 诊断信息

1. 什么是诊断 诊断信息(Diagnostics)在编程语言中,通常是编译器用来告诉程序员源代码中存在的问题的消息。这些问题可能包括语法错误、类...

2023-09-25 · 6 min · 矩木

从零构造现代语言编译器(2): 公共库

本章主要介绍公共库里的基础组件,这些组件抽象出来用于统一编程方式,达到可复用性,其中有一些重复造轮子的组件,这里也对这些组件和现有开源组件做...

2023-09-21 · 14 min · CanftIn

从零构造现代语言编译器(1): 词法分析

1. 什么是数值字面量 数值字面量(Numeric Literals)在编程中是表示特定数值的一个符号或一组符号。这些字面量用于直接在源代码中表示一...

2023-09-21 · 21 min · CanftIn

从零构造现代语言编译器(0): C++后继语言

1. carbon-lang介绍 自去年(2020.7)Chandler Carruth 作为 Google 的 tech leader 官方宣布 Carbon 语言,这个项目在 github 上热度一度飙升,至今已有30k+...

2023-09-21 · 6 min · CanftIn

重启博客

这个博客从16年开始就在尝试用各种前端构建,期间也经历了WordPress、hexo等工具的使用,一直没有产出多少实质性的文章,虽然这么多年...

2023-09-20 · 1 min · 矩木



Copyright © 2016-2023 CanftIn , 许可协议:CC BY-NC-ND 4.0,