|
3 | 3 | <head> |
4 | 4 | <meta charset="utf-8" /> |
5 | 5 | <meta name="viewport" content="width=device-width,initial-scale=1" /> |
6 | | - <title>ASM-Lang SPECIFICATION</title> |
| 6 | + <title>ASM-Lang Specification</title> |
| 7 | + <link rel="icon" href="./icon.png" /> |
7 | 8 | <style> |
8 | 9 | @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); |
9 | 10 | @import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;700&display=swap'); |
10 | 11 | body{background:#222;color:#99ddff;font-family:Open Sans, sans-serif;margin:0;padding:1rem} |
11 | 12 | .container{max-width:1000px;margin:0 auto;text-align:justify;text-justify:inter-word} |
| 13 | + .container h1{ text-align:center; margin-top:0; } |
12 | 14 | pre, code{background:#3c3c3c;color:inherit;font-family:Source Code Pro, monospace;padding:.25rem .5rem} |
13 | 15 | img{max-width:100%} |
14 | 16 | </style> |
|
24 | 26 | <img alt="ASM-Lang icon" src="./icon.png"> |
25 | 27 | </p> |
26 | 28 |
|
| 29 | +## Table of contents |
| 30 | + |
| 31 | +- [1. Overview](#1-overview) |
| 32 | +- [2. Lexical Structure](#2-lexical-structure) |
| 33 | +- [3. Data Model](#3-data-model) |
| 34 | +- [4. Statements and Control Flow](#4-statements-and-control-flow) |
| 35 | +- [5. Functions](#5-functions) |
| 36 | +- [6. Variables and Memory Model](#6-variables-and-memory-model) |
| 37 | +- [7. Execution Model and Semantics](#7-execution-model-and-semantics) |
| 38 | +- [8. Standard Library](#8-standard-library) |
| 39 | +- [9. Tracebacks and Error Reporting](#9-tracebacks-and-error-reporting) |
| 40 | +- [10. Interpreter Use](#10-interpreter-use) |
| 41 | +- [11. REPL (Interactive Mode)](#11-repl-interactive-mode) |
| 42 | +- [12. Operators, Functions, and Statements](#12-operators-functions-and-statements) |
| 43 | + |
27 | 44 | This document specifies an imperative programming language with a binary integer data model and an explicit small-step execution semantics. A program is compiled into an initial machine state (a seed configuration) and then executed solely by repeatedly applying a fixed, program-independent state-transition (rewrite) function. All intermediate states are (semi-)human-readable and serializable, and execution can be traced and replayed exactly, including I/O and nondeterministic choices, which are modeled explicitly for deterministic replay. |
28 | 45 |
|
29 | 46 | ## 1. Overview |
|
0 commit comments