# Starstuff

**Starstuff** is a (family of) programming language(s) by User:PixelatedStarfish. It is designed such that an arbitrary sequence of characters can be interpreted as source describing a program, including ASCII art, source written in other languages, and articles such as this one. This is accomplished by compiling source to a language usable for programming. This article will assume the source compiles to Astridec, but this is far from the only acceptable compiler possible. Many variations on Starstuff that compile to other languages are possible.

## Compiling

Note that a starstuff compiler must be able to compile any sequence of printable characters to source without crashing, throwing errors, or failing to terminate on a finite sequence.

### Cumulative Compiler

A cumulative compiler does the following:

- Reads each character in source and converts it to an integer.
- Accumulates positive integer values, such as the sum of all chars, the product of all chars, or even the number of all chars as in Lenguage
- Interpret as Astridec source.

### Modulo Compiler

A modulo compiler does the following:

- Creates an ordered set of all operations
**P**, such that each operation has an index**p**. - Reads each character in source and converts it to an integer
**I**. - Replaces each integer
**I**with an opcode**p**in**P**such that**p**is equal to**I**modulo**|P|**(where**|P|**is the cardinality of**P**). - Interpret as Astridec source.

### Decimal Compiler

A decimal compiler does the following:

- Converts each character in source to an integer, and converts that integer to a string.
- Interpret as Astridec source.