Git Product home page Git Product logo

Curated collection of tiny C compilers, all written in C:

  • MarcFeeleyTinyc -- ( 284 SLOC )
    • lex -> parse to ast -> compile ast to bytecode -> execute on VM
  • rswier/c4 -- ( 499 SLOC )
    • Can interpret itself.
  • EarlGray/c4 -- (550) SLOC
    • Github won't let me fork this repo since its derived from c4, but it is a tiny x86 JIT compiler
  • jserv/amacc -- ( 2366 SLOC )
    • Generates and executes ARM assembly by JIT compile or creating ELF executable. Can compile itself. This is the base compiler forked for Squint.
  • HPCguy/Squint -- (3250 SLOC compiler, 3750 SLOC optimizer)
    • JIT + ELF + shared object optimizer. Near gcc -O1 performance, and surprisingly close to -O3 for some problems. Barely even started optimizing, so this could get interesting.

A Python to Linux x86 compiler (that can call libc functions), used as an example, not to support all of Python:

  • HPCguy/pyast64
    • forked from BenHoyt/pyast64 and extended for C language support.

General:

  • šŸ‘€ Iā€™m interested in High Peformance Computing. I sat on several physics application teams in my 20 year career and I'm an expert at parallel efficiency. (See https://docs.google.com/viewer?a=v&pid=sites&srcid=bGJsLmdvdnxwYWRhbC13b3Jrc2hvcHxneDo2NWNiM2Y2MDg5ZTZiZTcy )
  • šŸŒ± Iā€™m currently learning to write a compiler. I know what features are missing in HPC languages and compilers, but have no experience writing a compiler.
  • šŸ’žļø Iā€™m looking to collaborate on a new language for HPC efficiency. Almost every parallel language has been written by academics, not HPC app developers. This has been a mistake. I know how to write a language with parallel semantics but with a sequential look and feel. I was one of the two original co-developers of the RAJA framework used by the Department of Energy, but due to limitations in the C language, that framework and any other like it will never be efficient. Converting everything to pointers before applying optimizations is a mistake that can only be corrected at the language level by jettisoning the system programming semantics found in the C language definition.

hpcguy's Projects

amacc icon amacc

Small C Compiler generating ELF executable Arm architecture, supporting JIT execution

awesome-compilers icon awesome-compilers

:sunglasses: Curated list of awesome resources on Compilers, Interpreters and Runtimes

c4 icon c4

C in four functions

hpcguy icon hpcguy

Config files for my GitHub profile.

hpcpageallocator icon hpcpageallocator

Allocate large block of contiguous physical memory for better cache behavior

mini-c icon mini-c

Dr Strangehack, or: how to write a self-hosting C compiler in 10 hours

pyast64 icon pyast64

Compile a subset of the Python AST to x64-64 assembler

squint icon squint

Squint: A peephole optimizer for stack VM compilers

taxtorcher icon taxtorcher

Rough estimate of USA income tax across states to trade off relocation and retirement income

tinybasic icon tinybasic

I grabbed this code from gist.github.com/pmachapman/661f0fff9814231fde48 and improved

twit icon twit

Break long message into twitter chunks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.