Skip to content

wa-lang/ugo-compiler-book

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 26, 2024
db695a7 · Sep 26, 2024
Dec 5, 2021
Sep 5, 2024
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Dec 12, 2021
Sep 10, 2024
Dec 12, 2021
Dec 12, 2021
Jul 15, 2022
Jan 17, 2022
Feb 4, 2022
Feb 6, 2022
Feb 6, 2022
Dec 12, 2021
Dec 12, 2021
Feb 1, 2022
Sep 5, 2024
Sep 26, 2024
Nov 11, 2021
Sep 25, 2022
Nov 3, 2021
Sep 5, 2024
Sep 5, 2024
Sep 10, 2024
Sep 5, 2024
Sep 5, 2024
Sep 5, 2024
Jan 17, 2022
Sep 5, 2024
Sep 5, 2024

Repository files navigation

《µGo语言实现——从头开发一个迷你语言编译器》


本书尝试以实现 µGo 编译器为线索,以边学习边完善的自举方式实现一个玩具语言。


Why: 挖坑的起因

  • 因为坑就在那里
  • 挖坑的工具差不多齐全了
  • 为了启动 凹语言 的热身项目
  • 凹语言项目已过5年, 完成了当初不做玩具车的目标, 是时候向凹语言迁移了

What: µ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 {}

Output: 输出的目标格式

为了跨平台和方便测试,输出LLVM汇编代码,如果以后可能会增加WASM文件。

License 版权

学习目的可免费阅读。

About

📚 µGo语言实现(从头开发一个迷你Go语言编译器)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages