Updated README
This commit is contained in:
parent
e0fa1342a5
commit
2a3e05d6b3
31
README.md
31
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.
|
||||
|
|
Loading…
Reference in New Issue