aboutsummaryrefslogtreecommitdiff
path: root/doc/IMPLEMENTATION.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/IMPLEMENTATION.md')
-rw-r--r--doc/IMPLEMENTATION.md21
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