AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

From Esolang
Jump to navigation Jump to search
The title of this article is not correct because of technical limitations. The correct title is actually AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA is an stack-based esoteric programming language made by User:SzszszszszszszsZ in which the only letter is the letter "A" (except strings and variable names). Commands are disambiguated with fonts. The number of A's in the title corresponds to the number of instructions this esolang has (excluding extensions).

Instructions

Newlines separate commands, as most programming languages do.

Stack

Font Command Represented as
Arial Pushes / enqueues the argument next to the A onto the stack / queue. A [argument to push]
Calibri Pops / Dequeues the top value from the stack / queue. A
Roboto Duplicates the top of the stack. A
Helvetica Swaps the top two values of the stack. A
Lato Reverses whole stack. A

I/O

Font Command Represented as
Verdana Pops the top value of the stack and prints it, without a newline. The top value of the stack must be a string for it to be printed. A newline is represented as \A. Unlike most programming languages, the last \A goes outside the quotes. A
Tahoma Asks user for input and pushes it onto the stack as a string. A

Control Flow

Font Command Represented as
Times New Roman Starts and ends an if block. A [condition]
A code here
A
Georgia An "else" in the if block. A [condition]
A code here
A
A more code here
A
Garamond Starts and ends a while block. A [condition]
A code here
A
Segoe UI For loop. Start and end must be integers. A [start] [end]
A code here
A
Book Antiqua Break out of loop. Causes an error when not in a loop. A
Palatino Halts program. Not having this causes an error. A

Operations

Numbers in AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA are represented with a string of A's. One can use any font, but it's recommended to use the default font (Arial or Calibri).

1 = A
2 = AA
3 = AAA
5 = AAAAA
-2 = -AA
3.14 = AAA.A.AAAA
1.23456789e+20 = A.AA.AAA.AAAA.AAAAA.AAAAAA.AAAAAAA.AAAAAAAA.AAAAAAAAA.A+AAAAAAAAAAAAAAAAAAAA
0 = -

Font Command Represented as
Montserrat Addition. Can only be used with integers or floating-point numbers. A [num 1] [num 2]
Consolas Subtraction. Same restrictions as A. A [num 1] [num 2]
Courier New Multiplication. Same restrictions as A. A [num 1] [num 2]
Lucida Console Division. Division by zero causes an error. Same restrictions as A. A [num 1] [num 2]
Monaco Modulo. Modulo by zero also causes an error. Same restrictions as A. A [num 1] [num 2]
Ubuntu Tests for equality. Can only be used by replacing [condition].
Trying to push the result directly causes an error.
A [expression 1] [expression 2]
Gabriola Greater than. Same restrictions as A. A [exp 1] [exp 2]
Inter Gets top of stack. A

Conversions

Font Command Represented as
Poppins Converts to integer. A [argument]
Baskerville Converts to string. A [argument]
Agency FB Converts to a floating-point number. A [argument]

Variables

Font Command Represented as
Comic Sans MS Declares a variable. A [variable name]
Brush Script MT Assigns to a variable. A [variable name] [expression]
Lucida Handwriting Gets a variable's value. A [variable name]

Other

Font Command Represented as
Impact Comment A [whatever]
Cambria LaTeX formula. It then gets evaluated, and the result gets pushed onto
stack. When there is an error in the expression, an error occurs. (duh)
A [formula]
Noto Serif Toggle queue mode. A

Croscore font extensions

ChromeOS has different fonts for fallback defaults. They are normally not used in AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, since most computers use Windows. These are the instructions:

Font Command Represented as
Arimo Roll. Works like the roll in Piet. A [num 1] [num 2]
Tinos Switch-case. A
A
A code here
AA
A more code here
AAA
A more code here
...
AAAA...AAAA
A when all else has failed
A
Cousine Exponentiation. A [num 1] [num 2]
Caladea Random number. Start must < end. A [start] [end]

Carlito is the same as Lato.

Support for custom fonts

There are numerous fonts to choose from that correspond to various commands. You can mod the language to, say, Wingdings 2 to do the crazy operation in Malbolge on the 3rd item on the stack

IDEs

Here is a list of IDEs.
Just so you know, you should install the fonts first on your device if you haven't already.

Example Code

Hello World

A "Hello, World!"\A
A
A

Cat program

A ( A A A )
A
A
A A

A+B Problem

A
A a
A a ( A A )
A
A b
A b ( A A )
A result
A result ( A ( A a ) ( A b ) )
A ( A ( A result ) )
A
A

Truth-machine

A
A ( A A - )
A
A
A
A A A A
A A
A
A
A