Til is a small programming language with keywords in Uzbek (Latin script). Programs use the .til extension and run on the til interpreter (C11). Interpreter sources: c/til.c; CLI: c/main.c. make also builds libtil.a for embedding Til in other C programs.
License: MIT.
All guides and references live under docs/. Start at docs/README.md for:
- Quickstart — first build, first script, where to go next
- One table of every doc file and what it contains (no nested README trees)
- Examples — including
examples/til_features.til(one-file feature tour)
Shortcut: docs/QUICKSTART.md if you only want to run code.
Docs website: docs/index.html — landing (setup, platforms) + Markdown reader. Use a static server so .md files load (e.g. python3 -m http.server from repo root → /docs/). Root index.html is a short link page. Asosiy veb logotip: docs/assets/til-badge.svg (til-mono.svg ham mavjud).
The interpreter is plain C11 with only the standard library. It builds anywhere you have a C compiler:
| Platform | Typical compilers |
|---|---|
| Linux | GCC, Clang |
| macOS | Clang (xcode-select --install), GCC via Homebrew |
| Windows | MinGW-w64, MSVC (cl), Clang |
You need stdio, stdlib, string, ctype, errno (the current code does not require -lm).
- A C11 compiler (
cc,gcc, orclang) make(optional; you can compile by hand)
Optional: VS Code / Cursor — syntax in vscode-til/.
makeProduces til and libtil.a.
./til examples/hello.til
./til examples/til_features.tilEntry point is always funksiya kirish() (no parameters).
Open vscode-til/ as an extension folder for grammar and snippets.
| Path | Purpose |
|---|---|
Makefile |
Builds til and libtil.a |
index.html |
Minimal landing (logo + link to docs/) |
docs/ |
Markdown docs + docs/index.html (browse .md in browser) |
docs/assets/ |
til-badge.svg (veb), til-mono.svg |
c/til.c |
Interpreter |
c/main.c |
CLI |
c/til.h |
TIL_VERSION, til_run_file() |
examples/ |
Sample .til files |
vscode-til/ |
Editor support |
| Problem | What to try |
|---|---|
make: cc: Command not found |
Install GCC or Clang. |
til: command not found |
Use ./til from the project directory or add it to PATH. |
- Run:
./til file.til→kirish() - Learn:
docs/README.md→docs/QUICKSTART.md - Full language:
docs/03-LANGUAGE.md