1
0

Edit README.md

This commit is contained in:
Jeff 2025-01-20 05:21:16 -05:00
parent e0579c6536
commit 075d86222f

View File

@ -1,4 +1,4 @@
# Dust Programming Language # Dust
**Fast**, **safe** and **easy-to-use** general-purpose programming language. **Fast**, **safe** and **easy-to-use** general-purpose programming language.
@ -45,14 +45,14 @@ This project's goal is to deliver a language with features that stand out due to
design choices and a high-quality implementation. As mentioned in the first sentence, Dust's general design choices and a high-quality implementation. As mentioned in the first sentence, Dust's general
aspirations are to be **fast**, **safe** and **easy**. aspirations are to be **fast**, **safe** and **easy**.
- **Fast** - **Fast** 🚀
- **Fast Compilation** Despite its compile-time abstractions, Dust should compile and start - **Fast Compilation** Despite its compile-time abstractions, Dust should compile and start
executing quickly. The compilation time should feel negligible to the user. executing quickly. The compilation time should feel negligible to the user.
- **Fast Execution** Dust should be competitive with highly optimized, modern, register-based VM - **Fast Execution** Dust should be competitive with highly optimized, modern, register-based VM
languages like Lua. Dust should be bench tested during development to inform decisions about languages like Lua. Dust should be bench tested during development to inform decisions about
performance. performance.
- **Low Resource Usage** Memory and CPU power should be used conservatively and predictably. - **Low Resource Usage** Memory and CPU power should be used conservatively and predictably.
- **Safe** - **Safe** 🛡️
- **Static Types** Typing should prevent runtime errors and improve code quality, offering a - **Static Types** Typing should prevent runtime errors and improve code quality, offering a
superior development experience despite some additional constraints. Like any good statically superior development experience despite some additional constraints. Like any good statically
typed language, users should feel confident in the type-consistency of their code and not want typed language, users should feel confident in the type-consistency of their code and not want
@ -63,7 +63,7 @@ aspirations are to be **fast**, **safe** and **easy**.
but, to accommodate long-running programs, Dust still requires a memory management strategy. but, to accommodate long-running programs, Dust still requires a memory management strategy.
Dust's design is to use a separate thread for garbage collection, allowing other threads to Dust's design is to use a separate thread for garbage collection, allowing other threads to
continue executing instructions while the garbage collector looks for unused memory. continue executing instructions while the garbage collector looks for unused memory.
- **Easy** - **Easy** 🎂
- **Simple Syntax** Dust should be easier to learn than most programming languages. Its syntax - **Simple Syntax** Dust should be easier to learn than most programming languages. Its syntax
should be familiar to users of other C-like languages to the point that even a new user can read should be familiar to users of other C-like languages to the point that even a new user can read
Dust code and understand what it does. Rather than being held back by a lack of features, Dust Dust code and understand what it does. Rather than being held back by a lack of features, Dust
@ -77,8 +77,8 @@ aspirations are to be **fast**, **safe** and **easy**.
### Author ### Author
I'm Jeff 🦀 and I started this project as simple expession evaluator. Initially, the project used an I'm Jeff 🦀 and I started this project as a simple expession evaluator. Initially, the project used
external parser and a tree-walking interpreter. After several books, a few papers, countless an external parser and a tree-walking interpreter. After several books, a few papers, countless
articles and a lot of experimentation, Dust has evolved to an ambitious project that aims to articles and a lot of experimentation, Dust has evolved to an ambitious project that aims to
implement lucrative features with a high-quality implementation that competes with established implement lucrative features with a high-quality implementation that competes with established
languages. languages.
@ -101,7 +101,7 @@ in scope.
*The Implementation of Lua 5.0*[^1] by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and *The Implementation of Lua 5.0*[^1] by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and
Waldemar Celes was a great resource for understanding register-based virtual machines and their Waldemar Celes was a great resource for understanding register-based virtual machines and their
instructions. This paper was recommended by Bob Nystrom in [Crafting Interpreters]. instructions. This paper was recommended by Bob Nystrom in *Crafting Interpreters*.
*A No-Frills Introduction to Lua 5.1 VM Instructions*[^2] by Kein-Hong Man has a wealth of detailed *A No-Frills Introduction to Lua 5.1 VM Instructions*[^2] by Kein-Hong Man has a wealth of detailed
information on how Lua uses terse instructions to create dense chunks that execute quickly. This was information on how Lua uses terse instructions to create dense chunks that execute quickly. This was