Ab

From Esolang
Jump to navigation Jump to search

Ab (or, alternatively, ab or even aB, depending on the taste of the writer) is an esolang proposed by User:Akirademenech. It is directly inspired by BitChanger (using only binary values and less instructions than Brainfuck) and draws symbols and states naming patterns from Turing machines as usually presented in textbooks (symbols in the tape are letters and, in formal grammar, terminal symbols are uppercase letters and nonterminal symbols are lowercase letters, creating notations such as and ).

This is, mainly, an algorithmic creative writing exercise proposition. The use of very few commands is necessary so people can follow without much effort and these commands must not perform complicated functions. Ideally, the high level interpretation of the code (what some would call it's purpose) should be obfuscated by the so wanted language simplicity and the syntax shouldn't be confusing to understand.

The code is made, then, by

  • a: move the cursor one position left
  • e: change the current letter and move the cursor one position right
  • iC: if the current letter is a vowel, go to program instruction uC
  • oC: if the current letter is a consonant or is still blank, go to program instruction uC
  • uC: identify an instruction for conditional jumping

C is a sequence of consonants between two vowels. Any non alphabetical characters should be ignored, including all spaces and punctuation.

The current letter is the letter in the position of the cursor. Changing it means replacing it by a vowel if it is a consonant and by a consonant if it is a vowel.

A blank position is interpreted as a consonant for conditional jumping and for changing letters.

The option for alphabetical code allows any natural language text to be interpreted as a program and the usage of single letter commands, without requiring punctuation or spacing, doesn't prioritize specific languages or text types (although the choice of ASCII letters does emphasize languages that use them).

The choice of which vowel or consonant should be written by the moving cursor is choice of the interpreter. Suggested default is for vowels and for consonants.

The cursor and the instructions interpretation should be case insensitive. You may write and , for example. The instructions might vary upper and lower case throughout the code too.