Skip to content
/ iLang Public

iLang - a functional programming language and compiler

License

Notifications You must be signed in to change notification settings

mrLSD/iLang

Repository files navigation

iLang functional programming language

CI Build Status Coverage Status

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 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

Releases

No releases published

Languages