From 6996bb5ac1cf62d91a207b9172de2127f23c01b1 Mon Sep 17 00:00:00 2001 From: pca006132 Date: Fri, 25 Jun 2021 12:28:33 +0800 Subject: [PATCH] added readme --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..9b7df5368 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# nac3 compiler + +This repository contains: +- nac3core: Core compiler library, containing type-checking, static analysis (in + the future) and code generation. +- nac3embedded: Integration with CPython runtime. +- nac3standalone: Standalone compiler tool. + +The core compiler would know nothing about symbol resolution, host variables +etc. The nac3embedded/nac3standalone library would provide (implement) the +symbol resolver to the core compiler for resolving the type and value for +unknown symbols. The core compiler would only type check classes and functions +requested by the nac3embedded/nac3standalone lib (the API should allow the +caller to specify which methods should be compiled). After type checking, the +compiler would analyse the set of functions/classes that are used and perform +code generation. + + +Symble resolver: +Str -> Nac3Type +Str -> Value + +value could be integer values, boolean values, bytes (for memcpy), function ID +(full name + concrete type) +