草庐IT

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

Chesium 2023-04-18 原文

心血来潮在 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增补、添加前言,发布

有关各个编程语言编译器源码收集的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. ruby - Sinatra set cache_control to static files in public folder编译错误 - 2

    我不知道为什么,但是当我设置这个设置时它无法编译设置:static_cache_control,[:public,:max_age=>300]这是我得到的syntaxerror,unexpectedtASSOC,expecting']'(SyntaxError)set:static_cache_control,[:public,:max_age=>300]^我只想将“过期”header设置为css、javaascript和图像文件。谢谢。 最佳答案 我猜您使用的是Ruby1.8.7。Sinatra文档中显示的语法似乎是在Ruby1.

  4. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

  5. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  6. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  7. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  8. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  9. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  10. ruby - 如何以编程方式删除实例上的 "singleton information"以使其编码(marshal)? - 2

    我创建了一个由于“在运行时执行的单例元类定义”而无法编码的对象(这段代码的描述是否正确?)。这是通过以下代码执行的:#defineclassXthatmyusesingletonclassmetaprogrammingfeatures#throughcallofmethod:break_marshalling!classXdefbreak_marshalling!meta_class=class我该怎么做才能使对象编码正确?是否可以从对象instance_of_x的classX中“移除”单例组件?我真的需要一个建议,因为我们的一些对象需要通过Marshal.dump序列化机制进行缓存。

随机推荐