aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: cf682b365af378c0ce98a4afbb8767a20d1d6dad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Creole is a bytecode designed for simple implementations.

## Bytecode Format

Each creole line consists of pseudo-UTF-8 characters. The first byte
is an unsigned number between 0 and 127 (the high bit is clear). Each
suceeding pseudo-UTF-8 character is encoded as follows:

* `110HHHHx 10xxxxxx`
* `1110HHHH 10xxxxxx 10xxxxxx`
* `11110HHH 10Hxxxxx 10xxxxxx 10xxxxxx`
* `111110HH 10HHxxxx 10xxxxxx 10xxxxxx 10xxxxxx`
* `1111110H 10HHHxxx 10xxxxxx 10xxxxxx 10xxxxxx	10xxxxxx`
* `11111110 10HHHHxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx`

The first four bytes determine the type:

* `0`: Value is a register.
* `1`: Value is immediate.

All other values are reserved. Overlong values are allowed, and for some
argument values they are necessary. All lines are terminated by a byte
of all zeros.

## Design Philsophy

Creole is small but not minimal. It is easy to add instructions, and
the amount of labels, registers, and stack space can changed at runtime.
System calls can be added dynamically, but static instructions that take
at most 3 arguments should be hard-coded.
etions'>-9/+9 2021-07-26DTO to DTDGravatar John Cowan 1-55/+52 2021-07-26typoGravatar John Cowan 1-1/+1 2021-07-26switching to explicit dtosGravatar John Cowan 1-88/+102 2021-07-26errorsGravatar John Cowan 1-1/+4 2021-07-26more MN-W reviewGravatar John Cowan 1-5/+5 2021-07-26update preview linkGravatar John Cowan 1-1/+1 2021-07-26MN-W reviewGravatar John Cowan 1-6/+6 2021-07-26paired mutatorsGravatar John Cowan 1-43/+68 2021-07-25exceptionsGravatar John Cowan 1-1/+15 2021-07-25new exampleGravatar John Cowan 1-1/+4 2021-07-25updatesGravatar John Cowan 1-2/+4 2021-07-24dtd always first argumentGravatar John Cowan 1-9/+9 2021-07-23DTO to DTDGravatar John Cowan 1-55/+52 2021-07-22typoGravatar John Cowan 1-1/+1 2021-07-22switching to explicit dtosGravatar John Cowan 1-88/+102 2021-07-22errorsGravatar John Cowan 1-1/+4 2021-07-22more MN-W reviewGravatar John Cowan 1-5/+5 2021-07-20update preview linkGravatar John Cowan 1-1/+1 2021-07-20MN-W reviewGravatar John Cowan 1-6/+6 2021-07-18Fix typo.Gravatar Arthur A. Gleckler 2-4/+4 2021-07-18Add <p> around abstract.Gravatar Arthur A. Gleckler 1-2/+2 2021-07-18Publish first draft.draft-1Gravatar Arthur A. Gleckler 3-0/+114 2021-07-18Ignore trailing whitespace.Gravatar Arthur A. Gleckler 11-129/+129 2021-07-18Ignore "Dictionaries.log".Gravatar Arthur A. Gleckler 1-1/+2 2021-07-18Fix errors reported by W3C HTML Validator.Gravatar Arthur A. Gleckler 1-27/+27 2021-07-18Eliminate unnecessary redirect by using TLS/SSL.Gravatar Arthur A. Gleckler 1-1/+1