Simplified Chinese | English
A lightweight, flexible, and modern programming language.
Riddle Language is a memory-safe programming language designed to address the shortcomings of C/C++.
- Memory Safety: Riddle Language ensures memory safety at compile time, eliminating common programming errors such as null pointer dereferencing and buffer overflows. This guarantees the robustness and security of software.
- High Performance: Riddle Language combines safety with high-performance execution, making it suitable for resource-intensive applications. This is achieved through advanced optimizations and a meticulously designed runtime system.
- Simplicity and Expressiveness: Riddle Language offers a concise and expressive syntax that promotes code readability and maintainability. It provides modern language constructs, powerful abstractions, and a rich set of libraries to simplify the development process.
- Concurrency and Parallelism: Riddle Language has built-in support for concurrent and parallel programming. It offers lightweight threads, asynchronous programming models, and synchronization primitives, simplifying the development of scalable and efficient applications.
- Interoperability: Riddle Language seamlessly integrates with existing codebases and libraries written in other languages. It provides straightforward bindings with C and C++ and supports interoperability with popular frameworks and ecosystems.
This project is open-sourced under the Apache License 2.0. This license requires that the original copyright notice, license notice, and disclaimer be retained when modifying and distributing the software; it allows users to freely use, modify, copy, and distribute software licensed under Apache for both commercial and non-commercial purposes. Users are allowed to release modified products or derivatives under different licenses, provided that the portions not modified retain the Apache License; the Apache License does not provide any form of warranty, and users are entirely responsible for any damages caused by using the software.
You can obtain the executables from the releases page on GitHub (not yet available).
- CMake version 3.28 or higher
- A compiler that supports C++20 features
- GCC version 14 or higher
- Clang version 18 or higher
- MSVC 2022 or higher
- LLVM version 18 or higher
- TermColor
- Antlr version 4.13 or higher
mkdir build
cd build
cmake ..
cmake --build . --config Release