Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hexaredecimal/zulu
Functional programming language created for hobby programming on the JVM
https://github.com/hexaredecimal/zulu
compiler interpreter java jdk programming programming-language programming-languages
Last synced: 13 days ago
JSON representation
Functional programming language created for hobby programming on the JVM
- Host: GitHub
- URL: https://github.com/hexaredecimal/zulu
- Owner: hexaredecimal
- License: mit
- Created: 2024-06-19T03:25:47.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-01-31T22:01:50.000Z (14 days ago)
- Last Synced: 2025-01-31T23:18:09.711Z (14 days ago)
- Topics: compiler, interpreter, java, jdk, programming, programming-language, programming-languages
- Language: Java
- Homepage:
- Size: 47 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
![]()
ZULU Programming Language
[![CI](https://github.com/elixir-lang/elixir/workflows/CI/badge.svg?branch=main)](https://app.circleci.com/pipelines/github/corgifist/barley-lang/10/workflows/45b5d058-5c12-49f8-a44a-0a7f76fdf0c9)
## Key features
- Functional programming, manage data in functional style
- Supports Java interoperability
- PKG Manager
- Pattern matching
- - Variables (see `Pattern matching` in `Examples`)
- - Functions (see `Pattern matching` in `Examples`)
- - Case Expression `case [1, 2, 2] -> of [H :: T]: io:fwriteln("%s | %s", H, T). end.`
- Multi-assignment
- Null safety
- Spawn process, send message and don't worry about errors in it
- Generator jamming (eval GeneratorAST before running the program)
- Easily distribute programs by using `dist` module
- Usually, distributed program is very small in terms of memory
- Built-in optimization (constant folding, propagation, expression simplification and more)
- Two Zulu instances can talk to each other by sending signals (see `examples/chat.zulu`)
- Clean syntaxZulu is a interpreted erlang-like language based on JVM.
## Installation
![]()
Install the latest release and Java SE 21 and Apache Ant.```sh
$ git clone [email protected]:hexaredecimal/Zulu.git
$ cd Zulu
$ ant
$ ./install.sh
```
After running these commands `Zulu` should be installed in the `.local/bin` directory.
```sh
$ zulu help
```## Usage
>> Project
```sh
$ zulu new
Enter project name:
$ cd code
$ nvim main.zulu
```
>> To compile a project just type `zulu` and it will build and run.## Reference
[Barley](https://github.com/corgifist/barley-lang/tree/main) - Forked parent[Erlang](https://en.wikipedia.org/wiki/Erlang_(programming_language)) - Major inspiration
[Java](https://en.wikipedia.org/wiki/Java_(programming_language)) - Compiler and FFI implementations