
Official website
Link to the official site · 7,905 chars · not written by Vinony
Wikidata facts
- Instance of
- programming language
- Official website
- www.catb.org/~esr/intercal
- Image
- Hello World INTERCAL.png
Show 3 more facts
- software version identifier
- 0.30
- Commons category
- INTERCAL
- inception
- 1972-01-01
Sources (1)
via Wikidata · CC0
Article · Português
INTERCAL, uma linguagem de programação paródia, é a linguagem de programação esotérica canônica, criada por Don Woods e , dois estudantes da Universidade de Princeton, em 1972. Ela satiriza aspectos das linguagens de programação FORTRAN e COBOL, assim como a proliferação de construtores e notações de linguagem propostos nos anos 1960. Conseqüentemente, o humor pode aparecer um pouco ultrapassado para os programadores modernos acostumados a C ou Java. A versão atual, C-INTERCAL, é mantida por Eric S. Raymond. Os autores originais dizem que INTERCAL significa "Compiler Language With No Pronounceable Acronym" (Compilador de Linguagem Sem Acrônimo Pronunciável). A INTERCAL é propositadamente diferente de todas as outras linguagens de computador. Operações comuns em outras linguagens são realizadas com sintaxe redundade e secreta. Do manual de referência da INTERCAL: É um fato conhecido e freqüentemente demonstrado o de que a pessoa cujo trabalho é incompreensível é tida com grande admiração. Por exemplo, se alguém estivesse para definir que a maneira mais simples para se armazenar um valor de 65536 em uma variável de 32 bits da INTERCAL é:DO :1 ← #0¢#256Qualquer programador sensato diria que isto é um absurdo. Já que este certamente é o método mais simples, o programador pareceria bobo em frente ao chefe, que, claro, apareceria por acaso, como os chefes estão acostumados a fazer. O efeito seria não menos devastador para o programador tendo estado certo. O manual de referência da INTERCAL é um trabalho de humor, contendo várias instruções paradoxais, absurdas ou então humorísticas: Cuidado! Sob nenhuma circunstância confunda o operador mesh com o interleave, exceto sob circunstâncias confusas! Ele possui uma "amígdala", como explicado nesta nota de rodapé: "4) Já que todos os outros manuais de referência possuem apêndices, foi decidido que o manual INTERCAL deve conter algum outro tipo de órgão removível." A INTERCAL possui várias outras características projetadas para fazê-la ainda mais inestéticamente desagradável para o programador: ela usa instruções como "READ OUT", "IGNORE" (ignorar), "FORGET" (esquecer) e "PLEASE" (por favor). O manual da INTERCAL dá nomes incomuns para todos os caracteres ASCII não-alfanuméricos: aspas simples e duplas são "faíscas" e "orelhas de coelho" respectivamente. A exceção é o ampersand (&): como o define o Jargon File, "o que poderia ser mais estúpido?". O operador de atribuição, representado como "meia malha" ou sinal de igual em várias outras linguagens de programação, é na INTERCAL um "←", referido como "pega" e feito por um "ângulo" e um "verme". A implementação original de Princeton utilizava cartões perfurados e a codificação de caracteres EBCDIC. A fim de se permitir que a INTERCAL fosse executada em computadores usando ASCII, substituições para dois caracteres foram feitas: ¢ foi substituído por $ como operador mingle para "representar o crescente custo do software em relação ao do hardware", e ∀ foi substituído por ? como o operador unário ou-exclusivo para "expressar corretamente a reação comum de uma pessoa ao encontrar o ou-exclusivo pela primeira vez". Apesar de ser intencionalmente obtusa e palavrosa, a INTERCAL é contudo Turing completa: dada memória suficiente, a INTERCAL pode resolver qualquer problema que uma máquina de Turing universal pode. Porém, o faz bem lentamente. Um modelo do Crivo de Eratóstenes, computando todos os números primos menores que 65536, foi testado em um Sun SPARCStation-1. Em C, demorou menos de 0,5 segundo. O mesmo programa em INTERCAL demorou mais de dezessete horas. (Stross, 1992) Deve-se notar que quase nenhuma linguagem de programação permite horrores notacionais tanto quanto ou mais que a INTERCAL, como demonstrado em disputas como o International Obfuscated C Code Contest (Concurso Internacional de Código C Ofuscado). Porém, estes geralmente são esforços intencionais para se criar códigos ilegíveis, em contraste ao projeto da INTERCAL, que força praticamente todo código a ser ilegível. De acordo com o manual da INTERCAL, "o objetivo ao se projetar a INTERCAL era não ter precedentes", supostamente nem em características de controle de fluxo, nem em operadores de manipulação de dados. Os projetistas foram parcialmente bem-sucedidos; o único precedente conhecido é uma instrução de máquina [1] em um computador mainframe soviético , lançado em 1967, que é efetivamente equivalente ao operador SELECT da INTERCAL.
Abstract from DBpedia / Wikipedia · CC BY-SA