JeanCASPAR / LLLang

A linear logic based programming language.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LLLang

A Linear Logic based programming Language (LLL).

Linear logic is a formal system wich can models the consumption and creation of ressources. In a well-typed linear program, there are neither deadlocks nor data races with concurrential processes, and a socket or file is never written to or read from once it is closed, and are closed after their used. Linear typing force ressources to be consumed exactly once.

The Rust language uses a weaker form of this called affine typing where it ensures that memory zones have at most one owner at the same time, which dismissed completely a whole class of bugs in safe Rust, like use after free, double free or data races.

Currently, I'm struggling with writing the formal definition of LLL, but I already wrote some WIP code for the interpreter.

References

About

A linear logic based programming language.

License:MIT License


Languages

Language:Haskell 93.1%Language:Nix 6.9%