From 7ac1d880d7a353ed77e3fc8940e42ac9bd29dc17 Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Sun, 19 Jul 2026 12:22:09 +0200 Subject: [PATCH] feat(report): add implementation sub-chapters --- .../04_implementation/05_python_checking.typ | 27 +++++++++++++++++++ .../04_implementation/06_generation.typ | 10 +++++++ 2 files changed, 37 insertions(+) diff --git a/report/chapters/04_implementation/05_python_checking.typ b/report/chapters/04_implementation/05_python_checking.typ index 15bb5de..ed9524b 100644 --- a/report/chapters/04_implementation/05_python_checking.typ +++ b/report/chapters/04_implementation/05_python_checking.typ @@ -3,6 +3,33 @@ = Python Type Checking +We have now built a type definition language and registry, but it is of no use if we cannot type-check our Python code. In a similar fashion to `MidasTyper`, we must now implement a `PythonTyper`. Its role is to take in some Python source code and the types registry, walk through each statement and expression, infer the type of each term and verify the program's soundness. We will need several tools to concretize this process, such as a resolver to keep track of which value each variable references, and an environment to store the inferred types of local variables. + +== Parsing Python +#todo[] + +== Resolving References +#todo[] + +== Type Checking Statements +#todo[] + +== Type Checking Expressions +#todo[] + +== Type Checking Calls +#todo[] + +== Casts and Static Evaluation +#todo[] + +== Frames and Columns +#todo[] + +== Output +#todo[] + + /* - Python type checking - Parsing (short paragraph about AST nodes) diff --git a/report/chapters/04_implementation/06_generation.typ b/report/chapters/04_implementation/06_generation.typ index e88e771..fb7af9e 100644 --- a/report/chapters/04_implementation/06_generation.typ +++ b/report/chapters/04_implementation/06_generation.typ @@ -3,6 +3,16 @@ = Code Generation +== Stubs +#todo[] + +== Output Code +#todo[] + +== Assertions +#todo[] + + /* - Code generation - Stubs