Chic

Chic Programming Language

Expressiveness. Explicit Workflow. Joy of Programming.

In development · Downloads are not yet available

Familiar Syntax

Chic brings the clarity and directness of C-style systems programming into the modern era, cleaner syntax, familiar foundations. Evolution, not revolution. Explicit pointers, visible control flow, and just enough modern convenience to remind you why coding close to the machine was fun in the first place.

Room to Express

Write reusable code with generics, add methods to existing types, and express decisions with pattern matching. Chic brings these tools together to make everyday systems programming clearer, from working with collections to building your own abstractions.

Explicit Control

You decide how memory is allocated and freed. Chic gives you a range of allocator strategies to match your intent, arena allocators for bulk lifetimes, scratch allocators for temporary work, and a general heap allocator when you need it. No hidden allocations, no surprises.

See Chic in Action

Clean, expressive syntax with powerful type inference and zero-cost generics.

examples / basics.chic Chic
// Define a struct with two fields
Rectangle : struct {
    width : i32
    height : i32
}

// Define a function that uses the struct
area : func(rectangle : Rectangle) -> i32 {
    return rectangle.width * rectangle.height
}

main : func() -> i32 {
    rectangle : Rectangle = { .width = 10, .height = 4 }
    result := area(rectangle) // 40
    return 0
}