Unixtopia
main/ artigos/
Linguagem de programação esotérica
São linguagens altamente experimentais e divertidas que empregam ideias bizarras ou não convencionais. Linguagens populares desse tipo incluem Brainfuck, Chef ou Omgrofl. Há um ótimo wiki para esolangs em esolangs.org. Se você quiser ver os esolangs em toda a sua beleza, veja esolangs.org/wiki/Hello_world_program_in_esoteric_languages_(nonalphabetic_and_A-M). Muitos esolinguagens parecem ser golfistas de código, pessoas que fazem vários desafios de programação enquanto buscam o código mais curto, o que geralmente requer uma escolha sábia de linguagem ou talvez criar uma linguagem completamente nova apenas para o trabalho. O Codegolf stack exchange é um lugar para ver muitos esolangs em ação. Ideias notáveis empregadas por esolangs são:
- Usar imagens em vez de texto como source-code,como Piet.
- Não fazer nada, como Nothing.
- Ser bidimensional, como Befunge ou Hexagony.
- Source-code parecido com receitas de culinária, como Chef.
- Tentar ser o mais difícil de usar e compilar possível, como Befunge.
- Adicionar aleatoriedade à execução do programa, como Entropy, ou trabalhar com aleatoriedade de outras maneiras.
- Não ter I/O, como Compute.
- Obrigação de implorar ao compilador para fazer seu trabalho, como INTERCAL.
- Usar apenas caracteres brancos no source-code, como Whitespace.
- Usar apenas uma única letra no source-code, como Unary).
- Usando a estrutura do repositório git como source-code, como legit.
- Source-code que lembra peças dramáticas, como Shakespeare, peças reais da vida real foram encenadas.
- Foco exclusivo em golf, como GoldScript.
- Usando caracteres unicode, como UniCode.
- Sendo infinitamente muitas linguagens, como MetaGolfScript, cada uma resolve um programa específico em 0 bytes.
Esolangs são ótimos porque:
- Eles são divertidos e têm uma comunidade legal ao redor deles.
- Eles são, na verdade, pesquisas úteis em design de linguagem e alimento para o pensamento, mesmo que a maioria das ideias não sejam úteis diretamente, esolangs realmente nos ensinam sobre as fronteiras e definições do que são linguagens. E às vezes, por engano, descobertas reais são feitas.
- Eles são um ótimo exercício em programação e design. Linguagens simples que podem não ser úteis são potencialmente boas para a educação, pois permitem que o programador se concentre totalmente em uma ideia específica e sua implementação.
- Eles misturam tecnologia com arte, treinam a criatividade e o pensamento "fora da caixa".
- Eles são uma lufada de ar fresco na área às vezes séria demais da tecnologia. Comunidades de programação amadora e não comercial são sempre ótimas de se ter.
Uma famosa organização individual relacionada a esolangs é a Cat's Eye, administrada por Chris Pressey, acessível em https://catseye.tc.
História
INTERCAL, criado em 1972 por Donald Woods e James Lyon, é considerado o primeiro esolang da história: seu objetivo era especificamente ser diferente das linguagens tradicionais e, por exemplo, um nível de polidez foi introduzido, se não houvesse rótulos PLEASE suficientes no código-fonte, o compilador não compilaria o programa. Em 1993, Brainfuck, provavelmente o esolang mais famoso, foi criado. Em 2005, o wiki esolang foi iniciado.
TODO
Linguagens específicas
- !@$%^&*()+: O source-code parece um palavrão.
- Brainfuck: Extremamente simples, mas difícil de programar, sem dúvida o esolang mais famoso com muitas bifurcações.
- Brainfork: Brainfuck com multithreading adicionado.
- Befunge: Linguagem bidimensional que é extremamente difícil de compilar.
- Chef: Os source-code parecem receitas de culinária.
- Entropy: Adiciona aleatoriedade aos programas, dados em variáveis decaem.
- FALSO: Visa o menor compilador possível, criação inspirada de Brainfuck e outros esolangs, muito minimalista.
- Gravity: Executar programas envolve resolver equações diferenciais relacionadas à gravidade, o que é incomputável.
- INTERCAL: Talvez o primeiro esolang, inclua declarações como PLEASE DO que devem estar presentes para que a compilação seja bem-sucedida.
- Nothing: Não faz nada, garante zero bugs.
- Compute: Pode computar qualquer problema existente em um tempo arbitrariamente curto, mas não tem saída, então o resultado não pode ser impresso.
- Omgrofl: O source-code é composto de siglas da internet como "lol", "wtf" e "lmao".
- Pi: O código-fonte se parece com o número pi, erros codificam o programa.
- Piet: Os source-code são imagens.
- Texto: Linguagem que sempre imprime seu source-code, não é Turing completo. Todos os arquivos ASCII são programas em Texto.
- Polinomial: Programas são polinômios cujos zeros determinam os comandos.
- Unário: Source-code usa apenas 1 caractere: 0. Cada programa é apenas uma sequência de zeros de comprimento diferente.
- Velato: Códigos-fonte são arquivos MIDI.
- Whitespace: Source-code usa apenas caracteres brancos: espaços, tabulações e quebras de linha, então parece vazio.
- XENBLN: Linguagem de golfe, hello world é apenas š.
Costumava haver um webring de esolinguagem, agora acessível apenas em web.archive.org/web/20110728084807/http://hub.webring.org/hub/esolang
Impulsionado por nada. Todo conteúdo é disponível sob CC0 1.0 domínio público. Envie comentários e correções para Mr. Unix em victor_hermian@disroot.org.