Introduction
Type-C is (or aims to be)a versatile and high-performance programming language tailored for performance-intensive applications, such as user interfaces, games, and web services, etc. While Type-C can be embedded in various applications as a scripting language or run on resource-constrained devices, its goal is to truly excels in scenarios where speed and efficiency are paramount. It is designed with a clear philosophy and specific goals, which may resonate with some developers and not with others. The language draws inspiration from a variety of sources, including C, Java, and TypeScript. TypeScript's powerful type inference engine, Java's structure, and C's straightforwardness have all played a role in shaping Type-C. The primary aim of Type-C is to offer an enjoyable, expressive, and efficient programming experience. While it does not prioritize top-notch real-time performance or the absolute simplicity of writing, it enforces specific design patterns that contribute to robust and maintainable enterprise-grade software (hopefully).
At the time of writing, Type-C is still in the early stages of development, and the language is not yet fully implemented. The overall project is structured into a compiler written in TypeScript and a VM written in C.
Language Features
Majority of the language features are already implemented, with some basic unit testing, But some features are still missing
The missing features are:
- Proper errors
- Modules
- Struct/Array Destructuring [1, 2, ...c]
- Closures
- Coroutines
- Concurrency
- IR optimizations
VM Features
It is hard to enumerate the features of the VM, so i will jump right away into the missing ones:
- Templates (also need to be implemented in the compiler)
- Garbage Collector
- Assembler
- Disassembler
- Debugger
- JIT Compiler (long shot)