Ziel ist es, ein einfaches "99 Bottles of Beer" -Programm zu schreiben, das in mindestens 2 verschiedenen Sprachen gültig ist (z. B. nicht Python 2 und Python 3). Es muss eine vollständige Datei sein, die ausgeführt oder kompiliert wird.
Interessante Antworten sollten aufgewertet werden, aber auch die Kompaktheit zählt. (Natürlich ist die Sprachenvielfalt das Hauptziel.)
EDIT: Ich würde sagen, dass normaler C-Code, der dasselbe mit C ++ und Objective-C macht, als Ableitung gilt. Der Code sollte clevere Dinge tun, damit Zeilen mit unterschiedlichen Sprachen unterschiedliche Bedeutungen haben.
popularity-contest
polyglot
MadTux
quelle
quelle
Antworten:
C, Perl, PHP, Python, Ruby
Update : Ich habe eine jsfiddle zusammengestellt, mit deren Hilfe der Pfad durch den Code für jede der fünf Sprachen visualisiert werden kann: http://jsfiddle.net/wK6bD/4/embedded/result/
Eine alternative Version, die alle Kommentare entfernt und alle unbedeutenden Zeichenfolgen, regulären Ausdrücke und Ersetzungsmuster komprimiert: http://jsfiddle.net/wK6bD/5/embedded/result/
Und ich habe ein Byte gespeichert, während ich dabei war. Es stellte sich heraus, dass C ein unnötiges Semikolon hatte;)
Bitte beachten Sie : Diese Datei muss mit gemischten Zeilenenden gespeichert werden . Alle Zeilen sollten mit
LF
(char 10 , aka unix-style) abgeschlossen werden, mit Ausnahme der beiden markierten Zeilen-- THIS LINE ENDS WITH CR --
, die mitCR
(char 13 , aka mac-style) abgeschlossen werden sollen. Ich empfehle Notepad ++ oder einen anderen Texteditor, mit dem Sie die Zeilenenden manuell bearbeiten können.Für PHP wird vorausgesetzt, dass
output_buffering
aktiviert ist. Laut Dokumentation ist diesOff
unabhängig von denini
Einstellungen fest codiert, sodass es explizit (erneut) aktiviert werden muss:Dadurch wird ein 4-KB-Puffer aktiviert, der als "empfohlener" Wert angegeben wird. Wenn Sie einen der mitgelieferten
ini
Server verwenden, ist dieser bereits festgelegt, sodass er von jedem Webserver im Ist-Zustand ausgeführt werden sollte.Die gesamte Dateigröße beträgt 823 Bytes (ohne die Kommentare zu den Zeilenenden), durchschnittlich 164,6 Bytes pro Sprache.
Getestete Versionen
C - gcc 4.8.1, cl 15.00
Perl - 5.16.2
PHP - 5.4.16
Python - 2.7.6, 3.3.4
Ruby - 1.8.7, 1.9.3
Die Ausgabe ist für alle fünf Sprachen identisch (siehe unten).
Perl, PHP
Ich mag dieses, weil es so kurz ist, also lasse ich es. Es zeigt auch, wie viel von einem Perl-PHP sein soll;)
Beispielnutzung:
quelle
C + Ruby
Sie sind eigentlich ziemlich ähnlich, wenn Sie die Syntax normalisieren! : P
quelle
JavaScript (SpiderMonkey / NodeJS), Perl, PHP, Ruby
EDIT: Hinzugefügt und
Ruby
EDIT 2:
Der Code:
Die Ausgabe:
quelle
<?php
nicht ausgegeben Hallo Welt der Fall ist), können Sie eine andere Sprache hinzufügen könnte , indem nur die Verwendung von9
einmal$i = 9*11;
C ++ und PHP
Ich dachte, ich würde es versuchen.
EDIT: Komprimiert es ein bisschen.
Dies wird gut als C ++ kompiliert und spuckt ein paar nette HTML aus, wenn es mit PHP ausgeführt wird. In beiden Fällen lautet die Ausgabe:
quelle
Haskell, PHP
Eine funktionale und eine imperative Sprache verbinden!
In Haskell habe ich die Funktion definiert, die
*/
das Arbeiten mit PHP-Kommentaren erheblich erleichtert hat!quelle
Brainfuck, Englisch
Quelle für BF: http://www.99-bottles-of-beer.net/language-brainfuck-1718.html
quelle
,
und.
werden Probleme verursachen. Beheben Sie dies, indem Sie[
vor dem englischen Teil und]
am Ende hinzufügen .beef
und sie verursachen keine Probleme.,
liest einNULL
Zeichen (U+0000
).PHP und 아희 (Aheui)
Aheui wurde mit naheui getestet .
Ich weiß, dass es betrügt, aber es funktioniert trotzdem.
quelle
Dies wird in Python 3 und in Julia funktionieren.
quelle
Dies verstößt gegen die Regeln, aber ich denke auf amüsante Weise.
Es ist in C und C ++ geschrieben. In C ++ macht es einen hübschen Standard 99 Flaschen.
In C füllt es zuerst die Wand auf und leert sie dann.
quelle
BrainFuck und Python 2
Dies wird unter CPython2.7 (und wahrscheinlich auch unter anderen) sowie unter einem BrainFuck-Interpreter kompiliert und ausgeführt. Dies sind zwei verschiedene Sprachen mit sehr geringer Überlappung, und diese Antwort ist total betrügerisch.
Die zweite Zeile ist der BrainFuck-Run-Code. BrainFuck-Interpreter sollten den Rest des Codes ignorieren, und Online-Interpreter führen ihn aus.
Der Rest des Codes ist der Python-Code. Ursprünglich wollte es nur den gesamten Text drucken, aber das macht nicht so viel Spaß. Dasselbe sollte auch für den BrainFuck-Code geschehen, der jedoch durch die Zeichenbeschränkungen in Posts (um etwa 270.000 Zeichen) durchgebrannt war.
quelle
Lua und (F) ASM
Dank an Revolution für den Fasm One Liner, obwohl alles zwischen Zeile 1 und 3 von Lua ignoriert wird, hätte ich dort ein beliebig langes FASM-Programm schreiben können.
Der Trick ist, dass Sie in lua ein Semikolon verwenden können, um Anweisungen zu trennen, um mehrere Anweisungen in dieselbe Zeile zu schreiben, während in fasm ein Semikolon den Anfang eines Kommentars darstellt. S = 10; ist eine gültige Zuordnung in beiden Sprachen, alles andere ist ziemlich offensichtlich
quelle
J, Python 2.x.
Ich bin ein bisschen zu spät zur Party, aber na ja. Hier ist nichts Besonderes, denn es ist mein erstes Mal, dass ich polyglottiere. Es ist unmöglich, Python richtig mit J zu mischen. Also habe ich J in Python auskommentiert und Python zu einem String-Literal in J gemacht. Ich werde wahrscheinlich später weitere Sprachen hinzufügen.
quelle
C # + Ruby
zu starten (Ruby):
ruby -x script.cs
quelle
Dies sollte in C, C ++ und Objective-C funktionieren. Objective-C ++ wurde noch nicht getestet, wird aber wahrscheinlich funktionieren:
quelle
is valid in at least 2 distinct languages (e.g. not Python2 and Python3)
- Ich würde sagen, dass dies diese Anforderung absolut nicht erfüllt. OPs Anruf allerdings.Rubin, Golfscript
quelle