Compiler for the "kaba" programming language
  • C++ 92.7%
  • Kaba 5.1%
  • C 1.2%
  • Shell 0.5%
  • CMake 0.4%
Find a file
Michael Ankele b83d6b9884
All checks were successful
CMake on multiple platforms / build (Release, clang, clang++, ubuntu-latest) (push) Successful in 1m50s
CMake on multiple platforms / build (Release, gcc, g++, ubuntu-latest) (push) Successful in 1m51s
fix: if block return
2026-09-09 12:56:02 +02:00
.github/workflows [ci] forgejo compatibility 2026-06-17 01:35:13 +02:00
.vs [cli] --import option 2026-07-11 14:02:37 +02:00
doc result[] + local exceptions 2026-08-12 22:17:35 +02:00
src fix: if block return 2026-09-09 12:56:02 +02:00
static refactoring: removing redundant ClassFunction attributes 2019-07-18 20:41:49 +02:00
test fix: if block return 2026-09-09 12:56:02 +02:00
tools [tools] install.sh added 2026-08-29 02:17:23 +02:00
.gitattributes [cli] --import option 2026-07-11 14:02:37 +02:00
.gitignore [modules] ncurses added 2025-06-07 17:06:29 +02:00
.kaba-repo [tools] create-env.sh 2026-05-30 16:30:08 +02:00
CMakeLists.txt refactoring: move code to Transformer 2026-07-20 00:02:46 +02:00
CMakePresets.json [cli] --import option 2026-07-11 14:02:37 +02:00
README.md minor fixes 2026-06-19 01:16:37 +02:00
vcpkg-configuration.json [xmake] cmake/vs2022 added 2024-07-20 15:46:23 +02:00
vcpkg.json [cli] --import option 2026-07-11 14:02:37 +02:00
xmake.conf more consistent internal slice handling 2026-07-19 13:04:05 +02:00

Kaba

Kaba is a general purpose programming language. The core is a simplified version of c++, with some python-style syntax sugar.

Features:

  • it compiles down to machine code - x86 64/32 bit or aarch64 - binary compatible with c++ (at least g++, clang and msvc)
  • JIT compiler - can be used for plugin systems, interacting with a c++ host program
  • fairly clean syntax - lists, optionals etc. directly integrated into the language
  • some safety features - value semantics - less mutable data by default - guards against usage of null values

This is the stand-alone compiler/execution environment for running scripts/applications.

Syntax

Uses indentation for blocks:

func main()
    print("hi")

Strong typing system, with easy built-in containers:

func f(i: i32) -> i32[]
    return [i,1,2,3]

Some functional ideas:

let x = [1.0, 2.0, 3.0] |> sin
                        |> filter(x => x>0)
                        |> sort

Libraries

  • user interface (gtk backend)
  • OpenGL
  • vulkan
  • threads
  • math (3d linear algebra, fft)
  • networking

For a full reference, see: https://wiki.michi.is-a-geek.org/kaba reference

Building