All Projects → wa-lang → ugo-compiler-book

wa-lang / ugo-compiler-book

Licence: other
📚 µGo语言实现(从头开发一个迷你Go语言编译器)[Go版本+Rust版本]

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to ugo-compiler-book

ugo
µGo编程语言(从头开发一个迷你Go语言编译器)
Stars: ✭ 38 (-96.18%)
Mutual labels:  llvm, lexer, ugo
Webassembly Examples
From Simple To Complex. A complete collection of webassembly examples.
Stars: ✭ 177 (-82.23%)
Mutual labels:  llvm, webassembly, wasm
Tinygo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
Stars: ✭ 9,068 (+810.44%)
Mutual labels:  llvm, webassembly, wasm
Go Ast Book
📚 《Go语法树入门——开启自制编程语言和编译器之旅》(开源免费图书/Go语言进阶/掌握抽象语法树/Go语言AST/凹语言)
Stars: ✭ 4,034 (+305.02%)
Mutual labels:  llvm, wa
Rust Yew Realworld Example App
Exemplary real world app built with Rust + Yew + WebAssembly
Stars: ✭ 249 (-75%)
Mutual labels:  webassembly, wasm
Prism
Build frontend web apps with Ruby and WebAssembly
Stars: ✭ 251 (-74.8%)
Mutual labels:  webassembly, wasm
Awesome Wasm Langs
😎 A curated list of languages that compile directly to or have their VMs in WebAssembly
Stars: ✭ 2,966 (+197.79%)
Mutual labels:  webassembly, wasm
Bytecoder
Rich Domain Model for JVM Bytecode and Framework to interpret and transpile it.
Stars: ✭ 401 (-59.74%)
Mutual labels:  llvm, webassembly
Speedy.js
Accelerate JavaScript Applications by Compiling to WebAssembly
Stars: ✭ 300 (-69.88%)
Mutual labels:  llvm, webassembly
Full Stack Fortran
Fortran to WebAssembly
Stars: ✭ 75 (-92.47%)
Mutual labels:  llvm, webassembly
Compile To Web
Discover what languages can be compiled to Web Assembly
Stars: ✭ 164 (-83.53%)
Mutual labels:  llvm, wasm
wasm-toolchain
WebAssembly toolchain
Stars: ✭ 34 (-96.59%)
Mutual labels:  llvm, wasm
Wasmer Postgres
💽🕸 Postgres library to run WebAssembly binaries.
Stars: ✭ 245 (-75.4%)
Mutual labels:  webassembly, wasm
Wasmtime Go
Go WebAssembly runtime powered by Wasmtime
Stars: ✭ 239 (-76%)
Mutual labels:  webassembly, wasm
llvm-kaleidoscope
LLVM Tutorial: Kaleidoscope (Implementing a Language with LLVM)
Stars: ✭ 124 (-87.55%)
Mutual labels:  llvm, lexer
Wapm Cli
📦 WebAssembly Package Manager (CLI)
Stars: ✭ 236 (-76.31%)
Mutual labels:  webassembly, wasm
Asm Dom
A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)
Stars: ✭ 2,604 (+161.45%)
Mutual labels:  webassembly, wasm
Wasm By Example
Wasm By Example is a website with a set of hands-on introduction examples and tutorials for WebAssembly (Wasm)
Stars: ✭ 226 (-77.31%)
Mutual labels:  webassembly, wasm
Faust
Functional programming language for signal processing and sound synthesis
Stars: ✭ 1,360 (+36.55%)
Mutual labels:  llvm, wasm
compiler lab
Some toy labs for compiler course
Stars: ✭ 49 (-95.08%)
Mutual labels:  llvm, lexer

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



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


Why: 凹(读音Wa)坑的起因

  • 因为坑就在那里
  • 凹坑的工具差不多齐全了

What: µGo 例子

package main

import "libc"
import m "libc.math"

const Pi = 3.14
const Pi_2 = Pi * 2

type MyInt int
type MyInt2 = int

var x = println(1 + 2*(3+4) + -10 + double(50))

func println() int

func main() int {}

Output: 输出的目标格式

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

License 版权

学习目的可在 Github 平台免费阅读。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].