LOC is a new programming language inheriting from the C philosophy, with influences from other known major attempts in the same vein: Jai, Odin, Zig.

Its first noticeable difference with C is a modern, tokenless block syntax (ie. meaningful indentation - think Python here), but many subtles differences are present.

It embraces the close-to-metal philosohpy of C, even more so as it is about fine control of the final executable: the compiler is given back its original intent of a tool to produce machine code. It is thus not meant to be a toy language. Nonetheless, I also believe LOC would be a very good choice to learn imperative programming: Its symbol-light syntax may seem less threatening than C to a novice of any age, and most of C's quicksands would have been carpeted in concrete. It also has safety belts which you can explicitely remove.

From its early stages, the LOC compiler was programmed with very-fast compile times as one of its primary goals. It uses very light structures internally, makes large usage of memory arenas, and has its own backend, emitting directly to the final executable - no LLVM atm - no intermediate obj file, and no interminable linker phase. If you can fast-iterate on your development cycle, you can maybe start to treat your compiler as a REPL...

Status: I've been working on this, in the dark, for more years that I'd care to admit. I can only work on this on my spare time, I have a full time job, I have kids... and so many features - including basic stuff - are still missing. Recently though, I've hit some major landmarks despite those, and started to produce actual usable code (currently only to windows x64 exes), giving me faith in my ability to convert that dream project into something real : April 2023, I've been able to follow the first few days of 'Handmade Hero', porting Casey's C code around days 005 and 006 successfully to LOC ! You may recognize the following:

HandmadeLOCday6.jpg