C, But Not
A programming language that looks like C at first glance...but it's really, really not. Created for MoCoHacks 2021, by CircuitCraft42 and joshop.
Specification
The full specification, including the usage of the interpreter, can be found on the github repo. (Just so we're clear, the rest of this description is a joke.)
Design Philosophy
This programming language was designed with many goals in mind, these being:
- Speed
- Memory safety
- Readability
- Usability
- Interoperability with existing code
- Flexibility
- Structure
- Ease of learning
Unfortunately, none of these principles ended up actually being included in the language.
Inspiration and key concepts
The simple fact that the C programming language has endured to this day is a testament to how well-designed it is. However, being as old as it is, it in many ways demands the application of modern programming concepts. Enter: C, But Not, featuring the following innovative changes to the C structure:
- Functional programming, by removing traditional "control flow" concepts and replacing them all with functions - but see below.
- Tail recursion optimization, taken to another level. In C, But Not, more than just tail calls are optimized - all function calls are replaced with jumps, even those that aren't tail calls!
- Memory management. In C, But Not, memory management is handled completely automatically with very little program overhead; this is due to your program only having access to a single integer array for memory and a handful of registers.
- Security. C, But Not utilizes groundbreaking security technologies, such as lack of any ability to manipulate files, execute commands or interface with networks, to prevent exploitation of your programs and remove security risks.
- Backwards compatibility. Finally, all C, But Not programs are guaranteed to be syntactically valid C programs, allowing easy backwards compatibility!
Log in or sign up for Devpost to join the conversation.