cparser
xcc
cparser | xcc | |
---|---|---|
2 | 1 | |
320 | 179 | |
1.3% | - | |
4.6 | 9.7 | |
6 months ago | 6 days ago | |
C | C | |
GNU General Public License v3.0 only | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cparser
-
Compiling History: A brief tour of C compilers
> QBE is a new optimizing backend much simpler than LLVM; cproc and cparser are two of the C compilers that target it, in addition to its own minic.
I thought cparser targeted libFirm. That's what their GitHub page says [0].
"It acts as a frontend to the libFirm intermediate representation library."
> We really need a production quality open source C compiler that is actually written in C.
I honestly think cproc or cparser are almost there already. For cproc, you just need to improve the quality of code optimization; it's really QBE you'd need to change. For example, you could change unnecessary multiplications by powers of 2 into left shifts, improve instruction selection so that subtraction is always something like "sub rax, rdi" and not "neg rdi / add rax, rdi" [1]).
For cparser, I notice slightly higher quality codegen; libFirm just needs more architecture support (e.g. AMD64 support appears to work for me, but it's labeled as experimental).
[0]: https://github.com/libfirm/cparser
[1]: I'm pretty sure this is the line of code that generates it, too: https://c9x.me/git/qbe.git/tree/amd64/emit.c#n418
- Cparser – A C99 parser (with GNU extensions) (2020)
xcc
-
Running a C compiler in a browser
My own C compiler is designed for x86-64 and outputs ELF64 binary. My plan was that if I could output code that could run on x86-64, I could run it on my home computer, and I would be able to do this for the next 10 years. However, with the emergence of various processors, it seems that x86 may not remain the mainstream.
What are some alternatives?
raspberry-pi-os - Learning operating system development using Linux kernel and Raspberry Pi
MazuCC - A minimalist C compiler with x86_64 code generation
kcs - Scripting in C with JIT(x64)/VM.
Cloak - A mini-preprocessor library to demostrate the recursive capabilites of the preprocessor
website-meta-language - An old offline HTML preprocessor (which can be used for static site generation), written in Perl and C that is still maintained for legacy reasons, but probably not recommended for new sites.
magus - Portable high-level assembler with authentic C syntax
mir - A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR
tinycc - My working copy of tinycc made reentrant
JWasm - Masm compatible assembler
hermit - Actually Portable WebAssembly compiler toolchain for self-contained cross-platform binaries
eater-8bitemu - Ben Eater's 8 bit breadboard computer emulator written in C.
Androsix - Androsix is a set of functions written in C & POSIX to facilitate the communication with Android Debug Bridge inside a C or C++ application.