Bizarras Linguagens de Programação

|


Qualquer aluno que começa a estudar uma linguagem de programação quer matar o professor! Digo isso pois passei a mesma vontade. É claro que com o tempo não fui mais vendo códigos e sim uma mulher de vermelho... (Matrix). São muitas variáveis para detectar o que causa esse repúdio do aluno ao aprender algo tão valioso em tempos que a programação está em quase tudo.  Mas o que você não sabe é que existem algumas linguagens que foram criadas com o simples objetivo de serem uma brincadeira, um jogo mental, quase que uma piada Hacker.

O primeiro programa que um professor mostra é o famoso "Hello World" que escreve na tela uma mensagem como se fosse a primeira coisa que seu programa dissesse ao mundo. Exemplos de "Hello World":


Olá mundo (Hello world) em java.




Olá mundo em Portugol.

Saída após a compilação do código.

Essas linguagens de tão estranhas que são chamadas de Esotéricas (pra muita gente todas as linguagens são exotéricas…). São códigos sem valor acadêmico ou profissional, mas que sem dúvida são muito engraçadas de se conhecer. Esses códigos chegam ao nível de abstração que a maioria deles nem tem compiladores formais para gerar um programa.


Befunge
Essa é uma linguagem escrita bidimensionalmente. Como assim? Você vai indicando setas de instruções de controle, passando da esquerda para a direita e de cima para baixo, e os laços são construídos através do envio de controle de fluxo em um ciclo. Bizarro, não?!
O objetivo do Befunge era criar uma linguagem que fosse difícil de se compilar. Imagina ter um código que pode andar em 4 direções ao mesmo tempo? Bizarro! Isso sem falar que faz parte da sua implementação que ele seja auto-modificado, o que exige que ele seja interpretado e coisa e tal…
Olha como fica o “Hello World” aqui: 
Pelo que entendi o programa começa jogando “olleH” pra pilha com os números ASCII. Ai na pilha ele opera em LIFO (last in, first out) e sai o “Hello”. Dai ele adiciona o código ASCII para ‘espaço’, o número 32 (multiplicando 4 por 8), seguido da palavra “World” e o caractere de nova linha, número 10 no código ASCII e o fim do programa (caractere ‘@’).

Brainfuck
Alguns programadores alegam que foi criada pra ser uma linguagem extremamente simples. Ela é tão simples que só tem 8 comandos. A ideia era criar uma linguagem tão minimalista que fosse compilada pelo menor compilador existente, o AMIGA OS 2.0, com 240 bytes de tamanho.
O bom e velho “Olá Mundo” fica assim:
O código é meio pirado de entender. Os '[]' são um bloco de comando. Antes deles tem 10 '+' que multiplica por 10 todos os valores dentro do bloco. Ai dentro do bloco vc tem alguns ponteiros de array, '>', que tem algum valor numérico, os '+'. Depois de colocar os números 80, 110, 156, 30, 80, 120, 110, 100, 110, 30 ele retorna ao começo dos ponteiros e vai subtraindo o necessário pra formar a frase "Ola Mundo" e imprimir o resultado.

Whitespace
Whitespace é uma liguagem do capeta. Se você pegar um código impresso, escrito nessa linguagem, vai parecer um erro de impressão! É tipo a desculpa perfeita de um aluno que não fez o trabalho de programação. Whithespace é escrita completamente usando "Tab" e "espaço".
O whitespace é uma linguagem binária, que não tenho a menor ideia de como funciona, tudo que sei é que o espaço vale 1 e o tab 0.
Olha o "Hello World" como fica nessa imagem, onde os Espaços estão rosa e os Tab em roxo:

LOLCode
LOLCode é a linguagem de programação baseada nas memes da internet. 'Memes' são modismos, frases, expressões e coisas assim que viram moda na internet. LOL, trollface, fover alone não?!
Olha um "Hello World" aqui:

