diff options
Diffstat (limited to 'doc/IMPLEMENTATION.md')
-rw-r--r-- | doc/IMPLEMENTATION.md | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/doc/IMPLEMENTATION.md b/doc/IMPLEMENTATION.md deleted file mode 100644 index 387c6eb..0000000 --- a/doc/IMPLEMENTATION.md +++ /dev/null @@ -1,21 +0,0 @@ -# Goal -1. In the first stage the parser parses multiple files at the same time using multiple threads. -The tokenization should be done without storing the tokens in a list (streaming) but AST needs to be stored in a list -because the compiler needs to support out of order declarations. -2. In the second stage the ast is handled using multiple threads. In this stage, variables, parameters -and types are defined and resolved and if a type is defined after there is a reference to it, -then the compiler first resolves that type. There are flags set to make sure there aren't recursive dependencies. -3. In the third stage the resolved ast is used to create SSA form (static single assignment form). If optimization is -enabled then then some inlining for ast is done by copying ast from functions to the places they are called from -before the SSA is created. -4. In the fourth stage the SSA form is used to create the bytecode. If optimization is enabled then the SSA form -is optimized before creating the bytecode. -5. If optimization is enabled then the bytecode is optimized. - -# Progress -1. Parsing using multiple threads is done, but the parser is not finished. -2. Resolving ast using multiple threads is done, but the ast resolver is not finished. -3. Generating ssa using multiple threads is done, but the ssa generator is not finished. -4. Generating bytecode using multiple threads is done, but the bytecode generator is not finished. -Currently it generates C code. -5. Not started.
\ No newline at end of file |