All Projects → msiemens → Rustiny

msiemens / Rustiny

Licence: mit
A Rust-like language compiling to x86-64 assembler

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Rustiny

Ldc
The LLVM-based D Compiler.
Stars: ✭ 937 (+2655.88%)
Mutual labels:  compiler
Kaleidoscope
Haskell LLVM JIT Compiler Tutorial
Stars: ✭ 870 (+2458.82%)
Mutual labels:  compiler
Wasp
A programming language that understands what a web app is.
Stars: ✭ 940 (+2664.71%)
Mutual labels:  compiler
Hamler
Haskell-style functional programming language running on Erlang VM.
Stars: ✭ 840 (+2370.59%)
Mutual labels:  compiler
Dugong
Minimal State Store Manager for React Apps using RxJS
Stars: ✭ 10 (-70.59%)
Mutual labels:  compiler
Rexjs
Rexjs is a faster and smaller JavaScript(ES6+) compiler!
Stars: ✭ 15 (-55.88%)
Mutual labels:  compiler
Diez
The Design Token Framework — Adopt a unified design language across platforms, codebases, and teams
Stars: ✭ 928 (+2629.41%)
Mutual labels:  compiler
Unlisp Llvm
Compiler for a toy Lisp language
Stars: ✭ 33 (-2.94%)
Mutual labels:  compiler
Potterscript
/x/pel/e/r/mus
Stars: ✭ 12 (-64.71%)
Mutual labels:  compiler
Sml Compiler
A compiler for Standard ML, somewhat
Stars: ✭ 22 (-35.29%)
Mutual labels:  compiler
Cfl
a Compileable statically typed Functional programming Language
Stars: ✭ 7 (-79.41%)
Mutual labels:  compiler
Lyca
programming language compiler w/ llvm
Stars: ✭ 9 (-73.53%)
Mutual labels:  compiler
Asl
Arma Scripting Language - a clean scripting language compiling to Arma 3 SQF scripts.
Stars: ✭ 20 (-41.18%)
Mutual labels:  compiler
Fly Coffee
☕️ Fly plugin for CoffeeScript
Stars: ✭ 7 (-79.41%)
Mutual labels:  compiler
Write A Programming Language
How to make a new language(and why we shouldn't?)
Stars: ✭ 29 (-14.71%)
Mutual labels:  compiler
Orcc
Open RVC-CAL Compiler
Stars: ✭ 26 (-23.53%)
Mutual labels:  compiler
Ferret
Ferret is a free software lisp implementation for real time embedded control systems.
Stars: ✭ 878 (+2482.35%)
Mutual labels:  compiler
Mooncraft
Lua to Commandblock compiler
Stars: ✭ 33 (-2.94%)
Mutual labels:  compiler
Zion
A statically-typed strictly-evaluated garbage-collected readable programming language.
Stars: ✭ 33 (-2.94%)
Mutual labels:  compiler
Rum
💀 Compiler for the Rum language
Stars: ✭ 21 (-38.24%)
Mutual labels:  compiler

RusTiny

This is an educational compiler for a Rust-like language that was originally planned to target the fictional Tiny architecture. But due to Tiny's limitations, RusTiny now targets x86-64 machines. The syntax is based on Rust, but there are numerous semantic differences:

  • The only datatype is int. There also are bool and char, but these are actually ints in disguise.
  • No structs/classes, no modules, only functions. This keeps the whole language managable for me.
  • No mut, no borrow checker. Again: keep it simple.

NOTE: This project is currently on hold as the current approach for SSA register allocation doesn't really pan out. I hope I'll find time to revisit project this sometime in the future.

Goal

My goal is to get the compiler so far that I can write a program that approximates Pi.

Architecture

The general data flow looks something like this:

Source File -(front)-> AST -(middle)-> IR -(back)-> Assembler
  • front: Translates the source file into an Abstract Syntax Tree representation
  • middle: Checks the AST for correctness, transforms it to an Intermediate Representation and performs optimizations
  • back: Translates the IR to Tiny Assembly code x86-64 assembly

Helpful Resources

Resources I found helpful:

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