Skip to content
/ ibu Public

A statically typed compiled language inspired by HolyC

License

Notifications You must be signed in to change notification settings

v420v/ibu

Repository files navigation

The Ibu programming language

Changelog | Docs | ドキュメント

CI

  • No strict type checker
  • No C-like pointer arithmetic
  • No function-like macros
  • No break, continue stmt. Use goto
  • Allows 13 <= age < 20 instead of 13 <= age && age < 20
  • Variable length args func(...) can be accessed with built-in variables argc i64 and argv *i64
  • The compiler is written in itself
  • Default args don't have to be on the end (WIP)
#include "std/header.ibu"

func main() i32 {
    let age i32 = 19;

    if 13 <= age < 20 {
        printf("Teen-ager\n");
    }

    return 0;
}

Installing the Language

$ git clone git@github.com:v420v/ibu.git
$ cd ibu
$ make up
$ make ibulang
$ make init

How to Use the Compiler

A simple example compile and run hello world

$ ./ibuc main.ibu | as - -o main.o
$ as -o lib/runtime.o lib/runtime.s
$ ./ibuc lib/linux-syscall/linux-syscall.ibu | as - -o lib/linux-syscall.o
$ ./ibuc lib/std/std.ibu                     | as - -o lib/std.o
$ ld -o main main.o lib/runtime.o lib/linux-syscall.o lib/std.o
$ ./main

documentation

documentation[日本語版]