A complete package with minimal external dependencies for creating and deploying C& programs and libraries.
The C& complier may be used directly from the command line to build and execute files or as a library included in your C++ code. A rudimentary IDE with a user interface is provided to ease the learning curve and enourage use of the language. Currently the IDE uses ImGui-SFML to generate the user interface - the end goal is to only depend on VulkanAPI and embed the IDE into a browser to allow writing C& program from the browser.
| Includes | Description |
|---|---|
| CIDE: C-Ide | GUI and command line for writing and building C&, and C++ programs. Currently depends on Imgui-SFML (Temporary GUI Solution). |
| CAOCO: C& Official Compiler | Official compiler and virtual machine implementation for the C& language runtime. Compiles and runs C& programs. |
| CXX : C++ Extended Standard Library | Common patterns and utilities as an extension to the standard library. Depends on MTA. |
| MTA : C++ Meta Template Archive | Variety of meta template methods and structures , for more ergonomic metaprogramming. |
| MINT : Minimal C++ Testing Framework | Used to unit test other project submodules. |
Pronunciation: “candy” or “see-and”.
- Non-deterministic compile time evaluation. Compile time code is evaluated and run on the host machine to generate a final translation input for a target machine.
- Multiple process and library definitions within a single codebase. Explicitly define and compile multiple executables and libraries from a single project.
Example#1: Unrelated animal types which all make sounds, displays use of dynamic types.
Example#2: The Husky which makes diffrent sounds based on it's mood, displays use of template metaprogramming.
- Quick and easy deployment of a minimum viable product with the ability to scale and stay maintainable by opting in to type and logic safety incrementally.
- Low cognitive load on the programmer with legible self-explanatory syntax that is familiar in logic to mainstream C-like languages. (C/C++)
- Plug and play on top of any C++ environment and call native C++ methods from C&. #include “candi.h” is all you need.
- “When there is a right way, there should be one choice. When there is no right way, there should be as many choices as possible.”
- “If it can happen at compile time it should happen at compile time, unless it must happen at run time.”

