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
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
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.
I almost prefer binary code
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!
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.
The first one is how to write in morse code
And the second is to be an orangutan, and the fourth, it causes cerebral infarcts.
Very Good the post.
i miss you piet
http://www.dangermouse.net/esoteric/piet.html
And chef, unlamda, whitespace and tink. But I didn't want to make the article too big.
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
Well, he didn't know that one, I suppose the idea was given to him by the "null terminator"
The truth is that those programming languages have made me laugh. Good.