Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrlsd/ilang
iLang - a functional programming language and compiler
https://github.com/mrlsd/ilang
compiler functional-programming ilang language programming programming-language
Last synced: 3 days ago
JSON representation
iLang - a functional programming language and compiler
- Host: GitHub
- URL: https://github.com/mrlsd/ilang
- Owner: mrLSD
- License: mit
- Created: 2020-08-07T10:38:58.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-06-12T15:40:07.000Z (5 months ago)
- Last Synced: 2024-06-12T21:42:14.648Z (5 months ago)
- Topics: compiler, functional-programming, ilang, language, programming, programming-language
- Language: Rust
- Homepage:
- Size: 306 KB
- Stars: 9
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# iLang functional programming language
[![CI Build Status](https://github.com/mrLSD/iLang/workflows/ci/badge.svg)](https://github.com/mrLSD/iLang/actions?query=workflow%3Aci)
[![Coverage Status](https://coveralls.io/repos/github/mrLSD/iLang/badge.svg?branch=master)](https://coveralls.io/github/mrLSD/iLang?branch=master)**iLang** is a functional programming language from scratch.
It is general purpose, strongly typed, multi-paradigm programming
language that encompasses functional programming methods.**iLang** is a cross-platform and compiler based on LLVM.
**iLang** corresponds as a member of the ML language family.
Formal grammar based on EBNF, and it is described in the document [here](grammar.md).
Current main goals of the project
* [x] grammar creation
* [x] AST implementation
* [ ] compiler creation based on LLVMImplementation based on *Rust language*
to achieve the goals of reliability, efficiency, speed, memory safety.Parsing based on [nom](https://crates.io/crates/nom) a parser combinators library.
## Requirements
* Rust 50.0+
* LLVM 11+## Supported targets
* Linux x86
* macOS x86
* Windows x86## Useful commands
* `cargo build` - build project
* `make` - run rust clippy tool - collection of lints to catch common mistakes.
* `make test` - run unit tests
* `make cover` - run coverage tests and generate test coverage report. It's used grcov. For installation run `cargo install grcov`
* `make fmt` - run code formatting.
* `make check` - run `cargo check`
## Licanse: MIT