If you're implying all program languages are derived from C, that's simply false. Lisp is based on the lambda calculus and predates C, as one easy counter-example.
If you're implying that all languages run on top of C, that's also false. Theoretical Lisp Machines [0] have been envisioned which do not run C anywhere, and many languages (rust, go, etc) can be built into unikernals that run on real hardware with no C anywhere in the mix.
As far as I can tell, your statement is both pointless and wrong in even a generous interpretation of it.
Pointing to C code in that repository and saying SBCL is implemented in C is like pointing to https://github.com/sbcl/sbcl/blob/master/binary-distribution... and saying that SBCL is implemented in Bash.
Of course you can use SBCL without a C compiler - you simply use a precompiled version. You can't build SBCL without a C compiler.
Listen, I get that in the ivory tower of lisp you don't like looking at the little C bricks at the bottom, but the fact is that they exist and C is a hugely important language upon which the entire modern world of computing is built.
Still, I find it hard to put an equality sign between "X has a runtime written in C" and "X is written in C".
The OS interface for any program that is targeted at *nix is likely to be written at least partly in C, because POSIX is very hostile to non-C languages, which leaves us with the garbage collector.
If the GC's implementation language is the most important thing for an implementation then every language implemented mostly in C++, but using bdwgc for garbage collection is actually implemented in C and assembly.
A bunch of languages can be used to write a Lisp runtime.
I have some of these exotic Lisp Machines from the 80s which run no C code by default and where the C compiler is optional and written in Lisp. ;-) Obviously exotic and outdated. An alternate world.
> I haven't seen a popular lisp yet with a meaningful amount of assembly in lieu of C.
https://github.com/Clozure/ccl/tree/master/level-0/ARM
And, yes, the assembler is written in Lisp, too.
There are plenty to choose from, implement fully in Java like jikes, partially implemented in Java and C++ like OpenJDK, implemented in Java and C like MicroEJ, and lots of other ones to chose from.
Then there is project Metropolis on the OpenJDK, which targets to replace Hotspot with Graal, thus reducing the amount of C++ code on the runtime.
https://news.ycombinator.com/item?id=9699065
Uses m-expressions instead of s-expressions though.
At which point someone who collects antique UNIVACs will tell me I'm wrong, too.
It's really bizarre how you expect the world to revolve around it.
IBM z, IBM i and Unisys ClearPath are still quite modern and aren't written in C, rather in memory safe system programming languages.
Then Windows is largely C++ and .NET, even what used to be plain old C nowadays has been migrated to play nicely when compiled with C++ compilers.
Finally there are a couple of embedded and real time OSes that are based on C++, like ARM's mbed or even Arduino libraries.
I have one at home. It's not theoretically, but factually. About 10000 Lisp Machines had been sold between the late 70s and early 90s. Which probably adds to $500+ million in sales - then.
They actually can run C, but that's usually optional.
Assembly. Java. Ruby. Python. The list goes on.
Could you explain your rationale behind this statement?
Edit: not necessarily agreeing, there must be some languages that do not rely on C.
C++ is not C (it was once implemented as a preprocessor in front of a C compiler, but that's not th same as being C, and it's now more likely to implemented as a self-hosting compiler.)
If programming is turtles all the way down, C is the bottom turtle, standing on the solid ground of Von Neumann architecture.
The point is, C is utterly pervasive. Everything that we think is different from C is made from C.
Plenty of languages have self-hosting compilers or interpreters available, which are neither written in C nor written in something written in C.
https://en.m.wikipedia.org/wiki/Bootstrapping_(compilers)#Li...
I'm also pretty sure that some are written in C++, whose implementations are usually also written in C++, and which (while closely related to C) is not C.
> And of course, whatever you play with, it's running on an operating system written in C.
That's obviously not the case if what you are playing with is an OS written in not-C. It's actually not entirely true in plenty of cases, because operating systems that use C range from almost-entirely C (with some assembly) to C-among-other-things (e.g., z/OS and it's mix of PL/X, HLASM, and C/C++.)
> If programming is turtles all the way down, C is the bottom turtle
I’m pretty sure the bottom turtle is native machine code and/or processor microcode.
If you wanted to build Go from source, what would you build first? What version(s)?
Edit: the documentation is outstanding - https://golang.org/doc/install/source#go14