# Alphabet Stew

From Esolang

Brainfuck derivative using only letters (a – z) Created by User:DMC

## Contents

## Concept

- A stack based esoteric programming language with exactly 26 commands
- Each command is represented by a single character [a - z]
- Numbers [0 - 9] are not used
- Any character not within the set [a-z] is ignored
- spaces and line feeds may be used for clarity

## Description

- an infinite array of cells
- pc - program counter
- p - data pointer
- top - stack pointer
- all memory is initialized to zero
- commands that require two values to be pushed will pop two values and push the result onto the stack
- '!' diagnostic command to print out memoiy cells up to highest value of the data pointer, does not have to be implemented

Instruction | Operation | Explanation |
---|---|---|

a | shift right | current memory |

b | `.` |
output ascii |

c | peek | top of stack |

d | `<` |
p -= 1, p<0 is an error |

e | `+` |
increment memory |

f | jump left | program counter -= current memory |

g | add | push two |

h | jump right | program counter += current memory |

i | `]` |
close loop |

j | clear stack | top of stack = zero |

k | xor | push two |

l | pop | into current memory |

m | shift left | current memory |

n | halt | program stop |

o | push | from current memory |

p | and | push two |

q | or | push two |

r | input decimal | current cell = input mod 256 |

s | `>` |
p += 1 |

t | `[` |
open loop |

u | `-` |
decrement memory |

v | output decimal | three digit zero filled |

w | exchange | top two values on the stack |

x | subtract | push two |

y | not | (p) = not(p) |

z | `,` |
input one keypress |

## Examples

### Hello, World!\n

oemmemosemmmmmeoooog gseogcosemmmogscosee emogdeeeossemmememmm uosemmmmmosemmememmo ddddouuuoouuuuuuuoss sosogluuuuoltbli!

### Fibonacci

First 14 values before it overflows 8 bits

emmmmuuussemmemdvsbdoeodtscvsbdgowdui!

### Truth-machine

rtsetviiv

## External resources

- Alphabet Stew – Interpreter written in Python 3