Add draft of Design Goals document.
Chris Pressey
7 years ago
0 | 0 |
History of SixtyPical
|
1 | 1 |
=====================
|
|
2 |
|
|
3 |
0.8
|
|
4 |
---
|
|
5 |
|
|
6 |
* Explicit word literals prefixed with `word` token.
|
|
7 |
* Can `copy` literals into user-defined destinations.
|
2 | 8 |
|
3 | 9 |
0.7
|
4 | 10 |
---
|
28 | 28 |
Documentation
|
29 | 29 |
-------------
|
30 | 30 |
|
31 | |
* Design Goals — coming soon.
|
|
31 |
* [Design Goals](doc/Design%20Goals.md)
|
32 | 32 |
* [SixtyPical specification](doc/SixtyPical.md)
|
33 | |
* [SixtyPical history](HISTORY.md)
|
|
33 |
* [SixtyPical revision history](HISTORY.md)
|
34 | 34 |
* [Literate test suite for SixtyPical syntax](tests/SixtyPical%20Syntax.md)
|
35 | 35 |
* [Literate test suite for SixtyPical execution](tests/SixtyPical%20Execution.md)
|
36 | 36 |
* [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.
|