• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

house

[Linguagens] Linguagens de Programação Esotéricas

4 mensagens neste tópico

Uma linguagem de programação esotérica é uma linguagem criada para testar os limites das linguagens de programação de computadores e por vezes criada apenas por piada. Não existe qualquer intenção deste tipo de linguagens vir a ser usado para criar software para empresas nem algo do género, serve meramente de entertenimento para programadores mais "curiosos".

O termo "esotérico" foi adoptado com intenção única de diferenciar este tipo de linguagens dos outros tipos de linguagens mais populares e usadas (para não dizer mesmo mais úteis).

Por exemplo, uma das primeiras linguagens esotéricas é a linguagem "INTERCAL", criada em 1972 por 2 indivíduos (James Lyons e Don Woods).

Exemplo do famoso programa "Hello World" em INTERCAL (por norma, deve ser o primeiro programa a ser criado quando um indivíduo se inicia numa linguagem de programação nova):

DO ,1 <- #13

        PLEASE DO ,1 SUB #1 <- #234

        DO ,1 SUB #2 <- #112

        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 <- #214

        PLEASE READ OUT ,1

        PLEASE GIVE UP

Hoje em dia o INTERCAL já não se usa, foi melhorado e deu origem ao C-INTERCAL.

Mas temos mais linguagens esotéricas famosas, como por exemplo o Brainfuck (criado por Urban Müller, em 1993). Na primeira versão da linguagem, eram usadas cerca de 30000 células de memória de 1 Byte. Mas existem versões desenvolvidas mais recentemente que vão até 4 Bytes por cada célula de memória.

Exemplo de um pedaço de código em Brainfuck:

O código a seguir imprime todos os caracteres até que o ponto final seja clicado.

>>>>++++++[-<+++++++>]<++++<,>[

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

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

Também temos outra linguagem bastante conhecida que dá pelo nome de Befunge, que mais tarde deu origem à variante Befreak e que também foi "misturada" com a linguagem Brainfuck dando origem à linguagem PATH (também bastante conhecida).

Um exemplo do aspecto desta última:

$}++++++++++++++++\  /      \

/}.---.+{\/+++++++v/!/      {

\}.}.{{{\        -/      ++{/

/+++++.+/\v    \ {\}++++++++\

\+++.---\ \-{++}/ \++++}}++++/

/--.----//.}++++!/v {-.      \

\--------/    /+{/- /    }}}/

            \++}/ \      +.#

Outros exemplos:

Befunge:

v>v>v>v

"8*",",

á4,u,o,

l,"n"!5

O,M"d"2

",",",*

>^>^>^,

@    <

False:

"Olá mundo!

"

Gammaplex:

X"Ola Mundo"XXSXrRE

L00P:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.

---.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++.--------------------------------------------------

--------------------------------------------------------------------------------

-------------------.+++++++++++++++++++++++++++++++++++++++++++++.++++++++.-----

--.----------.+++++++++++.----------------------------------------------.&

SNUSP:

/++>++++++++++++>>++++<- \/\/\/\

\<<                  \  // \/\/<

$ >++++++++++++++++ !\ ?/\/-<+\-

/<.>.>>.---\/    <++>  \ ?    .

\<<+.+++++\.\-\ /      / \>++/>

/-----.+++/\+<\?/!+++++++/!/ >>/

\--.----------.>++++      /\ +.#

Durante o processo de criação de uma linguagem esotérica, o objectivo mais comum é remover ou substituir as características convencionais mantendo, ainda assim, uma linguagem que seja Turing-complete.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

WOOOWW!!! :P Gostei do post! :)

Axo que é realmente um artigo interecante para publicar na Revista na categoria "Curiosidades" :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites