Weird-Computer-Code

Jeder braucht Pause einmal in eine Weile. Wenn Sie ein fleißiger Student der Programmiersprache Java sind, sollten Sie Zeit aus einen Blick auf einige Programmiersprache Macken nehmen - eigenartige Dinge, die Sie in Java und andere Programmiersprachen finden. Die meisten dieser Macken sind amüsant, und einige von ihnen sind geradezu umwerfend!

verschleierten Code

Wenn Sie besuchen https://weblogs.java.net/blog/forax/archive/2006/10/obfuscated_java.html, Sie finden eine der seltsamsten Java-Programme die jemals geschrieben wurden:

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

Mit bloßem Auge sieht das Programm wie eine große Kommentar. Und wenn Sie den Code in einer Eclipse-Editor einfügen, die meisten der Code ist grün (was bedeutet, dass es Teil eines Kommentars ist). Wenn Sie den Code ausführen, sollte nichts passieren. Aber der Schein trügt. Wenn Sie diesen Code ausführen, ist der Ausgang

Hallo!

Dieser Code ist ein Beispiel für einen verschleierten Programm. Ein verschleierten Programm ist eine, die absichtlich schwierig für Menschen zu lesen und zu verstehen. Es gibt zwei Gründe für verschleierten Code zu erstellen: (1) für Spaß, und (2) andere Personen zu verhindern, das Verständnis Ihrer Codierung Tricks und Ihre Ideen zu stehlen.

Viele kommerzielle Produkte können regelmäßig Code in verschleierten Code drehen, aber die lustigsten Beispiele kommen von Leuten, die verschleierten Code von Grund auf neu zu schreiben. Weitere Beispiele für verschleierten Java-Code, Besuch Semantic Designs und das Blog Notiz an mich selbst.

Surprising Sprachverhalten

Einige Sprachen haben Eigenschaften, die Intuitionen trotzen. Das folgende Beispiel (und viele andere) sind aus stackoverflow.com.

In diesem Beispiel sind die Linien zwischen den Tags und javascript-Code. javascript hat wenig mit Java zu tun. (Die Namen Java und javascript nur aus historischen Gründen ähnlich sind.) Menschen mit javascript in erster Linie als Sprache für Code in Webseiten einbetten.

In javascript sind die Ausdrücke '5' + 3 und '5' - 3 sehr ähnlich sind, so denke, man würde, dass die beiden Ausdrücke die gleiche Art und Weise verhalten. Aber es ist einfach nicht so! Wenn Sie diesen Abschnitt des Codes in einem Web-Browser besuchen, sehen Sie

532

Das Pluszeichen verkettet den Charakter 5 und das Zeichen 3- das Minuszeichen subtrahiert die Zahl 3 aus der Anzahl 5. Sie würden es nie erraten!

Selbst reproduzierenden Programme

EIN Quine ist ein Programm, das eine Kopie von sich selbst, trotz der Tatsache gibt, dass es keine Eingabe empfängt. Der Standort Die Quine Seite ist ein Repository für Quine Beispiele. Die Website enthält Quines in etwa 50 verschiedenen Programmiersprachen. Das folgende Programm (erstellt von Bertram Felgenhauer) ist fast ein Quine - "fast", weil es eine Quine zu machen, haben Sie ohne Zeilenumbrüche in einer Zeile das gesamte Programm zu geben. (Für die Zwecke dieses Artikels sind die Zeilenumbrüche vorhanden, so dass Sie sofort den gesamten Code zu sehen.)

Klasse S {public static void main (String [] a) {String s = "Klasse 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)) -}}

Die Welt der Programmiersprachen

Sie können einige frische Gesicht Programmierer sagen hören, dass sie Code lernen wollen in alle die Programmiersprachen. Viel Glück! Es gibt Tausende von Computer-Programmiersprachen. (Sie können die Einflüsse sehen, dass populäre Sprachen auf einander haben durch den Besuch IBM.com.)

Die Seite esolangs.org listet über 800 der mehr obskure Sprachen. Etwa einer von zehn dieser Sprachen wurden als Witze erstellt. (Die Witz Sprachen haben ihre eigenen speziellen Seite auf https://esolangs.org/wiki/Joke_language_list.)

Eine bevorzugte Sprache ist nicht in der Esolang Liste. Es ist die Unbounded Register Maschinensprache, die nur drei Arten von Anweisungen hat. Sie können sich 1 zu einer Variablen addieren, subtrahieren 1 von einer Variable oder Schleife während ein Wert Variable nicht Null ist.

meineVar ++ meineVar - während (! myVar = 0) {}

Das ist alles, was Sie in der Unbounded Register Maschinensprache zu tun. Aber hier ist die Pointe: Durch Aussagen kombiniert, einer nach dem anderen, in dieser Sprache, können Sie jede Strategie implementieren, die Sie in Java (oder in einer anderen für allgemeine Zwecke, industrietauglichen Programmiersprache) implementieren können. Für weitere Informationen besuchen Sie Portland State University Seite.

Menü