Skip to content

marihachi/holo

Repository files navigation

It is currently being developed in C#. We plan to replace the current implementation.

holo

A system programming language of modern syntaxes with LLVM.

WIP!

Concept

  • Modern syntax introducing elements of functional languages.
    • if式やswitch式のサポート
    • ブロック式による値のReturn
  • Type system
    • 参照型のサポート
    • いずれかの型であることを表すユニオン型のサポート
  • Generate LLVM IR code

Syntax image

var x: int;

fn main(argc: int, argv: char*[]): int {
  var x: int = 1;

  if (x == 1) {
    0
  } else {
    1
  }
}

How to compile

clang command is required (clang 16 or 17 recommended).

# install holo
npm i
npm run build

# compile lib
cd lib/
./build.sh
cd ../

# compile
npm run holoc ./debug/main.ho ./lib/dist/system.a

# run
./main

Author

@marihachi

Contributors

License

MIT License

About

A system programming language of modern syntaxes with LLVM.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages