各个编程语言编译器源码收集

本文列举了各种主流编程语言如GCC系列、Golang、Swift等的编译器源码链接,包括实现语言和语法分析器、词法分析器的相关目录,方便开发者深入研究。

心血来潮在 Github 收集了各个主流编程语言的编译器源码,下面列出了各个编译器文件链接以及实现语言(可能会有错误)。

GCC 系列

官网 官方仓库 Github镜像

The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages.

C - GCC

实现语言:C(自举
各文件目录

语法分析器

C++ - GCC

实现语言:C
各文件目录

语法分析器

词法分析器

Ada - GCC

实现语言:Ada(自举
各文件目录

语法分析器

Objective-C - GCC

实现语言:C
各文件目录

语法分析器同 C

Objective-C++ - GCC

实现语言:C
各文件目录

语法分析器同 C++

Fortran - GCC

实现语言:C
各文件目录

语法分析器

Go - GCC

实现语言:C
各文件目录

语法分析器

词法分析器

D - GCC

实现语言:C
各文件目录

语法分析器

词法分析器

Golang

实现语言:Go(自举
官网 Github仓库

各文件目录

语法分析器

Swift

实现语言:C++
官网 Github仓库

各文件目录

语法分析器

词法分析器

TypeScript

实现语言:TypeScript(自举
官网 Github仓库

各文件目录

语法分析器

Rust

实现语言:Rust(自举
官网 Github仓库

语法分析器目录

Kotlin

实现语言:Java
官网 Github仓库

各文件目录

语法分析器

Python

实现语言:Python: Pegen(C)(自举
官网 Github仓库

语法文件

语法分析器(生成)

PHP

实现语言:C
官网 Github仓库

各文件目录

Julia

实现语言:Scheme
官网 Github仓库

各文件目录

语法分析器

Ruby

实现语言:C: Yacc
官网 Github仓库

各文件目录

语法分析器

CoffeeScript

实现语言:CoffeeScript: Jison(JavaScript)
官网 Github仓库

各文件目录

语法文件

语法分析器(生成)

词法分析器

Elixir

实现语言:Erlang
官网 Github仓库

各文件目录

语法分析器

词法分析器

Crystal

实现语言:Crystal(自举
官网 Github仓库

各文件目录

语法分析器

词法分析器

Powershell

实现语言:C#
官网 Github仓库

各文件目录

语法分析器

Scala

实现语言:Scala(自举
官网 Github仓库

各文件目录?

语法分析器

Clojure

实现语言:Java
官网 Github仓库

各文件目录

编译器

Nim

实现语言:Nim
官网 Github仓库

各文件目录

语法分析器

词法分析器

Elm

实现语言:Haskell
官网 Github仓库

各文件目录

语法分析器目录

OCaml

实现语言:OCaml(自举
官网 Github仓库

各文件目录

语法分析器

词法分析器

Coq

实现语言:OCaml
官网 Github仓库

语法分析器目录

词法分析器

Haskell - GHC

实现语言:C: Yacc + Haskell: Alex
语言官网 编译器官网 官方仓库 Github镜像

各文件目录

语法分析器

词法分析器

Scheme - Chez Scheme

实现语言:Scheme(自举
语言官网 编译器官网 Github仓库

各文件目录

语法分析器*

J

实现语言:C
官网 Github仓库

各文件目录

语法分析器

Prolog - SWI Prolog

实现语言:C
语言标准1 语言标准2 编译器官网 Github仓库

各文件目录

编译器

Clang 系列

实现语言:C(自举
官网 Github目录

The Clang project provides a language front-end and tooling infrastructure for languages in the C language family (C, C++, Objective C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.

语法分析器

词法分析器

JavaScript - Node.js

实现语言:C
编译器官网 Github仓库

各文件目录

语法分析器

Erlang

实现语言:Erlang: YECC
官网 Github仓库自举

语法分析器

语法文件

Lua

实现语言:C
官网 Github仓库

各文件目录

语法分析器

词法分析器

Perl

实现语言:C
官网 Github仓库

各文件目录

语法分析器

词法分析器

Raku - Rakudo

实现语言:C
语言官网 编译器官网

各文件目录

语法分析器

词法分析器

更新历史

日期内容
2021.12.8整理完成
2022.2.5增补、添加前言,发布
这个编译器的源代码是我原先为了完成编译原理实验课作业而写的,所以只具有教学价值,现在发出来和大家共享 ;-)<br/><br/>和网上流传的版本不同,它从文法开始,一直做到了符号表的实现. 想实现自己的编译器的话,只需在把Initializtion.h中的文法修改为自己的即可.<br/><br/>工程结构:<br/>Initializtion.h 初始化文法,便于进一步进行分析,它为构造GRAMMAR类提供了信息.其中默认非终极符用<>括上,修改时需要注意.<br/>Grammar.cpp Grammar.h 定义了文法GRAMMAR类,它通过initializtion.h的信息建立文法的内部表示。<br/>LL1_Analyser.cpp LL1_Analyser.h 定义了LL1分析器,即LL1_Analyser类.<br/>LL1_Recognizer.cpp LL1_Recognizer.h 为LL1语法分析驱动器,可以通过文法,TOKEN序列和LL1分析表,判定语法是否正确,同时驱动动作.<br/>Rec_Parse.cpp Rec_Pares.h 实现了递归下降分析器Rec_Parse类, 递归下降的思想和LL1驱动器一样,不过是把压栈改成调用自己,而把弹栈改成返回.<br/>Scanner.cpp Scanner.h 实现了词法分析器,可以将程序变为TOKEN序列. 扫描的源程序文件路径也在这里被定义(默认为.//demo.txt)<br/>Action.cpp Action.h 实现了语义栈的操作,_Action类定义了动作符号所对应的动作.<br/>SymTable.cpp SymTable.h 实现了符号表的建立和输出.<br/><br/>希望大家能通过该程序对STL和编译原理有更深刻的理解,Have Fun and Good Luck!<br/><br/> -- David.Morre
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chesium

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值