A new systems programming language that uses linear types to provide memory safety and capability-secure code

Linear types: linear types allow resources to be handled in a provably-safe manner. Memory can be managed safely and without runtime overhead, avoiding double free(), use-after-free errors, and double fetch errors. Other resources like file or database handles can also be handled safely.

Capabilities: linear capabilities enable fine-grained permissioned access to low-level facilities. Third-party dependencies can be constrained in what types of resources they can access. This makes the language less vulnerable to supply chain attacks.

Typeclasses: typeclasses, borrowed from Haskell, allow for bounded ad-hoc polymorphism.

Safe Arithmetic: Austral has well-defined semantics for all arithmetic operations on numeric types. There are distinct operations for trap-on-overflow arithmetic and modular arithmetic, as in Ada.

Algebraic Data Types: algebraic data types, as in ML or Haskell, with exhaustiveness checking.

Information updated 03/29/24
Note: This entry has not yet been moderated.
View Comments