From ed5f772fe86f591ef3a2ab7d7cebfb7ea9612106 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 6 Jan 2017 03:54:32 -0500 Subject: [PATCH] Added TODO --- docs/Writing-the-Cyclone-Scheme-Compiler-Revision-1.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Writing-the-Cyclone-Scheme-Compiler-Revision-1.md b/docs/Writing-the-Cyclone-Scheme-Compiler-Revision-1.md index 5c7d5cec..ed9b8ba3 100644 --- a/docs/Writing-the-Cyclone-Scheme-Compiler-Revision-1.md +++ b/docs/Writing-the-Cyclone-Scheme-Compiler-Revision-1.md @@ -48,6 +48,8 @@ free variables - variables that are referenced within the body of a function but Cyclone has a similar architecture to other modern compilers: +TODO: this is hard to read. let's revisit original diagram and make that less wide so the exported PNG is not as wide either + flowchart of cyclone compiler First, an input file containing Scheme code is received on the command line and loaded into an abstract syntax tree (AST) by Cyclone's parser. From there a series of source-to-source transformations are performed on the AST to expand macros, perform optimizations, and make the code easier to compile to C. These intermediate representations (IR) can be printed out in a readable format to aid debugging. The final AST is then output as a `.c` file and the C compiler is invoked to create the final executable or object file.