Programming Languages For The Warped Minds

So you think assembly language would pop your brains out of your skull? Think again. With quite a number of programming languages in existent, more than a dozen of them can freak and squeeze the brains out of your system!



Esoteric Programming Languages

The word "esoteric" defines as something that has been created for only a small number of peeps. Esolangs, as they are usually called, are most likely designed to experiment with weird ideas and often extremely difficult if you are to write a source code. We have selected some most notable esolangs for this article, however, if your curiosity tells you to go beyond - the "Esolangs Wiki" gives you a list of these programming languages.
Be advised that Esolangs Wiki is not in any way associated with The Non-Technical Technical Support. You may need to power up your imagination if you want to grasp the basic concepts of these esoteric programming languages.


Behold, TNTTS' List if Notable Esolangs

  1. Befunge:

    Back in 1993, one nerdy guy called Chris Pressey created this esolang for Commodore's Amiga systems. Although there are other variants, Befunge-93 was the original stuff created by Chris way back then. Chris' goal for Befunge was to make it as hard to compile as possible. This programming language was never intended for writing an operating system or any application that would be of practical use. This is more of an "amuse your friends or colleagues" kind of programming language.
    Befunge's source code would look like garbage in the eye of those who are used to high-level programming languages. It's "Hello World!" for example:
    "!dlroW olleH">:#,_@

    Whenever a computer executes a program, it has some kind of "Instruction Pointer" - let's just call it IP. It points every instruction in a program and then the computer executes it one at a time. In Befunge's "Hello World!" example above, the IP first encounters the quotation mark (") character. This tells Befunge to start it's string mode feature - which will push each following character's ASCII value all the way up to the next instance of another quotation mark ("). The greater than (>) character tells Befunge's IP to start moving towards the right. Based on the example, the IP will then move to the right and encounter the colon punctuation (:), which means a "duplicate" instruction in this esolang - it takes whatever is at the top of the stack and makes a copy of it.
    The number sign (#) is some kind of "trampoline" command. This tells the compiler or interpreter to skip next cell. The comma (,) in our example is the one responsible for popping out the value and displaying it as ASCII character. The underscore (_) character is some kind of "horizontal if", which pops the top item off the stack; if it is 0, tells the IP to go right, otherwise it tells the IP to go left. The "at sign" or "address sign" (@) means end of the program.
    You bet, the "Hello World!" example is some kind of loop that displays all the letters until there are no more letters left to display. The fact that this language allows its IP to roam in dimensions through the source code, an easier (to understand) version of "Hello World!" goes like this:
    Rows and columns are to be treated as imaginary in order to get the concept of loop and trampolines. You may start running the code mentally starting from the upper left, then to right, then down, and then loops. Go figure!

    More Befunge articles from the links below:
    http://bef-93.blogspot.com/2014/06/bef-93-tutorial.html
    http://www.bedroomlan.org/tools/befunge-playground#prog=hello,mode=edit



  2. Brainfuck:

    Yes you read it all right. There exist a programming language that bears the name that you just saw. It was the same year Befunge was created when Urban Müller got hit by some cosmic boredom. Thus, the birth of Brainfuck Programming Language. Urban was known for his being minimalist - so minimalist that he created Brainfuck to utilize only 8 characters. Eight, as in 8 freaking characters are all you you need to create a working program with it. These characters are less than (<), greater than (>), plus (+), minus (-), period (.), comma (,), opening square bracket ([), and closing square bracket (]).
    This programming language's source code can make you freak out as this is how "Hello World!" is written:

    ++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.

      In Brainfuck, the 8 characters mentioned would have these functionality:
    • The plus (+) symbol increases the value of the current cell by one.
    • The minus (-) symbol decreases the value of the current cell by one.
    • The greater than (>) symbol moves the data pointer to the next cell on the right.
    • The less than (<) symbol moves the data pointer to the next cell on the left.
    • The period or dot (.) symbol prints out the ASCII value of the current cell. Those same values that you see on those ASCII codes table that you can easily Google.
    • The comma (,) reads a single input character into the current cell.
    • For the opening square bracket ([) symbol, if the value of the current cell is zero, then the instruction skips to the corresponding closing square bracket (]). Otherwise, move to the next instruction.
    • The closing square bracket (]) would be the opposite of it opening square bracket. What this does is If the value of the current cell is zero, it moves to the next instruction. Otherwise, the IP will move backwards in the instructions to the corresponding opening bracket ([).

    TNTTS will not go step by step on how that Brainfuck source code actually displayed the words "Hello World!". Explaining every plus (+) symbol in that source code will take us about 2 or 3 pages. This is not a Brainfuck tutorial article in the first place.

    If you wish to explore more about this programming language, you might want to check these 2 websites shown below:
    https://learnxinyminutes.com/docs/brainfuck/
    http://fatiherikli.github.io/brainfuck-visualizer/



  3. Chef:

    In the Chef programming language, your source codes would literally look like recipes. TNTTS never got to try to code in Chef, but based on their official website - which still exists today:
    http://www.dangermouse.net/esoteric/chef.html
    The "Hello world!" crap could be written as:

    Hello World Souffle.

    This recipe prints the immortal words "Hello world!", in a basically brute force way. It also makes a lot of food for one person.

    Ingredients.
    72 g haricot beans
    101 eggs
    108 g lard
    111 cups oil
    32 zucchinis
    119 ml water
    114 g red salmon
    100 g dijon mustard
    33 potatoes


    Method.
    Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish.

    Serves 1.



  4. COW:

    Yet another weird programming language showed up in 2003, and was the brainchild of someone named Sean Heber. The COW programming language was most probably created this way to provide a good dose of laughter to anyone who might be interested. COW has eight commands / syntax that we can use to create working programs, check them out and share your thoughts:
    • moo: Coordinates with the MOO command. During normal execution, it searches the program code for a matching MOO in reverse, then begins executing again starting from the MOO command it found.
      When searching. Further, the instructions that are immediately before it are skipped.
    • mOo: Moves the current memory position back one block.
    • moO: Moves the current memory position forward one block.
    • mOO: This command executes the value in current memory block as if it were an instruction, and COW base it on the instruction code value. One example would be, if the current memory block's value is 2, the moO command is then executed. If COW encounters an invalid command, it exits the program. A value of 3 would be invalid as this would bring us an infinite loop.
    • Moo: If the current memory block's value is 0, this command would read a single ASCII character from STDIN, and then store this single ASCII character in the current memory block. If the value is not 0, the ASCII character is then printed to STDOUT.
    • MOo: Decreases the value of the current memory block by 1.
    • MoO: Increases the value of the current memory block by 1.
    • MOO: If the current memory block's contains a 0, COW will skip to the next command and resume execution after it finds the next matching moo in your code. If it is not 0, COW then continues with whatever the next command is. How it finds the next moo goes this way. For example, "OOO MOO moo moo" - COW will match with the second moo and not the first.
    • OOO: This command sets the current memory block value to 0.
    • MMM: If register has no current value in it, this command will just copy whatever is the current memory block. Otherwise, COW will paste that value into the current memory block and clear the register.
    • OOM: This should allow us to print the current value of the memory block to STDOUT as an integer.
    • oom: This would read an integer from STDIN, then place this value into the current memory block.

    In COW, the immortal "Hello, world!" is written like this:

    MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo OOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo OOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo

    Here's a hint. Count the instances of the MoO command before it reaches the first instance of Moo, 72 MoO(s) right? 72 is the ASCII code for the uppercase "H". After the first Moo, another 29 MoO(s) would follow. 72 + 29 gives you 101, and 101 is the ASCII for the lowercase "e". If you're curious and diligent enough, you should figure out how this freaking code displays the "Hello, world!".
    Check it out on this website:
    http://www.frank-buss.de/cow.html



  5. Whitespace:


    University of Durham's Edwin Brady and Chris Morris unveiled this programming language in April Fool's Day of 2003. While most programming languages we know ignore spaces and whatnot, the Whitespace programming language is way above them all - LOL. This programming language will only read three mystical characters: the TAB (the space that your keyboard produce on your text editor when you press the TAB button), the character that your SPACEBAR produce, and LINE FEED (the space that your keyboard's ENTER produce).
    Curious about how "Hello, world!" is written in Whitespace? See below:


    SSSTSSTSSSL
    TL
    SSSSSTTSSTSTL
    TL
    SSSSSTTSTTSSL
    TL
    SSSSSTTSTTSSL
    TL
    SSSSSTTSTTTTL
    TL
    SSSSSTSTTSSL
    TL
    SSSSSTSSSSSL
    TL
    SSSSSTTTSTTTL
    TL
    SSSSSTTSTTTTL
    TL
    SSSSSTTTSSTSL
    TL
    SSSSSTTSTTSSL
    TL
    SSSSSTTSSTSSL
    TL
    SSSSSTSSSSTL
    TL
    SSL
    L
    L


    S is Spacebar, T is Tab, and L is Linefeed. Paste the code on your text editor and remove all instances of S, T, and L then replace them with their respective Whitespace values. Then paste what's left on the Whitespace emulator site using the link below:
    http://ws2js.luilak.net/interpreter.html
    Further, more Whitespace stuff on their official website:
    http://compsoc.dur.ac.uk/whitespace/tutorial.html



  6. Malbolge:

    In 1998, Ben Olmstead released his freaking programming languages which he named Malbolge. The nerd Mr. Olmstead named his programming language after Malebolge. If you're a Dante's Inferno fanatic, Malebolge will ring a bell as the Ninth Circle of Hell. This programming language is so difficult that just displaying the "Hello World!" shit goes this way:

    (=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

    Copy the hellish codes above and it on this nifty online Malbolge interpreter to see for yourself:
    http://www.malbolge.doleczek.pl/.
    Malbolge's original website no longer exists on the front end of World Wide Web. Luckily, a backup can always be found on our good old trusty Wayback Machine Archive:
    http://web.archive.org/web/20000815230017/http:/www.mines.edu/students/b/bolmstea/malbolge/



Reference(s) / Test Environment(s):

  1. Tested using Google Chrome and Firefox on Windows 10 (64-bit).
  2. All other site references are mentioned as you go through the article.



Programming Languages For The Warped Minds Programming Languages For The Warped Minds Reviewed by Admin Moronman on 4:12 PM Rating: 5

13 comments:

  1. I always despise coding! That's why I really appreciate the work of programmers and web designers - it's not easy!

    Abby | Life in the Fash Lane

    ReplyDelete
  2. Oh wow this is the first time I've read a post on programming languages. I wish I knew how to code.

    ReplyDelete
  3. Oh wow this is the first time I've read a post on programming languages. I wish I knew how to code.

    ReplyDelete
  4. Laughed hard at COW programming language.

    ReplyDelete
  5. I didn't know about these programming languages! Hehe. The reason why I drifted away from IT because I dislike programming! I only took three semesters and after I passed our Data Structures subject, I immediately shifted to a different course! Hahaha

    xx, Wandering Ella

    ReplyDelete
  6. Nice nice nice. These programming languages are interesting to know.

    ReplyDelete
  7. I don't have a warped mind so I'll pass with this techie stuff. I can't take it! Haha

    ReplyDelete
  8. Even though you tried to make it sound so simple, I just cannot! Haha! Coding is hard! Which is why I appreciate those who can do it. :)

    ReplyDelete
  9. I didn't know about these programming languages! Some of them are funny and weird at the same time. LOL! This is really interesting, by the way.

    ReplyDelete
  10. Oh My, coding is like rocket science for me!! Ha ha...I wish I knew more about the programming languages!! :)

    ReplyDelete
  11. It's first time, when I read about. But it was really interesting. Thank you for good post, thumbs up!

    ReplyDelete
  12. Something really new to me and i Find myself giggling as I read this. I dont know why but those codes look very cute and alien at the same time.

    ReplyDelete
  13. when I was in highschool I remembered the binary codes, 1 and 0 and that was it! hahahaha.... and this reminds me of them

    ReplyDelete