2015–03–04
1393/12/13
ANNO·VNDEVICESIMO·DIE·QVINQVAGESIMO·QVINTO·VITÆ·POVYA
Specification 2XII
Today Monodraw Beta was released (Yes great job guys). Also, I was working on a standard for Arendelle Language called Specification 2XII. The 2XII (Read it 2-12) is a document that explains everything about the behavior of Arendelle so the core developer who wants to develop a compiler for Arendelle Language know what to do. So I was testing Monodraw that I though how about creating a text-based diagram representation of a standard Arendelle Language engine. So I made this diagram here. Please notice that because of it’s ASCII art nature you have to read this page on your desktop or a tablet with screen width greater than 720 pixels.
┌────────────────────────────────────────────────────────────────────┐
│ │
│ INTRO FOR SPECIFICATION │
│ ___ __ __ ______ ______ │
│ /'___`\ /\ \ /\ \ /\__ _\/\__ _\ │
│ /\_\ /\ \\ `\`\/'/'\/_/\ \/\/_/\ \/ │
│ \/_/// /__`\/ > < \ \ \ \ \ \ │
│ // /_\ \ \/'/\`\ \_\ \__ \_\ \__ │
│ /\______/ /\_\\ \_\ /\_____\/\_____\ │
│ \/_____/ \/_/ \/_/ \/_____/\/_____/ │
│ │
│ │
└──────────┬─────────────────────────────────────────────────────────┘
│
│
│ ┌─ LEXERS ───────────────────────────────────────┐
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ OpenClose │ │ One Part │ │ Function │ │
│ │ │ Lexer │ │ Lexer │ │ Lexer │ │
┌──────────┴──┐ │ │ │ │ │ │ │ │
│ Init Point │ │ │ │ │ │ │ │ │
└──────────┬──┘ │ └────────────┘ └────────────┘ └────────────┘ │
│ └──────────────────────────────────────────┬─────┘
│ ┌───────────────┐ │
│ ┌────────────────────────┤ ├───────▣
▼ │ │ │ │
┌───────────────────┴───┐ ┌───┐ │ CodeScreen │ │
│ │──────┤ 1 ├──────┐ │ │ │
│ MasterEvak │ └───┘ │ │ │ │
│ │◀──┐ ▼ └───────────────┘ │
└──────────┬────────────┘ │ ┌──────────────────┐ │
│ │ │ Preprocessor ├───────────┤
│ │ └─────────┬────────┘ │
┌─┴─┐ │ │ │
│ 2 │ │ │ │
└─┬─┘ └─────────────┘ ┌────────────────┘
▣ │ │
│ ▼ ┌───────────────────────────┘ ┌────────────────────┐
┌──┴─────────────┴──┐ │ ┌────────────────┐ │
│ ├─────────────────────────▶│ │ LoopEval │ │
│ ├────────────┐ │ └────────────────┘ │
│ ├───────────┐│ │ │
│ EVAL ├──────────┐││ │ ┌────────────────┐ │
│ │ ││└────────────▶│ │ ConditionEval │ │
│ ├──────┐ ││ │ └────────────────┘ │
│ │ │ ││ │ │
└─────────┬─────────┘ │ ││ │ ┌────────────────┐ │
│ │ │└─────────────▶│ │ FunctionEval │ │
▼ │ │ │ └────────────────┘ │
┌───────────────────┐ │ │ │ │
│ │ │ │ │ ┌────────────────┐ │
│ Scope Garbage │ │ └──────────────▶│ │ SpaceEval │ │
│ Collector │ │ │ └────────────────┘ │
│ │ ┌───┴────────────────┐ │ │
└───────────────────┘ │ │ └─────┬─── ▲ ────────┘
│ EVAL Space Storage │ │ │
│ │ │ │
└────────────────────┘ │ │
┌─────────────────────────────────────┘ │
│ │
┌────────┐ │ │
┌─│MathEval│── │ ──────────────────────────────────────── │ ────────┐
│ └────────┘ ▼ │ │
│ ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────┐ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ Math Compiler & │ │ │
│ │ Replacer ├──▶ Evaluator ├──▶ Wrapper │ │
│ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ └─────────────────────┘ └─────────────────────┘ └─────────────┘ │
│ ▲ │
└─────────────────────────────────────────────────────────┬─ │ ─────┘
│ │
│ │
┌────────────────────────────┐ │ │
┌──│ Arendelle Side Math Tools │──────────────────────── │ ─┴──────┐
│ └────────────────────────────┘ ▼ │
│ ┌───────────────────┐ ┌──────────────────┐ │
│ │ │ │ │
│ │ ├──────────────────────▶ │ │
│ │ │ │ │
│ │ │ ┌────────────────┐ │ │ │
│ │Source Interpreter │ │ │ │ Time Wrapper │ │
│ │ │ │ │ │ │
│ │ ├──▶ RND Generator │ │ │ │
│ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ └───────────────────┘ └────────────────┘ └──────────────────┘ │
│ │
└───────────────────────────────────────────────────────────────────┘
┌──────────────────┐
┌──│ I/O Interface │─────────────────────────────────────────────┐
│ └──────────────────┘ │
│ ┌─────────────────┐ ┌─────────────────────┐ ┌─────────────────┐ │
│ │ │ │ Stored Space │ │ │ │
│ │ │ │ ┌─────────────────┐ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ Stored Space │ │ │ │ │
│ │ │ │ │Encode and Saver │ │ │ │ │
│ │ Arendelle File │ │ │ │ │ │ Function Loader │ │
│ │ System Address │ │ └─────────────────┘ │ │ and Initializer │ │
│ │ Interpreter │ │ ┌─────────────────┐ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │Stored Space Load│ │ │ │ │
│ │ │ │ │ and Decoder │ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ └─────────────────┘ │ │ │ │
│ └─────────────────┘ └─────────────────────┘ └─────────────────┘ │
│ │
└───────────────────────────────────────────────────────────────────┘
NOTE: The lines that end with ▣ means they are connected and accessible by another thread.