Curiosidades: Linguagens de programação esotéricas

Linguagens de programação esotéricas são linguagens minimalistas, criadas como prova de conceito e / ou desafio, tanto para programar a linguagem quanto para escrever para ela. Vamos ver uma revisão de alguns deles:

Brainfuck


É o mais conhecido e o mais popular, sua sintaxe é bastante simples:

 
 + + + + + + + + + +
 [          Loop para iniciar memórias (repete 10 vezes)
    >+ + + + + + +>+ + + + + + + + + +>+++++++++++>+ + +>+<<<<-
       70 100 110 30 10
 ]
 >++.              'H' (72) 1
 >>+.              'ou' (111) 3
 ---.              'l' (108) 3
 <---.             'a' (97) 2
 >>++.             espaço (32) 4
 <+.               'm' (109) 3
 ++++++++.         'u' (117) 3
 -------.          'n' (110) 3
 <+ + +.             'd' (100) 2
 >+.               'ou' (111) 3
 >+.               '!' (33) 4
 >.                '\ n' (10) 5

Para explicar sua sintaxe, é melhor recorrer a outras linguagens de programação. Então em sua página da Wikipedia forneça-nos esta tabela de equivalências, na qual ptr é equivalente a um unsigned char:

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

Ook!


É baseado no anterior, mas usa a combinação de palavras ao invés Ok?, Certo! y Ook. É uma paródia do bibliotecário de Discworld, que se transforma em orangotango e só consegue pronunciar essas três palavras. Vejamos um trecho de código.

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

Supostamente, o que esse "programa" faz é escrever o típico "hello world".

befunge


Na minha opinião a mais original de todas, sua estrutura de controle de fluxo é baseada em setas que indicam ao programa aonde ir. Além disso, torna muito mais fácil criar código mutante (código que se modifica):

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

O código acima é sobre um gerador de números aleatórios infinitos, que irá gerar um número entre 1 e 9. Muito mais legível do que os anteriores.

Malbolge


Aqui temos uma linguagem de programação criada para ser irritante e ilegível (não, não é C, e não, não é Perl) Se trata de Malbolge, cujo nome vem do 8º círculo do inferno em A Divina Comédia. Aqui está um "Olá, mundo" (ou é o que me disseram que é):

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

Lolcat


Uma piada simples. Vamos ver seu código:

HAI
CAN TEM ESTÁDIO?
EU TENHO UM VAR
IM IN YR LOOP
   UP VAR!!1
   VISÍVEL VAR
   IZ VAR BIGGER THAN 10? KTHX
IM FORA YR LOOP
KTHXBYE

Como é muito mais legível do que as linguagens de programação anteriores, vou deixar você adivinhar o que deve fazer. 😉

INTERCALL


E por último, mas não menos importante, temos uma paródia da linguagem de programação FORTRAN. INTERCAL. E aqui olá, mundo.
DO ,1 <- #13
POR FAVOR 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
POR FAVOR 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
POR FAVOR LER OUT ,1
POR FAVOR DAR UP
Bem, é isso.

Devo dizer que algumas dessas linguagens de programação são muito úteis para aprender alguns conceitos de computador. Por exemplo, Brainfuck é perfeito para aprender sobre ponteiros.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   David dito

    Eu quase prefiro código binário

    1.    desidratador dito

      Sim, definitivamente prefiro programar em binário ou em assembler diretamente, você pode fazer qualquer coisa (afinal, as linguagens de alto nível acabam rodando no processador), mas o interessante sobre as linguagens esotéricas é o desafio que representam. A propósito, roader (o autor deste artigo), você está me irritando. Como C e Perl são ilegíveis e irritantes? Que ofensa intolerável !! Que ultraje! Mas se C é maravilhoso, em perl eu não programei, mas tenho visto bons comentários sobre essa linguagem porque aparentemente ela é muito adequada para lidar com arquivos, strings e esses pods, por exemplo para exploits é muito bom, embora cy python em exploits trabalhe bem ...

      Saludos!

      1.    caminhoneiro dito

        Cara, o C e o perl eram uma piada, e sim, são linguagens bastante legíveis, muito práticas e "lindas" nas mãos certas. Claro que na CI vi que algumas pessoas acabam criando um emaranhado de código espaguete ininteligível, e sem manter registro. Quanto ao Perl, não só acontece o mesmo que com o C, mas, sendo extremamente flexível, você pode encontrar coisas que desafiam o bom senso. Devo dizer que não tenho experiência em programação em Perl, mas conheço sua sintaxe muito bem.

  2.   Joaquin dito

    O primeiro é como escrever em código morse 😀

    1.    caminhoneiro dito

      E o segundo é ser orangotango, e o quarto, causa enfartes cerebrais.

  3.   Tirso Júnior dito

    Muito bom o post.

  4.   johnfgs dito
    1.    caminhoneiro dito

      E chef, unlamda, whitespace e tink. Mas eu não queria tornar o artigo muito grande.

  5.   diazepam dito

    É HORA DO SHOW
    FALE COM A MÃO «olá mundo»
    VOCÊ FOI ENCERRADO

    Hello World em ArnoldC

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

    1.    caminhoneiro dito

      Bem, ele não sabia disso, suponho que a ideia foi dada a ele pelo "terminador nulo"

  6.   eliotime3000 dito

    A verdade é que essas linguagens de programação me fizeram rir. Boa.