A programming language. Better mantra pending.

Overview

Dusk

Dusk is a programming language I've been working on on and off for the past while now. It's still very much in its infancy (... a quick look through this repo will show that) so don't get too excited just yet. There are a lot of bits and pieces scattered around and I'm still not 100% on some of the project structure. Sit tight!

What can I do at the moment?

Not much, really. If you clone the repo and run the following:

cd prompt
cargo run

You'll wind up in a small interactive prompt. All this does at the moment is run the parser on a snippet of code and print the resulting AST to stdout, but its capabilities will grow in the future. I'm hoping that eventually I'll be able to turn it into something similar to GHCI or iex.

Where is this going to go?

I have a lot of big ambitions but I decided that it was better to start small for the time being. Later down the track I'd like Dusk to have a strong type system with variadics and type inference via Hindley-Milner. Unfortunately implementing Hindley-Milner is a bit above my pay grade at the moment, so I have a lot of reading to do. Until then I'll probably stick with something less sophisticated.

What's next?

  • Basic expression/statement parser
  • Basic semantic analysis
  • Symbol resolution and symbolic analysis
  • Type inference
  • Type checking
  • Codegen via LLVM IR

After these are done I'm going to expand the language a bit - implementing a heap allocator will probably be the next big priority. Then I want to focus on some really basic growable types (namely Strings) and a small standard library.

You might also like...
Programming language from down under, inspired by this Reddit post.
Programming language from down under, inspired by this Reddit post.

aussie++ Programming language from down under, inspired by this Reddit post. View live demo here. Special thanks to MarkWhyBird, louis100, and others

Programming Language Inspired by Brainfuck
Programming Language Inspired by Brainfuck

Brainsuck Brainfuck but not really... like... a better version of it. Installation Requirements: Rust version 1.50 or higher Linux curl https://raw.gi

A Star Wars inspired by programming language

The Force The Force is a gateway to abilities many believe are unnatural... Getting Started Install Rust. We also provide a Dev Container if you would

An incremental programming language

Differential Datalog (DDlog) DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously upd

🤯 A brainf*ck-style programming language, but readable

🤯 Brainease Brainease is a brainf*ck-style programming language, but readable. $ cargo install brainease # brainease -f examples/hello.bz save 'H

Simple programming language that speaks the ones you already know!

Simple programming language that speaks the ones you already know!

simple, C-like programming language

CUP: C(ompiler) U(nder) P(rogress) A badly named, in-progress programming language just to learn how these things work. Wait, doesn't everyone write a

A fast & light weight Discord Client made with love using the Rust programming language.
A fast & light weight Discord Client made with love using the Rust programming language.

LemonCord A fast & light-weight Discord Client written in Rust using the wry crate. Features Fast, light-weight, easy to use. 100% Open sourced. No su

A simple interpreter written in Rust programming language.

Interpreter in Rust A simple interpreter written in Rust programming language. Getting Started These instructions will get you a copy of the project u

Owner
Kaylynn Morgan
Part-time programmer
Kaylynn Morgan
A better message queue built by rust

bettermq A better message queue built by rust I start this project to study Rust

Sun Junyi 13 Dec 16, 2022
Building a better screen reader for the Linux desktop, one step at a time.

Building a better screen reader for the Linux desktop, one step at a time.

Odilia 44 Dec 31, 2022
A simply better way to make Discord bots.

Cognite ?? A simple blazingly fast language agnostic microservice driven Discord bot framework made in rust that leverages Apache Kafka and KeyDB to t

Eludris 5 Aug 26, 2022
Better Valtrun with Aimbot and Bhop🔥🔥🔥

BetterValthrun Better Valtrun with Aimbot and Bhop?????? The New Era Valthrun is an open source external Counter-Strike 2 read only kernel-level gamep

Jonas Zimmerman 8 Oct 20, 2023
A simple programming language for everyone.

Slang A simple programming language for everyone, made with Rust. State In very early stages. Plan is to create a byte-code compiler and make that exe

Slang, Inc. 11 Jul 1, 2022
Ruxnasm is an assembler for Uxntal — a programming language for the Uxn stack-machine by Hundred Rabbits

Ruxnasm is an assembler for Uxntal — a programming language for the Uxn stack-machine by Hundred Rabbits. Ruxnasm strives to be an alternative to Uxnasm, featuring more user-friendly error reporting, warnings, and helpful hints, reminiscent of those seen in modern compilers for languages such as Rust or Elm.

Karol Belina 44 Oct 4, 2022
Frame is a markdown language for creating state machines (automata) in 7 programming languages as well as generating UML documentation.

Frame Language Transpiler v0.5.1 Hi! So very glad you are interested in Frame. Frame system design markdown language for software architects and engin

Mark Truluck 35 Dec 31, 2022
beat saber is a strongly typed, self-documenting and highly performant programming language

beatsaber beat saber is a strongly typed, self-documenting and highly performant programming language. With beat saber we aimed to create a language t

Untitled 4 Jan 17, 2022
Analogous, indented syntax for the Rust programming language.

Note: After experimenting with this in the wild, I have found representing keywords as symbols to be far less readable in large codebases. Additionall

null 42 Oct 2, 2021
A cell-based esoteric programming language

Tape A cell-based esoteric programming language Tape is a cell-based, brainfuck-like programming language that has a readable syntax and a non-wasted

Gabriel Pacheco 2 Feb 23, 2022