Shakespeare
Skakespeare é uma das linguagens esotéricas mais fodas que conheço e foi por causa dela que fiz esse post. Ela é uma linguagem de programação que quer ser mais que uma linguagem de programação.
Ora, então por que não fazer uma linguagem de programação que pareça com uma peça de Shakespeare?!
O código começa com um título, como todo título de peça. Depois entram os Atos e Cenas, que são numerados, como numa peça e que funcionam como o comando GOTO, mais ou menos como num código de Assembly. As variáveis por sua vez são nomes de personagens, como ROMEU e JULIETA.
O segredo da linguagem é que ela tem dezenas de palavras reservadas e que tem o mesmo significado, assim você pode se dar o luxo de construir frases para representar declarações e relações. Somando isso com mais algumas frases de comando como "Speak your mind", que é pra imprimir o resultado da variável, e coisas assim, você tem o arcabouço necessário pra construir interessantes códigos.
O código do "Hello World" fornecido pelo próprio pessoal que criou o código:

se Lingua::Shakespeare;
The Infamous Hello World Program.
Romeo, a young man with a remarkable patience.

Juliet, a likewise young woman of remarkable grace.

Ophelia, a remarkable woman much in dispute with Hamlet.

Hamlet, the flatterer of Andersen Insulting A/S.

Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:

You lying stupid fatherless big smelly half-witted coward!

You are as stupid as the difference between a handsome rich brave

hero and thyself! Speak your mind!

You are as brave as the sum of your fat little stuffed misused dusty

old rotten codpiece and a beautiful fair warm peaceful sunny summer's

day. You are as healthy as the difference between the sum of the

sweetest reddest rose and my father and yourself! Speak your mind!

You are as cowardly as the sum of yourself and the difference

between a big mighty proud kingdom and a horse. Speak your mind.

Speak your mind!
[Exit Romeo]
Scene II: The praising of Juliet.
[Enter Juliet]
Hamlet:

Thou art as sweet as the sum of the sum of Romeo and his horse and his

black cat! Speak thy mind!

[Exit Juliet]
Scene III: The praising of Ophelia.
[Enter Ophelia]
Hamlet:

Thou art as lovely as the product of a large rural town and my amazing

bottomless embroidered purse. Speak thy mind!

Thou art as loving as the product of the bluest clearest sweetest sky

and the sum of a squirrel and a white horse. Thou art as beautiful as

the difference between Juliet and thyself. Speak thy mind!

[Exeunt Ophelia and Hamlet]
Act II: Behind Hamlet's back.
Scene I: Romeo and Juliet's conversation.
[Enter Romeo and Juliet]
Romeo:

Speak your mind. You are as worried as the sum of yourself and the

difference between my small smooth hamster and my nose. Speak your

mind!

Juliet:

Speak YOUR mind! You are as bad as Hamlet! You are as small as the

difference between the square of the difference between my little pony

and your big hairy hound and the cube of your sorry little

codpiece. Speak your mind!

[Exit Romeo]
Scene II: Juliet and Ophelia's conversation.
[Enter Ophelia]
Juliet:

Thou art as good as the quotient between Romeo and the sum of a small

furry animal and a leech. Speak your mind!

Ophelia:

Thou art as disgusting as the quotient between Romeo and twice the

difference between a mistletoe and an oozing infected blister! Speak

your mind!

[Exeunt]

Um pouco grande, mas se vc entende de programação vc vai perceber que dentro dessas frases tem comandos sendo passados, e relações, e testes e comparações.

Malbolge
Malborge é a linguagenm infernal. Seu nome foi dado por ser o mesmo do oitavo circulo do inferno, segundo a obra, "A Divina Comédia" de Dante.

O fato é que ela foi criada pra ser a língua mais complexa das línguas de programação. Essa língua é tão foda, mas tão foda, que depois de ter sido criada demorou dois anos até que alguém conseguisse escrever um código pra ela e, diga-se de passagem, que quem escreveu o código foi uma máquina e não um humano.

Olha como fica o "Hello World" nessa linguagem:

Sério, olha pra isso. Você, programador profissional, programador de fim de semana ou meramente um curioso: O que você vê quando olha o código acima? Pra mim alguém bateu a cabeça no teclado várias vezes e saiu isso!
Bom gente é isso. Existem muitas linguagens esotéricas interessantes, mas aqui falei de algumas só para provocar a curiosidade de quem quiser estudar isso mais a fundo.
Um grande abraço a todos e bons estudos!

 

©2012 Programa Osso | Template Blue by TNB