🛠️ An experimental functional systems programming language, written in Rust and powered by LLVM as a backend.

Overview
Logo resembling a cat Preview

An experimental functional systems programming language,
written in Rust, and powered by LLVM as a backend.


🎯 Goal: The intent is to create a programming language that balances simplicity and performance, with a particular focus on functional programming paradigms and compile-time safety mechanisms. The language aims to facilitate explicit tracking of side-effects and embrace a predictable coding environment. See the principles section for more information.

Features

Principles

  • Simplicity: The language should be easy to learn but still powerful enough for complex tasks. A simple syntax helps lower the barrier to entry.

  • 📐 Consistency & orthogonality: Stick to one way of doing things. The language should use a few basic constructs that can combine in many ways. This makes it easier to learn and use.

  • 🔮 Predictable, explicit, and deterministic semantics: The type system should be straightforward and avoid surprises. No guessing games—you should always know what the code is doing.

  • Opinionated: Make the language so that there's a 'right way' to do things. This ensures everyone writes code that looks and works similarly, making it easier to understand and collaborate.

  • 🙅🏻‍♂️ No meta-programming or reflection: Avoid features like meta-programming and reflection. They're often misused and make the language harder to learn and less consistent.

  • Compile-time emphasis: Do most of the heavy lifting, like error checking and memory management, when the code is compiled. This makes the executables faster and more reliable.

  • ⛓️ Functional paradigm: Use functional programming to make code clearer and reduce errors. It minimizes side-effects and makes the code easier to reason about.

Hello world example

Syntax highlighting of a code snippet showing an application that prints 'hello world' to the console

The foreign keyword lets you include functions and variables from other programming languages. You can put multiple such items in a single foreign block to keep your code neat.

The unsafe keyword is used for actions that have potential risks, like calling foreign functions or using pointers. This is much like Rust's unsafe keyword and helps you be explicit about the risky parts of your code.

nat is a type that stands for unsigned integers, which are 32-bit by default. You can also use variations like nat8, nat16, and nat64 for different bit sizes.

The compiler doesn't automatically coerce types, so you can use 0::nat to specify a literal's type. This comes in handy when the type you want doesn't match the compiler's default 32-bit numeric type.

Building and running

Prerequisites

Building

cargo build

Running tests

cargo test

A pixelated illustration of a Software Engineer's home and his cat


Please feel free to reach out to me on LinkedIn for business inquiries.
Images generated with DALL·E 3, and edited with Figma.
© 2023 Yurixander Ricardo

Thumbs up illustration
You might also like...
Functional command-line JSON processor
Functional command-line JSON processor

rq rq is a tiny functional language with which you can manipulate JSON. Basically, it is (an insignificant subset of!) jq, written in Rust. NOTE: This

A natural language shell interface for *nix systems

Orphic A natural language shell interface for *nix systems. Overview Orphic is a CLI tool that uses GPT to translate complex tasks into shell commands

Experimental language build in Rust to make it fast and robust

Reg-lang Experimental language build with Rust. Its aim is : To be simple to help learning programmation with, and in a second hand, to be robust enou

F-Fetch targets low systems. Written in Rust. It's very simple, designed so you can pick it up and replace it.

F-Fetch F-Fetch targets low systems. Written in Rust. It's very simple, designed so you can pick it up and replace it. First Look ~/.config/ffetch/con

Nexa programming language. A language for game developers by a game developer
Nexa programming language. A language for game developers by a game developer

NexaLang Nexa programming language. A language for game developers by a game developer. Features High-Level: Nexa is an easy high level language Two M

auto-rust is an experimental project that aims to automatically generate Rust code with LLM (Large Language Models) during compilation, utilizing procedural macros.
auto-rust is an experimental project that aims to automatically generate Rust code with LLM (Large Language Models) during compilation, utilizing procedural macros.

Auto Rust auto-rust is an experimental project that aims to automatically generate Rust code with LLM (Large Language Models) during compilation, util

Backend service to build customer facing dashboards 10x faster. Written in Rust.
Backend service to build customer facing dashboards 10x faster. Written in Rust.

Frolic is an open source backend service (written in Rust) to build customer facing dashboards 10x faster. You can directly connect your database to t

Experimental extension that brings OpenAI API to your PostgreSQL to run queries in human language.

Postgres ChatGPT Experimental PostgreSQL extension that enables the use of OpenAI GPT API inside PostgreSQL, allowing for queries to be written usi

A syntax highlighter for Node powered by Tree Sitter. Written in Rust.

tree-sitter-highlight A syntax highlighter for Node.js powered by Tree Sitter. Written in Rust. Usage The following will output HTML: const treeSitter

Owner
codex
🛠️ Compilers and developer tooling.
codex
A structure editor for a simple functional programming language, with Vim-like shortcuts and commands.

dilim A structure editor for a simple functional programming language, with Vim-like shortcuts and commands. Written in Rust, using the Yew framework,

Joomy Korkut 6 Nov 18, 2022
The Amp programming language: a language designed for building high performance systems.

A language designed for building high performance systems. Platform Support x86_64-pc-windows ✅ x86_64-unknown-linux ⚠️ untested x86_64-unknown-darwin

The Amp Programming Language 5 Mar 17, 2023
Stream-based visual programming language for systems observability

Stream-based visual programming language for systems observability. Metalens allows to build observability programs in a reactive and visual way. On L

Nikita Baksalyar 53 Dec 23, 2022
An Interpreter for Brainfuck programming language implemented in the Rust programming language with zero dependencies.

Brainfuck Hello, Visitor! Hey there, welcome to my project showcase website! It's great to have you here. I hope you're ready to check out some awesom

Syed Vilayat Ali Rizvi 7 Mar 31, 2023
A AMD64 code generator (like LLVM)

A libary to generate x86-64Bit machine code Error: Jit dosn't work Warning: this libary is currently undergoing big changes so don't use in production

Cr0a3 3 Apr 8, 2024
A programming and system administration assistant, powered by chatGPT

TermGPT Interact with ChatGPT from your terminal! ?? ?? Install Cargo cargo install termgpt termgpt --help From source git clone [email protected]:bahdot

Gokul 5 May 11, 2023
Assignments of Stanford CS110L-2020spr: Safety in Systems Programming

CS110L Spring 2020: Safety in Systems Programming 课程简介 CS110L将带领我们学习 Rust ,这是一门注重 安全、性能、工程 的语言。 Why Rust? 我的浅显理解是:Rust 被设计出来旨在解决目前系统级编程的困难,其特征 “安全、性能、

Shaofeng 6 Dec 28, 2022
Rust Crate that allows to do interruptions in console. Will be implemented to functional terminal customization kit.

termpause Rust Crate that allows to do interruptions in console. Will be implemented to functional terminal customization kit. Usage Add this in your

Just Said 4 Sep 21, 2022
Programming language made by me to learn other people how to make programming languages :3

Spectra programming language Programming language made for my tutorial videos (my youtube channel): Syntax Declaring a variable: var a = 3; Function

Adi Salimgereyev 3 Jul 25, 2023
A dead simple functional testing tool for command line applications

Pharaoh : build that test pyramid! What it is Pharaoh is a dead simple, no permission needed, functional test runner for command line applications, wr

Kevin Sztern 17 Dec 13, 2021