All Projects → chai2010 → Go Ast Book

chai2010 / Go Ast Book

Licence: bsd-3-clause
📚 《Go语法树入门——开启自制编程语言和编译器之旅》(开源免费图书/Go语言进阶/掌握抽象语法树/Go语言AST/凹语言)

Programming Languages

go
31211 projects - #10 most used programming language
c
50402 projects - #5 most used programming language
Yacc
648 projects

Projects that are alternatives of or similar to Go Ast Book

tinylang
Tiny玩具语言(Go语言实现/包含Tiny编译器/CASL汇编器/COMET虚拟机/调试器/支持WebAssembly/LLVM)
Stars: ✭ 61 (-98.49%)
Mutual labels:  llvm, goyacc
Llvm Guide Zh
User Guides For those new to the LLVM system.(LLVM系统的新用户指南,中文翻译版)
Stars: ✭ 180 (-95.54%)
Mutual labels:  llvm, ast
Awesome Graal
A curated list of awesome resources for Graal, GraalVM, Truffle and related topics
Stars: ✭ 302 (-92.51%)
Mutual labels:  llvm, ast
C90Compiler-EIE2
C90 to MIPS I Compiler done as a coursework for EE2-15
Stars: ✭ 15 (-99.63%)
Mutual labels:  flex, ast
calculator
基于flex&goyacc实现的计算器
Stars: ✭ 23 (-99.43%)
Mutual labels:  flex, goyacc
CastXMLSuperbuild
Build CastXML and its dependencies (LLVM/Clang)
Stars: ✭ 32 (-99.21%)
Mutual labels:  llvm, ast
Cppinsights
C++ Insights - See your source code with the eyes of a compiler
Stars: ✭ 1,382 (-65.74%)
Mutual labels:  llvm, ast
TinyCompiler
c compiler based on flex(lex), bison(yacc) and LLVM, supports LLVM IR and obj code generation. 基于flex,bison以及LLVM,使用c++11实现的类C语法编译器, 支持生成中间代码及可执行文件.
Stars: ✭ 162 (-95.98%)
Mutual labels:  flex, llvm
ugo-compiler-book
📚 µGo语言实现(从头开发一个迷你Go语言编译器)[Go版本+Rust版本]
Stars: ✭ 996 (-75.31%)
Mutual labels:  llvm, wa
js-ziju
Compile javascript to LLVM IR, x86 assembly and self interpreting
Stars: ✭ 112 (-97.22%)
Mutual labels:  llvm, ast
Write You A Haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Stars: ✭ 3,064 (-24.05%)
Mutual labels:  book
Solid
Книга о принципах объектно-ориентированного дизайна SOLID
Stars: ✭ 280 (-93.06%)
Mutual labels:  book
Data Science At The Command Line
Data Science at the Command Line
Stars: ✭ 3,174 (-21.32%)
Mutual labels:  book
Dive Into Dl Tensorflow2.0
本项目将《动手学深度学习》(Dive into Deep Learning)原书中的MXNet实现改为TensorFlow 2.0实现,项目已得到李沐老师的认可
Stars: ✭ 3,380 (-16.21%)
Mutual labels:  book
Game Programmer Study Notes
⚓ 我的游戏程序员生涯的读书笔记合辑。你可以把它看作一个加强版的Blog。涉及图形学、实时渲染、编程实践、GPU编程、设计模式、软件工程等内容。Keep Reading , Keep Writing , Keep Coding.
Stars: ✭ 6,050 (+49.98%)
Mutual labels:  book
Sorcery
Dark magic delights in Python
Stars: ✭ 286 (-92.91%)
Mutual labels:  ast
Hexo Douban
💿 A simple plugin for hexo that helps us generate pages for douban books ,movies and games.
Stars: ✭ 277 (-93.13%)
Mutual labels:  book
Graphql Flex
🎣A flexible GraphQL IDE by @TipeIO built in @VueJS
Stars: ✭ 277 (-93.13%)
Mutual labels:  flex
Decorator
Function decorators for Elixir
Stars: ✭ 278 (-93.11%)
Mutual labels:  ast
Goql
A golang source code scanner, this time in sql :)
Stars: ✭ 295 (-92.69%)
Mutual labels:  ast

Go语法树入门——开启自制编程语言和编译器之旅!



Go语法树是Go语言源文件的另一种语义等价的表现形式。而Go语言自带的go fmtgo doc等命令都是在Go语法树的基础之上分析工具。因此将Go语言程序作为输入数据,让我们语法树这个维度重新审视Go语言程序,我们将得到创建Go语言本身的技术。Go语法树由标准库的go/ast包定义,它是在go/token包定义的词法基础之上抽象的语法树结构。本书简单介绍语法树相关包的使用(出版社已经约稿出版本书,并在开源版本的基础之上增加了语义信息、SSA形式、LLVM和凹语言等内容,因为出版社版权问题不方便全部公开新增内容)。如果想从头实现一个玩具Go语言可以参考《从头实现µGo语言》

在线阅读

版权

版权 柴树杉史斌丁尔男,保留相关权力。针对Github注册用户提供以下的优惠权利:

  1. Github平台免费在线阅读。
  2. 关注本书项目(Star),同时关注任意一个作者的 Github 或 推特账号,自动获得下载的权利。

禁止非 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].