q3vm
lcc
q3vm | lcc | |
---|---|---|
7 | 5 | |
799 | 1,913 | |
- | - | |
3.6 | 0.0 | |
2 months ago | over 1 year 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.
q3vm
-
QCVM - QuakeC Virtual Machine written in C89
I am a big fan of Q3VM and have even used it in a couple of projects.
-
QCVM: Bite-sized QuakeC VM written in C
But it returned in Quake 3 the n?
https://github.com/jnz/q3vm
- Buying a permissive license for a Copyleft project
-
SHOULD A BEGINNER ATTEMPT A VIRTUAL MACHINE PROJECT?
You might want to check out Q3VM (A stripped down virtual machine from Quake III).
- Is it possible to dynamically execute C code from C++?
- Is there a Plan9 port for TCC?
-
Where can I find the source code of C language itself?
Finally, the compiler itself is the easy part, emitting x86/x86_64 instructions is where it starts to get very complex. For this reason, I really recommend Q3VM (https://github.com/jnz/q3vm). It is a single file VM (originally written for Quake III) which interprets fantasy but greatly simplified instructions from a slightly modified LCC compiler (also part of the project). This might be very useful to learn from.
lcc
-
Exploring the Internals of Linux v0.01
Those aren’t necessarily written as people would do that today, but you may try Knuth’s literate sources for TeX[1] and METAFONT. That category also includes LCC[3], but A retargetable C compiler is a book that you’d need to buy; and PBRT[4], but Physically based rendering is more exposition than program (even though the program is perfectly usable). The source for Unix V6[5] with the accompanying commentary by Lions is probably as much of a classic as it gets. And as an eccentric choice in a similar format, may I suggest cmForth[6], perhaps accompanied by Footsteps in an empty valley[7]?
Also, though this is not precisely what you’re asking for, The architecture of open-source applications and its sequels[8] have
[1] http://mirrors.ctan.org/info/knuth-pdf/tex/tex.pdf
[2] http://mirrors.ctan.org/info/knuth-pdf/mf/mf.pdf
[3] https://github.com/drh/lcc
[4] https://pbr-book.org/
[5] http://v6.cuzuco.com/
[6] https://github.com/ForthHub/cmFORTH/blob/combined/cmforth.ft...
[7] http://forth.org/OffeteStore/4001-footstepsFinal.pdf
[8] https://aoasbook.org/
-
I'm glad I work for a company that doesn't have this stupid policy, but one of my friends is not as lucky as me...
In my first encounter with Dennis Ritchie, I contacted him about using an early CPP from the LCC project (https://github.com/drh/lcc), which I wanted to use for a Bell Labs project, despite some excessive corporate concerns about open source licensing (in the end it was not an issue since Dennis wrote it). That code is still not heavily commented, and 30 years ago there were almost no comments at all, yet even the handcrafted lexer and parser were completely understandable. Not that were they bug-free, I actually found and fixed a few bugs, which even better reflects about how fundamentally understandable they were.
- Where can I find the source code of C language itself?
-
LLVM for a stack based architecture?
Beware of lcc licensing --- it's got some awkward clauses about forbidding distribution for profit which means it's forbidden in most Linux distributions. https://github.com/drh/lcc/blob/master/CPYRIGHT
What are some alternatives?
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
cmFORTH - Copy of cmFORTH
Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
evm_llvm - Official repo of the EVM LLVM project
pocketlang - A lightweight, fast embeddable scripting language.
virtualagc - Virtual Apollo Guidance Computer (AGC) software
Senegal - Senegal programming language
ZLib - A massively spiffy yet delicately unobtrusive compression library.
QCVM - Bite-sized QuakeC VM written in C
janet - A dynamic language and bytecode vm
qwpython - QuakeWorld dedicated server wrapped up as a Python module, QuakeC -> Python game translator
quake3pico - This is a port of the Quake 3 engine to Pico Neo 3 and Pico 4.