Getting Started
This guide covers getting the compiler onto your machine, which platforms are supported, and the basic structure of a saQut project. To start writing code first, go to Hello World.
Get saQut
Section titled “Get saQut”You have two options: build from source, or download a pre-built release.
1. Download a release (recommended)
Section titled “1. Download a release (recommended)”Pre-built binaries are available for the following platforms:
| Platform | Architecture | Status |
|---|---|---|
| Linux (all distributions) | x86-64 | Supported |
| Windows 11 | x86-64 | Supported |
Grab the latest version from GitHub Releases. Extract the archive, then run the binary directly:
./saqut --helpNo installer, no system-wide dependencies. The binary is self-contained.
2. Build from source
Section titled “2. Build from source”If you prefer to compile saQut yourself, you need C++17, CMake >= 3.16, and Ninja.
git clone https://github.com/saqutlang/saqutcd saqutcmake -B build -G Ninjacmake --build buildThe binary lands at build/saqut.
./build/saqut --helpYou should see a list of available commands.
Supported platforms
Section titled “Supported platforms”saQut targets Linux x86-64 and Windows 11 x86-64. There is no platform-specific code in the compiler; it uses only standard C++17 and portable libraries. ARM (aarch64) and other architectures are planned for a later release but are not shipped yet. macOS is not a target and will not be supported.
If you run into issues on an untested platform, open an issue with your OS, architecture, and compiler version.
Program structure
Section titled “Program structure”A saQut program is a list of function definitions and global variable
declarations. There is no mandatory class or boilerplate; execution starts
at a function called main.
// Function definitions come firstint greet(string name) { print("Hello"); print(name); return 0;}
// Then the entry pointint main() { greet("saQut"); return 0;}Each statement ends with ;. Blocks are enclosed in { }.
The print() function
Section titled “The print() function”print() is a built-in host function: it is implemented in C++ inside the
compiler itself, not in saQut code. It accepts a single argument of any type
and writes it to the terminal:
print(42); // integerprint(3.14); // floatprint("text"); // stringprint(true); // boolean, outputs "1" or "0"What’s next?
Section titled “What’s next?”- Write your first program from scratch
- Learn about variables and how to store and name data
- Explore data types to see what kinds of values exist
- Try the interactive
saqut execcommand to experiment with expressions
