From 2a3e05d6b3a50fb334e7687ab3eb1d2e7036f9b6 Mon Sep 17 00:00:00 2001 From: Mattia Giambirtone Date: Fri, 20 May 2022 16:14:08 +0200 Subject: [PATCH] Updated README --- README.md | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 08bf0db..23c5c63 100644 --- a/README.md +++ b/README.md @@ -5,19 +5,36 @@ Peon is a simple, functional, async-first programming language with a focus on c ## Project structure - `src/` -> Contains the entirety of peon's toolchain - - `src/memory` -> Contains peon's memory allocator and GC (TODO) - - `src/frontend` -> Contains the tokenizer, parser and compiler - - `src/frontend/meta` -> Contains shared error definitions, AST node and token + - `src/memory/` -> Contains peon's memory allocator and GC (TODO) + - `src/frontend/` -> Contains the tokenizer, parser and compiler + - `src/frontend/meta/` -> Contains shared error definitions, AST node and token declarations as well as the bytecode used by the compiler - - `src/backend` -> Contains the peon VM and type system - - `src/util` -> Contains utilities such as the bytecode debugger and serializer as well + - `src/backend/` -> Contains the peon VM and type system + - `src/util/` -> Contains utilities such as the bytecode debugger and serializer as well as procedures to handle multi-byte sequences - `src/config.nim` -> Contains compile-time configuration variables - `src/main.nim` -> Ties up the whole toolchain together by tokenizing, parsing, compiling, debugging, (de-)serializing and executing peon code +- `docs/` -> Contains documentation for various components of peon (bytecode, syntax, etc.) +- `tests/` -> Contains tests (both in peon and Nim) for the toolchain + + +## Credits + +- Araq, for creating the amazing language that is [Nim](https://nim-lang.org) +- The Nim community and contributors, for making Nim what it is today +- Bob Nystrom, for his amazing [book](https://craftinginterpreters.com) that inspired me + and taught me how to actually make a programming language +- [Njsmith](https://vorpus.org/), for his awesome articles on structured concurrency ## Disclaimer about the project's state -The project is still in its very early days: lots of stuff is not implemented, a work in progress or -otherwise outright broken. Feel free to report bugs! +The project is still in its very early days: lots of stuff is not implemented, a work in progress or +otherwise outright broken. Feel free to report bugs! Also, yes: peon is yet another programming language +inspired by Bob's book, but it is also **very** different from Lox, which is an object-oriented, dynamically typed +and very high level programming language. Peon is a statically-typed, functional language which aims to +allow low-level interfacing with C and Nim code while being a breeze to use. Also, peon will feature +[structured concurrency](https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/) +with coroutines (think Futures/Fibers but without callback hell). Since, unlike Lox, peon isn't a toy language, there's +obviously plans to implement creature comforts like an import system, exception handling package manager, etc.