Jazz - modern and fast programming language that uses GCCJIT


Jazz is a statically typed programming language that allows you emitting machine code or translating Jazz AST directly to C++.


To learn language you need clone Jazz source code from github and build book using mdbook,you can look at how to build book in README.md in master.


GCCJIT is a wrapper around GCC that allows emitting GIMPLE code. Jazz AST directly translated into GIMPLE and then compiled into machine code,after this binary file or JIT code emitted.


Jazz also translates its AST into C++ and then this output compiled by default C++ compiler.

Cranelift and LLVM

These two backends still unimplemented since for this backend Jazz should get a nice IR to perform optimizations on code.

Example code

Jazz looks like this:

import "std/libc.jazz"

struct Point {
    x: i32,
    y: i32

func add(x: i32,y: i32) i32 {

    return x + y;

func add(x: f32,y: f32) f32 {
    return x + y;

pub func main() i32 {
    var p = Point {
        x: 40,
        y: 2
    return 0;