Skip to content

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.

You have two options: build from source, or download a pre-built release.

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:

Terminal window
./saqut --help

No installer, no system-wide dependencies. The binary is self-contained.

If you prefer to compile saQut yourself, you need C++17, CMake >= 3.16, and Ninja.

Terminal window
git clone https://github.com/saqutlang/saqut
cd saqut
cmake -B build -G Ninja
cmake --build build

The binary lands at build/saqut.

Terminal window
./build/saqut --help

You should see a list of available commands.

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.

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 first
int greet(string name) {
print("Hello");
print(name);
return 0;
}
// Then the entry point
int main() {
greet("saQut");
return 0;
}

Each statement ends with ;. Blocks are enclosed in { }.

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); // integer
print(3.14); // float
print("text"); // string
print(true); // boolean, outputs "1" or "0"
  • 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 exec command to experiment with expressions