Estranho código de computador

Todo mundo precisa de pausa de vez em quando. Se você é um estudante de hard-working da linguagem de programação Java, você deve ter tempo livre para olhar algumas peculiaridades de linguagem de programação - coisas estranhas que você encontra em Java e outras linguagens de programação. A maioria dessas peculiaridades são divertidos, e alguns deles são francamente incompreensível!

código ofuscado

Se você visitar https://weblogs.java.net/blog/forax/archive/2006/10/obfuscated_java.html, você encontrar um dos programas Java mais estranhas já escritos:

/ * Apenas JavaPeter van der LindenApril 1, 1996.u0050u0076u0064u004cu0020u0031u0020u0041u0070u0072u0039u0036u002au002fu0020u0063u006cu0061u0073u0073u0020u0068u0020u007bu0020u0020u0070u0075u0062u006cu0069u0063u0020u0020u0020u0020u0073u0074u0061u0074u0069u0063u0020u0020u0076u006fu0069u0064u006du0061u0069u006eu0028u0020u0053u0074u0072u0069u006eu0067u005bu005du0061u0029u0020u007bu0053u0079u0073u0074u0065u006du002eu006fu0075u0074u002eu0070u0072u0069u006eu0074u006cu006eu0028u0022u0048u0069u0021u0022u0029u003bu007du007du002fu002a*/

A olho nu, o programa se parece com um grande comentário. E se você cole o código em um editor de Eclipse, a maior parte do código é verde (o que significa que ele é parte de um comentário). Quando você executa o código, nada deve acontecer. Mas as aparências enganam. Quando você executar este código, a saída é

Oi!

Este código é um exemplo de um programa de ofuscado. A ofuscado programa é um que é intencionalmente difícil para as pessoas a ler e compreender. Há duas razões para a criação de código ofuscado: (1) para se divertir, e (2) para manter outras pessoas de compreensão de seus truques de codificação e roubar suas idéias.

Muitos produtos comerciais pode transformar código regular em código ofuscado, mas os exemplos mais divertidos vêm de pessoas que escrevem código ofuscado a partir do zero. Para outros exemplos de ofuscado código Java, visita Semantic Designs eo blog Nota para si mesmo.

comportamento linguagem surpreendente

Algumas línguas têm características que desafiam a intuição. O exemplo a seguir (e muitos outros) são de stackoverflow.com.

Neste exemplo, as linhas entre as tags são códigos javascript. javascript tem pouco a ver com Java. (Os nomes Java e javascript são semelhantes apenas por razões históricas.) As pessoas usam javascript principalmente como uma linguagem para a incorporação de código dentro de páginas da web.

Em javascript, as expressões '5' + 3 e '5' - 3 são muito semelhantes, de modo que você iria adivinhar que as duas expressões se comportam da mesma maneira. Mas não é só por isso! Se você visitar o código desta seção em um navegador da web, você vê

532

O sinal de adição concatena o personagem 5 eo caráter 3- o sinal de subtração subtrai o número 3 a partir do número 5. Você nunca adivinharia isso!

programas de auto-reprodução

UMA Quine é um programa que produz uma cópia de si mesmo, apesar do facto de que não recebe nenhuma entrada. O site A página Quine é um repositório para exemplos Quine. O site contém Quines em cerca de 50 diferentes linguagens de programação. O programa a seguir (criado por Bertram Felgenhauer) é quase um Quine - "quase", porque, para torná-lo um Quine, você tem que digitar o programa inteiro em uma linha sem quebras de linha. (Para os fins deste artigo, as quebras de linha estão presentes de modo que você pode ver todo o código de uma só vez.)

Classe S {public static void main (String [] a) {String s = "classe S {public static void main (String [] a) {String s = -char c = 34 System.out.println (s.substring (0,52) + c + s + c + s.substring (52)) -}} "- char c = 34 System.out.println (s.substring (0,52) + c + s + c + s.substring (52)) -}}

O mundo das linguagens de programação

Você pode ouvir alguns programadores enfrentada fresca dizer que eles querem aprender a código todos as linguagens de programação. Boa sorte! Existem milhares de linguagens de programação de computador. (Você pode ver as influências que as línguas populares têm umas sobre as outras, visitando IBM.com.)

A página esolangs.org Listas de cerca de 800 das línguas mais obscuros. Cerca de um em cada dez dessas línguas foram criadas como piadas. (As línguas piada têm a sua própria página especial na https://esolangs.org/wiki/Joke_language_list.)

Uma linguagem favorita não está na lista Esolang. É a linguagem de máquina Register Unbounded, que tem apenas três tipos de instrução. Você pode adicionar 1 a uma variável, subtrair 1 a partir de uma variável, ou loop while valor de uma variável não é zero.

myVar ++ myVar - while (! myVar = 0) {}

Isso é tudo o que você pode fazer na língua Register Máquina Unbounded. Mas aqui é a punch line: Ao combinar declarações, um após o outro, nesta língua, você pode implementar qualquer estratégia que você pode implementar em Java (ou em qualquer outro de propósito geral, linguagem de programação de força industrial). Para mais informações visite A página do Portland State University.

menu