git @ Cat's Eye Technologies SixtyPical / b638671
Add draft of Design Goals document. Chris Pressey 4 years ago
3 changed file(s) with 35 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
00 History of SixtyPical
11 =====================
2
3 0.8
4 ---
5
6 * Explicit word literals prefixed with `word` token.
7 * Can `copy` literals into user-defined destinations.
28
39 0.7
410 ---
2828 Documentation
2929 -------------
3030
31 * Design Goals — coming soon.
31 * [Design Goals](doc/Design%20Goals.md)
3232 * [SixtyPical specification](doc/SixtyPical.md)
33 * [SixtyPical history](HISTORY.md)
33 * [SixtyPical revision history](HISTORY.md)
3434 * [Literate test suite for SixtyPical syntax](tests/SixtyPical%20Syntax.md)
3535 * [Literate test suite for SixtyPical execution](tests/SixtyPical%20Execution.md)
3636 * [Literate test suite for SixtyPical analysis](tests/SixtyPical%20Analysis.md)
0 Design Goals for SixtyPical
1 ===========================
2
3 (draft)
4
5 The intent of SixtyPical is to have a very low-level language that
6 benefits from abstract interpretation.
7
8 "Very low-level" means, on a comparable level of abstraction as
9 assembly language.
10
11 In the original vision for SixtyPical, SixtyPical instructions mapped
12 nearly 1:1 to 6502 instructions. However, many times when programming
13 in 6502 you're using idioms (e.g. adding a 16-bit constant to a 16-bit
14 value stored in 2 bytes) and it's just massively easier to analyze such
15 actions when they are represented by a single instruction.
16
17 So SixtyPical instructions are similar to, inspired by, and have
18 analogous restrictions as 6502 instructions, but in many ways, they
19 are more abstract. For example, `copy`.
20
21 The intent is that programming in SixtyPical is a lot like programming
22 in 6052 assembler, but it's harder to make a stupid error that you have
23 to spend a lot of time debugging.
24
25 The intent is not to make it absolutely impossible to make such errors,
26 just harder.