Curiosities: Esoteric programming languages

Esoteric programming languages ​​are minimalist languages, created as proof of concept and / or challenge, both to program the language and to write for it. Let's see a review of some of them:

brainfuck


It is the best known and the most popular, its syntax is quite simple:

 
 + + + + + + + + + +
 [          Loop to start memories (repeats 10 times)
    >+++++++>+ + + + + + + + + +>+++++++++++>+ + +>+<<<<-
       70 100 110 30 10
 ]
 >++.              'H' (72) 1
 >>+.              'or' (111) 3
 ---.              'l' (108) 3
 <---.             'a' (97) 2
 >>++.             space (32) 4
 <+.               'm' (109) 3
 + + + + + + + +.         'u' (117) 3
 -------.          'n' (110) 3
 <+ + +.             'd' (100) 2
 >+.               'or' (111) 3
 >+.               '!' (33) 4
 >.                '\ n' (10) 5

To explain its syntax, it is best to turn to other programming languages. So in his Wikipedia page provide us with this table of equivalences, in which ptr is equivalent to an unsigned char:

brain fuck C Perl
> ++ ptr; $ pointer ++;
< –Ptr; $ pointer–;
+ ++ * ptr; $ tape [$ pointer] ++;
- - * ptr; $ tape [$ pointer] -;
. putchar (* ptr); print chr $ tape [$ pointer];
, * ptr = getchar (); $ tape [$ pointer] = ord (<>);
[ while (* ptr) { while ($ tape [$ pointer]) {
] } }

Ook!


It is based on the previous one, but uses the word combination instead okay?, Ook! y Also. It is a parody of the librarian of Discworld, which is transformed into an orangutan and can only pronounce those three words. Let's look at a piece of code.

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. 

Supposedly this "program" what it does is write the typical "hello world."

befunge


In my opinion the most original of all, its flow control structure is based on arrows that tell the program where to go. Also, it makes it much easier to create mutant code (code that modifies itself):

vv <<2 ^ v <v13v4 ^ ^>>?>?> 5 ^ vv v97v6 vv <8. >> ^ ^

The above code is about an infinite random number generator, which will generate a number between 1 and 9. Much more readable than the previous ones.

malbolge


Here we have a programming language created to be irritating and unreadable (no, it's not C, and no, it is not Perl). Is about malbolge, whose name comes from the 8th circle of hell in The Divine Comedy. Here's a "hello world" (or that's what I've been told it is):

 (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
 hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

Lolcat


A simple joke. Let's see your code:

HAI
CAN HAS STDIUM?
I HAVE A VAR
IM IN YR LOOP
   UP VAR!!1
   VISIBLE VAR
   IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE

Since it is a lot more readable than previous programming languages, I'll let you guess what it is supposed to do. 😉

INTERCALL


And last but not least we have a parody of the FORTRAN programming language. INTERCAL. And here hello world.
DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP
Well, that's it.

I have to say that some of these programming languages ​​are very useful to learn about some computer concepts. For example, brainfuck it's perfect for learning about pointers.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   davidlg said

    I almost prefer binary code

    1.    desikoder said

      Yes, I definitely prefer to program in binary or in assembler directly, you can do anything (high-level languages ​​end up running on the processor after all), but the interesting thing about esoteric languages ​​is the challenge they represent. By the way, roader (the author of this article), you're pissing me off. How are C and Perl unreadable and irritating ?. What an intolerable offense !! What an outrage! But if C is wonderful, in perl I have not programmed but I have seen good comments about this language because apparently it is very suitable for handling files, strings and these pods, for example for exploits it is quite good, although cy python in exploits works well ...

      Greetings!

      1.    roader said

        Man, the C and perl thing was a joke, and yes, they are quite readable languages, very practical and "beautiful" in the right hands. Of course in C I have seen that some people end up creating a tangle of unintelligible spaghetti code, and without keep record . As for Perl, not only does the same thing happen as with C, but, being so extremely flexible, you can find things that defy common sense. I have to say that I have no experience programming in Perl, but I know its syntax quite well.

  2.   Joaquin said

    The first one is how to write in morse code

    1.    roader said

      And the second is to be an orangutan, and the fourth, it causes cerebral infarcts.

  3.   Tyrus Junior said

    Very Good the post.

    1.    roader said

      And chef, unlamda, whitespace and tink. But I didn't want to make the article too big.

  4.   diazepam said

    IT'S SHOWTIME
    TALK TO THE HAND “hello world”
    YOU HAVE BEEN FINISHED

    Hello World in ArnoldC

    http://www.genbetadev.com/actualidad/arnoldc-el-lenguaje-basado-en-frases-de-arnold-schwarzenegger

    1.    roader said

      Well, he didn't know that one, I suppose the idea was given to him by the "null terminator"

  5.   eliotime3000 said

    The truth is that those programming languages ​​have made me laugh. Good.