Witeal

Witeal (pronounced Whittle), is an esoteric programming language similar to brainfuck, in the way of its oversimplicity. It stands for Why is This Eaven a Language. There are 9 identifiers in Witeal.

"<" - decrement cell by one

">" - increment cell by one (max 1000 cells, 0-999)

"+" - adds one to the cell

"-" - subtracts one from the cell

"[" - declares start of loop

"]" - declares end of loop

"&" - return boolean/integer on condition

"/" - use cell

"." - indicate skip in case of error

That's it! All the commands in the entire language right there. Here's a hello world program:

@                       start program [                       initialize loop [                       initialize second loop -                       subtract one from cell &/].                    loop if cell has anything in it >]. increment cell by one, then loop (if cell cannot be incremented, skip past loop) [                       initialize loop <].                     decrement cell by one, then loop (if cell cannot be decremented, skip past loop) ++++++++>               add 'H' to cell 0 +++++>                  add 'E' to cell 1 ++++++++++++>           add 'L' to cell 2 ++++++++++++>           add 'L' to cell 3 +++++++++++++++>        add 'O' to cell 4 [+].                    add ' ' to cell 5 +++++++++++++++++++++++> add 'W' to cell 6 +++++++++++++++>        add 'O' to cell 7 ++++++++++++++++++>     add 'R' to cell 8 ++++++++++++>           add 'L' to cell 9 ++++>                   add 'D' to cell 10 -                       add new line to cell 11 [                       initialize loop /                       print cell >                       increment cell &++++++++++++<].        loop if cell is 0-10 (less than 11) [                       initialize infinite loop ]                       close infinite loop _                       declare end of program

but this was written for readability. When writing code, it would be better to write it like this: @[[-&/].>].[<].++++++++>+++++>++++++++++++>++++++++++++>++++++++++++++>[+].+++++++++++++++++++++++>+++++++++++++++>++++++++++++++++++>++ ++++++++++>++++>-[/>&+++++++++++<].[]| The output: HELLO WORLD This is a simple Cat program (accepts input, then repeats as output): @                       introduce program [                        initialize loop [                        initialize second loop -                        subtract one from cell &/].                     loop if cell has anything in it >].                      increment cell by one, then loop (if cell cannot be incremented, skip past loop) [                        initialize loop <].                      decrement cell by one, then loop (if cell cannot be decremented, skip past loop) [                        initialize loop /                        print empty cell, activating input &->>].                   if the user did not press enter, increase cell and loop again +                        if the user did press enter, clear cell [                        initialize loop /                        print cell >                        increment cell &+<].                    loop again (skip loop if cell is empty) [                        initialize infinite loop ]                        close infinite loop _                        declare end of program or simply (or not so simply): @[[-&/].>].[<].[/&->>].+[/>&+<].[]_

Here's a program that compares two strings: @[[-&/].>].[<].++++++++++++++>+>+++++++++++++>+++++>->[/>&+++++<].[/&->>].+[/>&+<].[<].>>>>>&++++++++++++++++_>&++++++++_>&+++++++++_ >&++++++++++++_>+++++++++++++++++++>+>+++++++++++++>+++++>++++++++++++++++++++++++++++++>++++++++>+++++>++++++++++++++++++>+++++<<<<< <</>/>/>/>/>/>/>/.>++++++++>+++++++++/[]_ Its C# equivalent: using system; class Program {   public static void Main(String[] args)    {       Console.Write("NAME\n");       string name = Console.ReadLine;       if (name == "PHIL")          Console.Write("SAME HERE\n");       Console.Write("HI");       while(true)       {       }    } }

