https://github.com/marihachi/holo
A system programming language of modern syntaxes with LLVM.
https://github.com/marihachi/holo
compiler llvm low-level programming-language system-programming
Last synced: 6 months ago
JSON representation
A system programming language of modern syntaxes with LLVM.
- Host: GitHub
- URL: https://github.com/marihachi/holo
- Owner: marihachi
- License: mit
- Created: 2023-12-05T13:41:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-16T19:58:23.000Z (over 1 year ago)
- Last Synced: 2025-05-06T21:03:48.585Z (6 months ago)
- Topics: compiler, llvm, low-level, programming-language, system-programming
- Language: TypeScript
- Homepage:
- Size: 225 KB
- Stars: 9
- Watchers: 2
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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).
```sh
# 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](https://github.com/marihachi)
## Contributors
- [@ikasoba](https://github.com/ikasoba) - [Details](https://github.com/marihachi/holo/issues?q=author%3Aikasoba)
## License
MIT License