All Projects → maekawatoshiki → Rucc

maekawatoshiki / Rucc

Licence: mit
rucc is a tiny toy C compiler in Rust.

Programming Languages

c
50402 projects - #5 most used programming language
rust
11053 projects

Labels

Projects that are alternatives of or similar to Rucc

Parcel
The zero configuration build tool for the web. 📦🚀
Stars: ✭ 39,670 (+34395.65%)
Mutual labels:  compiler
Godzilla
Godzilla is a ES2015 to Go source code transpiler and runtime
Stars: ✭ 1,464 (+1173.04%)
Mutual labels:  compiler
Hikari
LLVM Obfuscator
Stars: ✭ 1,585 (+1278.26%)
Mutual labels:  compiler
Svelte
Cybernetically enhanced web apps
Stars: ✭ 53,867 (+46740.87%)
Mutual labels:  compiler
Impatient
Ain't nobody got time for data
Stars: ✭ 110 (-4.35%)
Mutual labels:  compiler
Kou
A minimal language compiled into wasm bytecode
Stars: ✭ 112 (-2.61%)
Mutual labels:  compiler
Haste Compiler
A GHC-based Haskell to JavaScript compiler
Stars: ✭ 1,429 (+1142.61%)
Mutual labels:  compiler
Crossshader
⚔️ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
Stars: ✭ 113 (-1.74%)
Mutual labels:  compiler
Futhark
💥💻💥 A data-parallel functional programming language
Stars: ✭ 1,641 (+1326.96%)
Mutual labels:  compiler
Flax
general purpose programming language, in the vein of C++
Stars: ✭ 111 (-3.48%)
Mutual labels:  compiler
Inko
Inko is a statically-typed, safe, object-oriented programming language for writing concurrent programs. This is a read-only mirror of https://gitlab.com/inko-lang/inko
Stars: ✭ 108 (-6.09%)
Mutual labels:  compiler
Cjstoesm
A tool that can transform CommonJS to ESM
Stars: ✭ 109 (-5.22%)
Mutual labels:  compiler
Nanocaml
Nanopass for OCaml
Stars: ✭ 112 (-2.61%)
Mutual labels:  compiler
Babel
🐠 Babel is a compiler for writing next generation JavaScript.
Stars: ✭ 40,109 (+34777.39%)
Mutual labels:  compiler
Ccompiler
c语言编译器,用 lex 和 yacc 工具完成词法分析与语法分析并生成语法树,C++实现了语 法树的解析并生成中间代码,生成中间代码的过程中实现了错误检测。C++实 现了中间代码的优化操作。之后利用 python 对中间代码进行处理并生成 mips 汇编码并且可以成功在 PCSpim(mips 模拟器)上运行。
Stars: ✭ 113 (-1.74%)
Mutual labels:  compiler
Kotlin
The Kotlin Programming Language.
Stars: ✭ 39,664 (+34390.43%)
Mutual labels:  compiler
Fathom
🚧 (Alpha stage software) A declarative data definition language for formally specifying binary data formats. 🚧
Stars: ✭ 111 (-3.48%)
Mutual labels:  compiler
Ldpl
Compiled programming language for Unix systems, inspired by COBOL and designed to be expressive, fast, readable and easy to learn.
Stars: ✭ 115 (+0%)
Mutual labels:  compiler
Elixirscript
Converts Elixir to JavaScript
Stars: ✭ 1,504 (+1207.83%)
Mutual labels:  compiler
Brain
An esoteric programming language compiler on top of LLVM based on Brainfuck
Stars: ✭ 112 (-2.61%)
Mutual labels:  compiler

RUCC

codecov

rucc is a small toy C compiler implemented in Rust.

REQUIREMENTS

  • latest Rust (recommend rustup)
  • LLVM 10.0
# ubuntu, or debian...
$ apt-get install llvm-10 llvm-10-dev

RUN

First, do test

$ cargo test

After the test exits successfully, you can try rucc easily with ./rucc.sh!

$ # slow (use binary created by `cargo build`)
$ ./rucc.sh [filename (*.c)]

$ # fast (use binary created by `cargo build --release`)
$ ./rucc.sh [filename (*.c)] --release

FORK AND PULL REQUEST LIFECYCLE

  1. fork https://github.com/maekawatoshiki/rucc repository

  2. clone your repository on local pc

    $ git clone [email protected]:youraccount/rucc.git
    $ cd rucc
    
  3. add maekawatoshiki upstream repository & fetch & confirm

    $ git remote add upstream [email protected]:maekawatoshiki/rucc.git
    $ git fetch upstream
    $ git branch -a
    
    * master
    remotes/origin/HEAD -> origin/master
    remotes/origin/master
    remotes/upstream/master
    
  4. fetch & marge upstream

    $ git fetch upstream
    $ git merge upstream/master
    
  5. pullrequest on GitHub

REFERENCES

I'm using 8cc as reference.

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].