Polyglotter, der (rechnet)

In der Computerwissenschaft ist ein Polyglotter ein Computerprogramm oder in einer gültigen Form von vielfachen Programmiersprachen geschriebene Schrift, die dieselben Operationen durchführt oder der Programmiersprache unabhängige Produktion gepflegt hat, es zu kompilieren oder zu interpretieren.

Allgemein werden Polyglotte in einer Kombination von C geschrieben (der Wiederdefinition von Jetons mit einem Vorverarbeiter erlaubt), und eine scripting Sprache wie Lispeln, Perl oder sch.

Methoden

Die zwei meistens verwendeten Techniken, für ein vielsprachiges Programm zu bauen, sollen liberalen Gebrauch von Sprachen machen, die verschiedene Charaktere für Anmerkungen verwenden und verschiedene Jetons als andere auf verschiedenen Sprachen wiederzudefinieren. Häufig wird guter Gebrauch mit Syntax-Marotten gemacht. Diese werden in diesem öffentlichen Bereichspolyglotten demonstriert, der in ANSI C, PHP und heftigem Schlag geschrieben ist:

#define / *

#

//2>/dev/null; x=a;

$x=5;//2>/dev/null \;

wenn (($x))

//2>/dev/null; dann

kehren Sie 0 zurück;

//2>/dev/null; fi

#define e?>

#define b * /

#include

#define wichtig int Haupt(Leere)

#define printf printf (

#define wahr)

#define fungieren

fungieren Sie wichtig

{\

printf "Hallo, Welt! \n" true/* 2>/dev/null | grep-v true*/;

kehren Sie 0 zurück;

}\

#define c / *

wichtiger

#*/

Bemerken Sie den folgenden:

  • Ein Kuddelmuddel-Zeichen kennzeichnet eine Vorverarbeiter-Behauptung in C, aber ist eine Anmerkung sowohl im heftigen Schlag als auch in PHP.
  • "//" ist eine Anmerkung sowohl in PHP als auch in C ++ und das Wurzelverzeichnis im heftigen Schlag.
  • Wiederrichtung von Shell wird verwendet, um unerwünschte Produktionen zu beseitigen.
  • Sogar auf dem kommentierten haben Linien, "" und "" Indikatoren PHP noch Wirkung.
  • Die Behauptung "" ist sowohl in PHP als auch in heftigem Schlag gültig; C #defines werden verwendet, um es in "" während der Übersetzung umzuwandeln.
  • Anmerkungshinweise können verbunden werden, um verschiedene Operationen durchzuführen.
  • ""ist eine gültige Behauptung sowohl im heftigen Schlag als auch in PHP.
  • ist eine eingebaute Schale des heftigen Schlags, der zum C printf abgesehen von seiner Weglassung von Klammern identisch ist (den der C Vorverarbeiter hinzufügt, ob das mit einem C Bearbeiter kompiliert wird).
  • Die drei Endlinien werden nur durch den heftigen Schlag verwendet, um die Funktion zu nennen. In PHP wird die Funktion definiert, aber nicht genannt, und in C gibt es kein Bedürfnis, die Funktion ausführlich zu nennen.

Einige weniger-gemeinsame-Sprachen bieten auch Möglichkeiten an, vielsprachigen Code zu schaffen. Hier ist eine kleine Probe, geschrieben gleichzeitig in SNOBOL4, Win32Forth, PureBasicv4.x und REBOL:

*BUFFER: A.A;. (Hallo, Welt!) zum Umfassen?

MakroskipThis; PRODUKTION = Rotforelle (10) "hallo, Welt!"

; Eingang von OneKeyInput ('Rotforelle', 1, '[-f2-q1]'); Rotforelle

Ende; SNOBOL4 + PureBASIC + Win32Forth + REBOL =


Verschluss (Philosophie) / Das Verbrennen
Impressum & Datenschutz