iLang functional programming language
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.
Current main goals of the project
- grammar creation
- AST implementation
- compiler creation based on LLVM
Implementation based on Rust language to achieve the goals of reliability, efficiency, speed, memory safety.
Parsing based on nom a parser combinators library.
Requirements
- Rust 50.0+
- LLVM 11+
Supported targets
- Linux x86
- macOS x86
- Windows x86
Useful commands
cargo build
- build projectmake
- run rust clippy tool - collection of lints to catch common mistakes.make test
- run unit testsmake cover
- run coverage tests and generate test coverage report. It's used grcov. For installation runcargo install grcov
make fmt
- run code formatting.make check
- runcargo check