Integrated Modern Systems and Applications Programming Compilers (high and low level)

HiLow is a compiled programming language with two modes that share one syntax: High for application development and Low for systems programming. Both modes use the same semantics and differ only in which features are available and what the compiler enforces. It is an early, in-progress implementation following a complete, stable design specification.

Highlights

  • Two modes, one language. High mode gives you flexible objects, type inference, and automatic memory management; Low mode gives you pointers, explicit memory modes, and inline assembly.
  • No type coercion. Conversions are always explicit, so the compiler never quietly changes a value's type behind your back.
  • Precise equality. Three operators say exactly what you mean: ?= (strict), ~= (approximate), and is (type test).
  • First-class types. time, money, nothing, and unknown are built into the language.
  • Reactive by design. A watch() primitive brings reactive programming into the core, alongside scope-based ownership with refcounting.
  • Native code, no runtime. Compiles to native code with no garbage collector and no runtime, with optional formal verification.

A taste

high program(args: [string]): i32 {
  let name = "HiLow"
  print(f"Hello from {name}!")
  return 0
}

Installation

HiLow is built with Rust and Cargo. You'll need Rust 1.70+, and GCC for compiling generated C code in later phases. The compiler currently builds a stub:

git clone https://github.com/Solifugus/HiLow.git
cd HiLow
cargo build
./target/debug/hilowc example.hl

Downloads & installation

Builds are coming soon. Grab the source from GitHub for now.