本书尝试以实现 µGo 编译器为线索,以边学习边完善的自举方式实现一个玩具语言。
µGo 最初是Go语言的子集, 也是凹语言项目的起点. 所以说µGo现在更像是凹语言的子集, 当然µGo是一个玩具语言.
import "libc"
import "libc.math" => m
const Pi = 3.14
const Pi_2 = Pi * 2
type MyInt :int
global x = println(1 + 2*(3+4) + -10 + double(50))
func println() => int
func main => int {}
为了跨平台和方便测试,输出LLVM汇编代码,如果以后可能会增加WASM文件。
学习目的可免费阅读。