Skip to main content

"JavaScript"标签博客(2篇)

查看所有标签

序言

之前只在 Linux 和 macOS 上用过 LLVM,从来没有在 Windows 上用过,最近心血来潮在 llvm-bindings 的 github action 上添加 Windows 的工作流,顺便了解了一下 LLVM 在 Windows 上的编译和安装。

LLVM 在 Github 的 Release 页 上提供了 LLVM 各个版本的 Windows 安装包,文件名一般都是 LLVM-13.0.1-win64.exe 这样的格式,使用 Chocolatey 安装 LLVM 也是安装的这种安装包。

但是很遗憾,这种安装包是残缺不全的,只有一些基础的 clang 相关的命令,并不包含大多数 LLVM 的 lib,所以在 Windows 使用 LLVM 只能自己从源码编译了。

序言

众所周知,编译原理、操作系统、图形学被称为程序员的三大浪漫,相信每个程序员都有一个开发一款编译器的梦想。

在2021年的今天,开发一款编译器不再使用一个很难的事情,你只需要:

  • 定义你的语法规则
  • 进行语法词法分析将源代码按照语法规则解析为语法树
  • 做语义分析做一些检查

然后,也是最重要的事情就是把语法树转换为LLVM IR, 最后通过LLVM把LLVM IR转为二进制机器码或者WebAssembly等目标格式。

可以看出,LLVM很重要,可以说,会用LLVM = 会开发编译器