この言語はいつリリースされましたか?


92

あなたの挑戦は簡単です。STDOUTか、それが書かれている言語がリリースされた年にファイルに出力するプログラムを書く必要があります。これは非常に単純なタスクであるため、ツイストは、できるだけ多くの異なる言語で作成する必要があることです。

スコアは、正しく印刷された異なる年の総数です。

使用する言語ごとに、

  • 使用している言語のバージョンを指定します。(複数のバージョンがある場合)

  • そのバージョンが最初にリリースされた年を指定し、

  • バージョン/言語の日付を証明するページへのリンクを提供します。

バージョン番号(該当する場合)とリリース日を指定している限り、これらのいずれもリリース日証明としてカウントされます。

  • ウィキペディアのページ。

  • esolangsページ。

  • 言語の公式ウェブサイト。githubページまたは同様のページは、リリース日があればカウントされます。(コードのどこかにバージョン番号がない限り、最新のコミットはカウントされません)

言語の複数のバージョンまたはリリースがない場合は、その言語の最初のリリース日を使用してください。

同じ言語のマイナーバージョンではない限り、彼らは別の年から来て、まだ正確な出力を生成するように、など、さまざまな言語を数えます。使用している言語の現在のバージョンに関する情報(リリース日を含む)を提供する組み込み機能使用できません。たとえば、これは無効なpython送信です。

import platform
i = platform.python_version()
if i == '3.5':
    print(2015)
if i == '3.4':
    print(2014)
if i == '3.3':
    print(2012)
...

どちらの提出物が最も明確な年を正しく印刷しても勝ちます!

ルール

  • 各プログラムは、言語の年印刷する必要があります。末尾の改行(windowsスタイルまたは* nixスタイル)が許可されます。

  • プログラムは入力を受け付けません。

  • 同点の場合、バイト単位で記録された最短のコードが優先されます。これには任意のエンコーディングを使用できますが、すべてのプログラムで同じエンコーディングを使用する必要があります。

  • 正しい出力がまだSTDOUTまたはファイルに出力さいる限り、どのプログラムでもSTDERRに出力したり、実行時/コンパイル時のエラーや警告スローしたりできます。

  • 異なる言語では異なるIOメソッドを使用できますが、ほとんどすべてが完全なプログラムであり(このチャレンジでは機能しない)、許可されているデフォルトのIOメソッドの 1つに従います

ハッピーゴルフポリグロット!


以来ピップはちょうどGitHubのを持っている、ウィキペディアやEsolangsページを持っていない、と単語のGitHubの感覚で任意の「リリース」を持っていない、それはこの挑戦での使用のために資格がありませんか?(バージョン番号があり、これはコミットのたびに更新されます。)
DLosc

1
@dloscまあ、不必要に言語を除外したくはありませんが、「リリース日」が完全に客観的であることを確認したいと思います。より多くの言語を含むリリース日を実施するより良い方法を考えられますか?
DJMcMayhem

4
(基本的にすべてのサブミッションで2003を印刷するためにホワイトスペースコードを挿入します
バリューインク

8
「使用している言語の現在のバージョンに関する情報を提供するビルトインを使用することはできません。」私の強調。インタープリターファイルでビルド日を検索できますか?
アダム

2
私はこれがまったく重複しているとは思わない。たとえそうであっても、このチャレンジは「オリジナル」として受け入れられるべきです。なぜなら、このチャレンジは他のチャレンジとは異なり、ユーザーが外に出て使用しているものについて学ぶことを奨励するからです。

回答:


159

2Dプログラミング言語の簡単な歴史:16(+2)年

v19977/2{@{{4{\_______>/02&&&#????        *    P+++++1P1P-1P+1E     *                         *
\'\02'oo100@n590@n;                       *                         *                         *
>"8991",,,;5-;,@                          *                         *                         *
   *                                      *                         *                         *
  \ *              ++++++++++++++++++++++++  ++++++++++++++++++++++++  ++O--OO++++++++OX*******      *
     *   #2018O@       *                  *      *                  *      *                  *      *
      *                *                  *      *                  *      *                  *      *
       *               *                  *      *                  *      *                  *      *
        *           ****    ****          *   ****    ****          *   ****    ****          *   ****    *****
         *         *   *   *    *         *  *   *   *    *         *  *   *   *    *         *  *   *   *
          *        *   *  *      *        *  *   *  *      *        *  *   *  *      *        *  *   *  *
           *      *    * ****     *       * *    * ****     *       * *    * ****     *       * *    * ****
            *     *    *     *            * *    *     *            * *    *     *            * *    *     *
R"2014";     *****      *******       ******      *******       ******      *******       ******      *******

 x
x%"2010"x
 x

$'main'        \/\/\/\
 \-[2005]o-#   \++++++\
               /++++++/
               \++++++\
               /++++++/
               \/\/\/\++.--..+++.#

S1^2^2^6^8MAOUOAOOF

      /K:0:1:@

  >      "7102"4&o@

|        }+++++[>++++++++++<-]>.--..++++++.@

私は2Dプログラミング言語が好きだと言いましたか?

1993:Befunge

言語(おそらく、最後のセクションを参照)がすべてを開始した言語。Befungeでは、で制御フローをリダイレクトできます<v>^が、今ではどこにでもあるミラーで\あり/、まだありませんでした。Anarchy Golfで使用されるBefungeインタープリターは、不明なコマンドを無視します。これを使用して、Befungeファミリーと> <>ファミリーを区別できます。したがって、Befungeによって実行されるコードは次のとおりです。

v
\
>"8991",,,;5-;,@

"8991"、個々のキャラクターをスタックにプッシュします。,,,それらの最初の3つを印刷します。その後;は不明で(Befunge 98と区別するために使用します)、a 5-8変換し、プログラムを終了する前にそれ3,出力し@ます。

1997:ウィアード

ソリューションのこの部分を書くことは、おそらく他のすべてを書いてそれら合わせる限り私にかかりました...

Wierdは、スペースと他のすべての2つのシンボルのみを知っています。命令ポインターは、左上隅から斜めに開始し、常に可能な限りまっすぐに進むように、スペース以外の文字で形成されたパスをたどろうとします。パスの曲がりは実際の命令を形成します(どの命令を実行するかはターンの程度によって決まります)。Wierdが見ているコードは次のとおりです。

v1997                                     *                         *                         *
 '                                        *                         *                         *
  8                                       *                         *                         *
   *                                      *                         *                         *
    *              ++++++++++++++++++++++++  ++++++++++++++++++++++++  ++O--OO++++++++OX*******      *
     *                 *                  *      *                  *      *                  *      *
      *                *                  *      *                  *      *                  *      *
       *               *                  *      *                  *      *                  *      *
        *           ****    ****          *   ****    ****          *   ****    ****          *   ****    *****
         *         *   *   *    *         *  *   *   *    *         *  *   *   *    *         *  *   *   *
          *        *   *  *      *        *  *   *  *      *        *  *   *  *      *        *  *   *  *
           *      *    * ****     *       * *    * ****     *       * *    * ****     *       * *    * ****
            *     *    *     *            * *    *     *            * *    *     *            * *    *     *
             *****      *******       ******      *******       ******      *******       ******      *******

1997上部には、実際に実行されますが、奇妙で、私たちは、ソースコードから、それを読むことができますされていない多くのそれのように見えない場合でも、(4桁の数字自体の文字コードを構築しようとするよりも短いです。.. 。)。このすべてを分解するつもりはありませんが、4つの繰り返しセクションをはっきりと見ることができます。これは、最初1にスタックに格納し、次にこれらの4つのセクションのそれぞれがこれをインクリメントして1から分岐することです。下の枝は別の枝を押します1、これらの座標でソース文字を取得して出力しますが、上部のブランチは次のセクションにリダイレクトされます。パスの端がなぜ不必要に長いのか疑問に思うかもしれませんが、それはWierdがパスの端に達すると、現在のブランチを終了することを決定する前に近くのパスにジャンプしようとするためです。これを回避するには、これらの端を他のコードから十分に離す必要があります。

1998年:Befunge 98

1998年にBefungeは、任意の次元(および任意のトポロジ)に一般化できる非常に厳密な仕様で、かなりよく知られた更新を取得しました。ただし、主にBefungeとの後方互換性があるため、2つをポリグロットするのはかなり簡単です。このBefungeにはまだミラーがなかったため、実行されたパスはBefunge 93と同じです。

v
\
>"8991",,,;5-;,@

違いは、Befunge 98はを無視しないこと;です。代わりに、次のコマンドまでのすべてのコマンド;が無視されるという点で、コメントのような働きをします。このように、我々はそれをデクリメントしていない83して印刷し1998ているよう。

2001:宇宙の旅... ピンポン

2001年はPietの年ですが、他のすべてのプログラムで画像ファイルをポリグロット化する気はしなかったので、あまり知られていない2D言語です。かなり多くの機能があるようです(これは使用しません)。オリジナルのインタープリター見つけてくれたSp3000に感謝します(公式ウェブサイトのアーカイブ版で唯一のデッドリンクです)。

PingPongは、ミラーのみを持ち、<v>^リダイレクタを持たないという点で、少し変わっています。そのため、これv19977は開始時に移動し、次にミラーに到達し、ミラーを下部にラップします。関連するコードは次のとおりです。

v19977/

...

      /K:0:1:@

...

実際のコードは非常に単純です:Kpushes 20、数字自体がプッシュし、:整数を出力し@てプログラムを終了します。

2003:SNUSP

SNUSPは明示的なエントリポイントをサポートしているため、これは物事が少し簡単になる最初の言語です。そのエントリポイントはでマークされてい$ます。エソランに関するいくつかの記事から判断すると、この言語は他のいくつかの言語に影響を与えましたが、残念なことに、結局のところ、それは単なるBrainfuck派生物です。そうは言っても、現在のセルを48に設定する方法は非常に巧妙だと思います(そしてesolangsの記事から盗まれました)。コードの関連部分は次のとおりです。

$'main'        \/\/\/\
               \++++++\
               /++++++/
               \++++++\
               /++++++/
               \/\/\/\++.--..+++.#

これらは24 +秒で、ミラーはそれぞれのIPを正確に2回送信します。

2004:Axo

何らかの理由で、この言語はありません持っている<^>が、代わりに通常のリダイレクタをvそれが使用しています%。したがって、これは最初の行を移動するだけです。関連するコードは次のとおりです。

v19977/2{@{{4{\

最初に数桁をプッシュし、除算を実行します。次に、を2{印刷して2@スタックをクリアします。{{2つの(暗黙の)を出力し0ます。プログラムを4{出力し4\終了します。

2005:レール

2005年は難しい選択でした。いいえ、他の年のために開始し、どちらも、私はできるだけ多くの2Dの言語を見つけ、そしてADJUSTとアーチがありまし低く(それらは容易加算ただろう)、左コーナー。Railは好きですが、明示的なエントリポイントがあるので、追加するのも難しくありませんでした。Railは、$'main'で始まる行を探し、から南東に移動し始め$ます。つまり、関連するコードは次のとおりです。

$'main'
 \-[2005]o-#

\そして-ちょうどトラック(空命令)です。[2005]文字列リテラルであるo前に印刷し#、プログラムを終了します。

2006:BestFriends.js

二次元のブレインファック。今年は、黒と呼ばれる別の興味深い言語があります。これは、座標(3,3)(1ベース)から始まります。通訳が見つかりませんでした。そのため、代わりに別のBF誘導体を使用する必要があります...

この方法の興味深い点は、他のほとんどの2D言語のように、グリッドを改行で行にフォーマットしないことです。代わりに|、行区切り文字として使用されます。私は|他の言語には使用していなかったので|、BF.jsに関する限り、プログラムの残りの部分全体を1行にする最後の行に単純に置くことができました。関連するコードは次の|とおりです(実際の改行に変換します):

v19977/2{...
        }+++++[>++++++++++<-]>.--..++++++.@

BF.jsはミラーもミラーも使用しませ <v>^ん。制御フローをリダイレクトする唯一の方法は{}、IPの方向を90°変えることです。したがって、これらの中括弧はIPを2行目に移動します。残りは、セルを50(コードポイント)に設定し、値を少しシフトして2印刷2006する、単純なBrainfuckソリューション(特によくゴルフされていません)です。@プログラムを終了します。

2008:BrainSpace 1.0

今年は、複数のエントリポイントを使用し、FissionZiimの恋人のように見えるDOBELAを使用したかったのです。残念ながら、私は通訳を機能させることができませんでした。それで、もう一つのBF派生物があります(最後の派生物、私は約束します)。

最後のものとは対照的に、これは両方 <v>^とミラーを知っているので、関連するコードは次のとおりです。

v
\'\
  8

  \ *              ++++++++++++++++++++++++  ++++++++++++++++++++++++  ++O--OO++++++++OX

これには通常のBFスタイルの[]ループがありません(代わりに実際の2Dループを形成する必要があります)50'8は無視されることに注意してください。これは、無視*できる条件付きトランポリンであり、OはBrainfuck's .です。Xプログラムを終了します。

2009:> <>

おそらくこれらの部品の周りで最も人気のあるFungeoid(Befunge自体以外)。> <>には<v>^ミラーとミラーの両方がありますが、文字列リテラルもあるため、実行されるコードは次のとおりです。

v
\'\02'oo100@n590@n;

文字列リテラルは、主\にBrainSpace 1.0で使用したものをスキップするのに役立ちますが、その間、最初の2文字をプッシュすることもできます。ooそれらを印刷します。次に100、3桁を押し@て、一番上の数字を一番下に押し込み、下にn印刷し0ます。を590印刷するときにも同じことを繰り返し9ます。なぜ私が2009そのまま印刷しないのか疑問に思っているなら、2015年を待ってください。;プログラムを終了します。

2010:枢機inal

これは、に明示的なエントリポイントがあるため、単純でした%。ただし、これはすべての方向に4つのIPを作成するため(言語名だと思います)、そのうち3つを削除する必要があります。関連するコードは次のとおりです。

 x
x%"2010"x
 x

まあ、そうだろう。(Cardinalでは、文字列モードは文字をスタックにプッシュする代わりに直接印刷します。)

2011:RunR

明示的なエントリポイントを持つ別の言語(David Cattによる非常に優れたエソランをいくつか作成)、今回はS。これにより、関連するコードがこの部分になります。

S1^2^2^6^8MAOUOAOOF

ほとんどの操作は一種のレジスタで動作し、バイナリ操作では値を明示的にスタックに移動する必要があるため、RunRは少し興味深いです。数字はレジスタ値を自身に設定し^、現在のレジスタをスタックにプッシュします。次いで、M乗算は、(スタックからポップ倍レジスタ値)がU減算され、A加算され、O出力されます。Fプログラムを終了します。

2012:Ropy

Wierdと同様に、Ropyはスペース以外の文字のセクションを追おうとしますが、ここでは曲げがコマンドを決定しません。実際、選択された方向がスタックの最上部に依存するという点で、Ropyは私の迷宮に似ていることがわかりました。ただし、Ropyは最初の行に沿って移動するだけなので、ここで実際に心配する必要はありません。

v19977/2{@{{4{\_______>/02&&&#????

まで無視できるものがたくさんあり>ます。知っておく必要があるのは、その時点でスタックの最上部がaに4なり、2下にあることです。

>を複製し4/それを分割する分割1です。その後、プッシュし02ます。&&&スタックの上位4つの数字を逆の順序で結合し、を与え2012ます。#出力します。????それ以外の場合はスタックの最上部も出力されるため、スタックをクリアするだけです。

興味のある一点は、第二のことです7では、19977理由Ropyを加えました。/Ropy の部門はtop / second(多くのスタックベースの言語での通常の順序とは反対に)どこで7 / 9を提供し0ます。スタックの一番上にゼロがあった場合、Ropyは動きの方向でいくつかのワイルドなことをするので、もう一方7をプッシュしてスタックの一番上が正のままで、Ropyが東に移動し続けることを保証する必要があります。

2014:核分裂

明示的なエントリポイントにより、これは簡単です。RDLU対応する方向にアトム(命令ポインタ)を作成するため、関連するビットは次のとおりです。

R"2014";

あることに注意してくださいUだけでなく、ソースコードではなく、その原子が結局の1に当たる*プログラムを終了奇妙な、から(この原子はより長いがかかるRニーズは印刷すること2014)。

2015:ゴル> <>

Sp3000のより強力な> <>派生物。主に> <>と下位互換性があるため、実行されるコードは次のようになります。

v
\'\02'oo100@n590@n;

ただし、の回転方向@が変更されました。これは、ポリグロットで> <>とGol> <>を区別するための標準的なトリックであるため、これはの15代わりに印刷され09ます。したがって、プログラムの後半の奇妙さ。

2016:CSL

CSLは、コマンドがすぐに実行されないという点で非常に興味深いです。代わりに、各コマンドは、コマンド・スタックにプッシュされ、eそしてEそこからコマンドを実行するために使用することができます。関連するコードは次のようになります。

v19977/2{@{{4{\_______>/02&&&#????        *    P+++++1P1P-1P+1E

したがって、Eコマンドスタック全体が実行されます。つまり、コマンドスタックの前のものが逆に実行されます。参照する必要があるのは*

1+P1-P1P1+++++P*

1sがデータスタック上に自分自身をプッシュします。+および-減少/増加です。Pスタックの一番上を印刷します。次に*、スタックの上位2つの値を乗算しようとします。ただし、スタックは空なので、これによりプログラムが終了します。


この時点で、このチャレンジが投稿された後にリリースされた言語に到達するため、スコアを実際にカウントしていません。特に、このチャレンジを自分で作成したわけではありません。ただし、それらにはいくつかの斬新なIP移動セマンティクスがあります。これにより、2D言語のこのショーケースに興味深いものを追加しながら、それらをポリグロットに簡単に収めることができました。

2017:アリス

アリスは、機能が豊富なFungeoidになるように設計されました。他の2D言語の大部分(すべてではない)との興味深い違いの1つは、IPが直交または斜めに移動できることです。これらを切り替えると、言語のほぼすべてのコマンドのセマンティクスも変更されます。さらに、Aliceは従来の<^>v方向設定器と\/ミラーの両方をサポートしていますが、ミラーはAliceで非常にユニークな動作をします(これにより、Alice IPをこれまでのコードの未使用部分に簡単に導くことができます)。

ほとんどの言語は、治療しながら、\そして/、彼らはそれを跳ね返る光線として45°の角度で鏡、IPであるかのように、アリスは、(実際のスラッシュグリフの角度に近い)67.5°の角度を持つものとして扱います、およびIPもミラー内を移動ます(したがって、言語の名前)。この角度により、ミラーは直交方向または斜め方向に沿って動きを切り替えます。さらに、順序モード(IPが対角線に沿って移動する間)の間、グリッドはラップアラウンドせず、代わりにIPがエッジで跳ね返ります(一方、カーディナルモードではラップアラウンドします)。

全体として、アリスが実行するコードは次のとおりです。

v19
\ \

...

  >      "7102"4&o@

...

IPは通常どおり左上隅から始まり、v南に送信されます。これで\、IPが北西に移動するように反映され、すぐにグリッドの左端で跳ね返ります(代わりに北東に移動します)。1無視できます。IPは上端から跳ね返り、次に南東に移動します。\IPを北に反映する別のものをヒットします。9無視することもでき、IPはグリッドの下部に折り返されます。数行後、>便宜上東にリダイレクトします。次に"7102"、のコードポイントをプッシュして20174&oこれらの4文字を出力し@、プログラムを終了します。

2018:Wumpus

Wumpusは、三角形のグリッド上の最初の2D言語であり、コード内の動きを大きく変えます(また、コードの未使用部分に簡単に到達できます)。そのため、グリッド内の各キャラクターを小さな正方形と考える代わりに、それらを交互に上向きと下向きの三角形として考える必要があります。左上隅は常に上向きの三角形です。

Wumpusのような方向設定器はありませんが<^>v、ミラーがあります\/。ただし、三角形のグリッドのため、これらは他のほとんどの言語とは異なります。IPは(通常のように)光線のように反射しますが、60°の角度を持っていると考える必要があります。したがって、東に移動するIPは、グリッドの北西軸に沿って移動します。

他のほとんどの言語との別の違いとして、グリッドのエッジは折り返されませんが、代わりにIPがエッジから跳ね返ります(エッジセルに適切なミラーが含まれているかのように)。別の楽しい小さな詳細は、三角形のグリッドを通る対角線が実際にソースコードの階段のように見えることです。

それを念頭に置いて、Wumpusによって実行されるコードは次のとおりです(.わかりやすくするためにスペースを置き換えました:

v19977/
   02
  89
 ..
..
.....*...#2018O@

ザ・はv19977私たちが無視できるだけのジャンクです。/IPを北西に送信977し、上端から跳ね返りながら(右から)再び移動します。その後、IP 2089は左端に衝突して再び東に反射される前に、多数のスペースを南西に移動します。*ジャンクでもあります。次に、最後に#2018pushし2018O印刷して@、プログラムを終了します。


行方不明の年

最後に、カバーしていない年に関するいくつかのメモ。

長年にわたって多言語で使用できる適切な言語を見つけるために2D言語を調査しているうちに、Befungeは最初の2D言語ではないことがわかりました。このタイトルは、1991年に既に作成されたBiotaが保持しているようです。残念ながら、この言語には出力がないため、この課題に使用できませんでした。

私が知る限り、2D言語は1992年と1995年には作成されていませんでした。

  • 1994年:Befungeとは独立して、Orthogonalが作成されました。言語は実際には意味的に非常に似ていますが、Orthagonalは実際にはソースコードを2Dでレイアウトしていません。代わりに、各行は(x, y, instruction)タプルです。作成者のJeff Eplerから言語仕様と元のインタープリターを入手しましたが、結局、構文が2Dではないという事実により、この言語はこの多言語にふさわしくないものになりました。
  • 1996:Orthogonal(Orthogonalの後継者(他の人が作成))が作成されましたが、このポリグロットの目的のためにOrthogonalと同じ問題を抱えています。
  • 1999:私が見つけることができた唯一の言語は、クリス・プレッシーのセルオートマトンREDGREENでした。残念ながら、前身のRUBEとは対照的に、I / Oセマンティクスはないようです。
  • 2000:Chris Presseyの別のセルオートマトン、noit o 'mnain worbがありますが、I / Oもありません。実行しようとしていないNumberixもあり、ソースコード内の非16進文字を無視するかどうかはわかりません。
  • 2002:I / OとZTのないClunkがあり、その言語仕様は私を怖がらせます。
  • 2007:ここで3つの言語を見つけました。Zetaplexは画像ベースであるため(そうではありません)、RubE On Conveyor Beltsは、プログラムの最初の行を台無しにしてしまうかなり厳密な形式のヘッダーを必要とするようです。QuintopiaによるCellbrain もありますが、特定のヘッダーが必要なようです。
  • 2013:繰り返しますが、3つの言語を見つけました。釣りはかなりの量のリストラで可能かもしれませんが、それはプログラムが有効なドックで始まることを要求するでしょう。メモリからのQuipuは、構文が厳しすぎて多くのポリグロットを作成できません。そして、Swordfishは> <>ファミリーの別のメンバーですが、残念ながら私は通訳を見つけることができませんでした。そうでなければ、これはおそらくかなり簡単に追加できるでしょう。

誰かが興味を持っているなら、ここに実装された2D言語の完全なリストがあります(この回答が投稿された時点で)私がそれらを見つけることができる限り年によってソートされています。このリストに足りないものがある場合は、完全なリストに本当に興味があるので、チャットでお知らせください


8
ワオ。それは本当に印象的です
DJMcMayhemは

@MartinEnder年ごとに2Dプログラミング言語のリストをEsolang自体に載せることを検討しましたか?
-doppelgreener

@doppelgreenerそれがどのように収まるのか完全にはわかりません。基本的には、2Dカテゴリとさまざまな年のカテゴリの交差点にすぎません。
マーティンエンダー

RubE On Conveyor Beltsのヘッダー行を修正します。タイムマシンをお持ちの場合は、サイズを事前に知らなくても13歳の私にファイルの読み方を教えることができます。(これがヘッダー行があった唯一の理由です
。IMO

1
@cairdcoinheringaahingそこに行きます。そして、2018年のWumpus、私がそれにいた間。
マーティンエンダー

117

15年、Python

バージョン: 0.9.12.0.0、2.2.0、2.2.2、2.5.0、2.5.1、3.0.0、3.1.0、3.1.3、3.2.1、3.3.0、3.3.3、 3.4.0、3.5.0および3.6.0a4。リンクされていないバージョンは、ダウンロードページにあります

0.9.1のリリース日はここにあります。残念ながら、古いバージョンが見つからなかったり、コンピューターにコンパイルの問題があったため、何年もスキップしなければなりませんでした。表されている年は1991、2000-2002、2006-2016です。

gzip圧縮バージョンを使用してArch Linuxでテスト済み。

# Note: This file needs a trailing newline due to 0.9.1

# 0.9.1: No bitwise operators
# This one errors out by division by zero.
try:
    eval('1&2')
except:
    print(1991)
    1/0

import sys

# 2.0.0: repr('\n') gives "'\012'" instead of "'\n'"
# == doesn't exist until Python 0.9.3 and <> doesn't exist in Python 3, hence we
# use <. Also, 0.9.1 doesn't have double quoted strings.
if repr('\n') < '\'\\n\'':
    print(2000)
    sys.exit()

# 2.2.0: email module still has a _Parser class - module revamped in 2.2.2
# I would use whether or not True exists as a name here, but weirdly "True"
# worked in 2.2.2 even though the docs say it was introduced in 2.3...
try:
    import email
    email._Parser
    print(2001)
    sys.exit()
except AttributeError:
    pass

# 2.2.2: a in b only works for strings a of length 1.
try:
    eval('"art" in "Martin"')
except TypeError:
    print(2002)
    sys.exit()

# 2.5.0: int() allows null bytes in integer to convert when given an explicit
# base.
try:
    print(int('2006\x00Hello, World!', 10))
    exit()
except ValueError:
    pass

# 2.5.1: pow overflows
# Note that we can't use ** here since that doesn't exist in 0.9.1.
if pow(2, 100) < 1:
    print(2007)
    exit()

# 3.0.0: round returns a float rather than an int.
if str(round(1, 0)) > '1':
    print(2008)
    exit()

# 3.1.0: bug caused complex formatting to sometimes drop the real part.
if format(complex(-0.0, 2.0), '-') < '(-':
    print(2009)
    exit()

# 3.1.3: str of a float is shorter than the repr of the same float.
if str(1.0/7) < repr(1.0/7):
    print(2010)
    exit()

# 3.2.1: For some weird reason, u'...' Unicode strings were disabled then
# re-enabled later.
try:
    eval('u"abc"')
except:
    print(2011)
    exit()

# 3.3.0: int still works without a first argument.
try:
    int(base=10)
    print(2012)
    exit()
except TypeError:
    pass

# 3.3.3: no enum module :(
try:
    import enum
except ImportError:
    print(2013)
    exit()

# 3.4.0: PEP 448 (additional unpacking generalisations) not implemented yet
try:
    eval('[*[1], *[2], *[3]]')
except SyntaxError:
    print(2014)
    exit()

# 3.5.0: No f-strings
try:
    eval('f"abc"')
except SyntaxError:
    print(2015)
    exit()

print(2016)

18
... ワオ。一部の人々が彼らの言語をどれほどよく知っているかは、今でも驚いています。それは時間を振り返るようなものです
...-wizzwizz4

Python 0はtry / exceptをサポートしていますか?
OldBunny2800

8
@ OldBunny2800驚くべきことに、そうです
Sp3000

54

短くて甘い。8 バイトの3つのAPLKJ201Dyalog 7.1

1993+1^2

1993 plus ...

K:{2}を除く最初の1つの整数{0}、つまり{0}。1993 – オンラインで試してみてください!

J:1 2 = 1; 1994 – オンラインでお試しください!

APL:LCM(1,2)= 2; 1995 – オンラインで試してみてください!


非常に素晴らしい!Iverson言語をもっと組み合わせられると思いますか?
マイル

@miles GetはKに苦労し、APL2 / APLX / APL * PLUSはあまりにも似ています。
アダム

@miles 2000年のJバージョンを知っていますか?もしそうなら2e3+?1、Dyalog 9.0.1でできます。
アダム

もう1つのクールな見通しはX^Y、Xの一部の数値とYの数値^です。Jの電力はAPLのLCMです。
アダム

2
日付が2000年までのリリースに関する機能のページjsoftware.com/release/status.htm
マイル

46

10年、12言語、2430バイト

この答えは、私とユーザー1000000000とのコラボレーションです。

簡単な言語リスト:

Brainfuck    1993
Befunge      1993
Piet         2001
Whitespace   2003
Braincopter  2005
Grass        2007
Starry       2008
Paintfuck    2008
Brainbool    2010 (11111011010)
Python 2.7.2 2011
Fission      2014
Brainflak    2016 

コードは次のとおりです。

P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""{}{}     + + +---[.     + +..  '.. +. +.. +. +. +.] + + + + + + +(((((()()()()){}){}){}){})({({} +-[<() + + + + + + +>-()])}{}<[. + + + + + + + +..-------  `             +.[-]]>)[< '
 17 12 
# > 7*::,8 +:,,2 +,@<>R"2014";]*ne*e*es*s*swWWW*swWWWW*sw*e*e*e*eeev*wn*n*n*n*ne*e*se*s*s*s*sWWwWWWw**e*eeee*vwn*n*n*n*ne*e*se*s*s*s*sWWWw*eeee*e*ne*n*nWWWWWw*ne*nWWWWWWw*w*sw*se*sWWWWWWWw*s*WWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwvwWWWwWWWWwvwWWwWWWwvwWWwWWWwvwWWwWWWwvwWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv `
255 0 255 255   0   192 192 0   192 192 0 192 192   192 255
255 192
255 255 192
255
255
0 255 255 0 255 255 0 255 255 0 255 255 0 192 192 192 255 255 255 255 255 0 192 192 0 0 255 255 255
255 0 0 255 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 0 192 192 255 255 255 255 255 255 255 255 255 255 255 255 0 192
192 0 0 255 0 192 192 0 192 192 0 192 192 0 192 192 192 255 255 192 255 255 192 255 255 0 255 255 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 0 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 255 255
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 192
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0
192 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 0 0 255 255
255 0 192 192 0 0 255 0 0 255 255 255 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 255 255 255 255 255 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 0
255 0 192 192 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 255 255 0 0 0 0 192 192 0 192 192
#   """

これを応答内に収めるために、TIOリンク全体を放棄し、ユーザーがコードを入力できる有効なインタープリターへのリンクを単に投稿します。ここでペーストビンリンクその目的のためには。

ピート

PPMファイル形式、私たちが使用ピエト・インタプリタから読み取ることができる画像フォーマットの一つは、平文のASCIIバージョンを持っています。これを使用して、他の言語のコードを、PietとBraincopterが読み取った画像ファイルにジャンクとして埋め込むことができました。

画像は次のようになります。

生画像

すべての画像がPietにとって重要なわけではありません。以下は、Pietがコードをたどるパスを強調する行のあるバージョンです。

ピートパス

プログラムを作成する方法は多少複雑ですが、プログラム自体は非常に単純です。画像の上部に沿っ1 10 10 10 2て、スタックにプッシュします。側面に沿って3倍し、1回追加します。下隅に結果(2001)を出力し、停止します。

ブレインコプター

Braincopterはもう1つの視覚言語です。またppm、実行するのに同じイメージファイルに依存します。npietには非常に厳しい制限があるため、Braincopterコードは元のBraincopter操作のサブセットのみを使用できます。Pietで有効なopである色の使用に制限されています。これにより、-オペレータがBraincopterから削除されます。

Braincopterコードによってトレースされるパスは次のとおりです。

ブレインコプターのパス

Braincopterプログラムは、-オペレーターがいないため少し奇妙です。シアンとダークシアンの壁はポインターをリダイレクトしますが、それ以外は次のブレインファックと同じです:

++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++..+++++.

これは2005年を印刷します。

えっちな

Paintfuckはリストの3番目のビジュアルプログラミング言語ですが、画像を取り込んでテキストを出力する代わりに、Paintfuckはテキストを取り込んで画像を出力します。

Paintfuckはノーオペレーションとして無関係な文字を無視するため、ほとんどのコードは重要ではありません。コードの関連セクションは次のとおりです。

nsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnsn**ne*e*es*s*sw*sw*sw*e*e*e*eee*wn*n*n*n*ne*e*se*s*s*s*sww**e*eeee*wn*n*n*n*ne*e*se*s*s*s*sw*eeee*e*ne*n*nw*ne*nw*w*sw*se*sw*s*wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

それらはノーオペレーションではありませんwが、コードの最後のsは何もしません。それらは、ソリューションの草の部分にあります。 nes、及びw画像を移動するために使用され、*特定の位置に点をプロットするために使用されます。プログラムの出力:

Paintfuck出力

より大きなバージョン:

Painfuckの出力ですが、より大きい

ブレインファック

PaintfuckのようにBrainfuckはほとんどのキャラクターを無視します。ここに重要なものがあります:

 []+++---[.++....+.+..+.+.+.]++++++++-[<+++++++>-]<[.++++++++..-------+.[-]]>[<>,+,,+,<>]

これのほとんどは状況によってさらに無関係であり、たまたま他の言語が必要とするキャラクターである。このコードのスリムバージョンは次のとおりです。

+++++++[<+++++++>-]<[.++++++++..------.[-]]

これはかなり単純に印刷され1993ます。

脳みそ

Brainboolは、キャラクターの選択においてBrainfuckと非常に似ています。2つを一緒に織ることができる大きな違いは、-Brainboolの欠如です。Brainboolの重要なキャラクターは次のとおりです。

[]+++[.++....+.+..+.+.+.]++++++++[<+++++++>]<[.++++++++..+.[]]>[<>,+,,+,<>]

Brainboolとbrainfuckの出力は相互に排他的です。Brainboolは、出力を2番目のセットに隠し[]ます。Brainfuck +++---は、[ゼロに設定して出力をスキップする前に遭遇しますが、Brainboolは+++1に設定するだけでループを通過します。同様に、Brainfuckは、4番目のループでゼロに設定され、Brainfuckが値49でループに入る間、スキップします。

Brainboolには10進数の出力がないため、2010をバイナリで出力します。

11111011010

核分裂

核分裂にとって重要なコードの部分は次のとおりです。

R"2014";

R原子に召喚、右に移動"2014"印刷物2014;停止実行。

ベファンジ

Befungeは次の文字のみを通過します。

P3v
  7
  > 7*::,8 +:,,2 +,@

ザ・はP3ピエトのために有効な.ppmイメージを作ることが必要であり、累積的にスタックに3を押してください。これvは、ポインターを下にリダイレクトするために配置されます。次に717使用されているを通過して、.ppm画像の幅を示します。>右へのポインタをリダイレクトします。 7*スタックの最上部に7を掛けて、スタックの最上部に49(ASCII値1)を残します。::スタックの最上部を2回複製します。1で出力されます,8 +ASCIIの先頭の増分に8を追加します9。 2回:,,出力9します。 2 +ASCIIをインクリメント1ASCIIに3して,印刷します。最後@にプログラムを終了します。

すべてのすべてが印刷され1993ます。

空白

名前が示すように、空白はプログラムで空白のみを使用します。これは、ホワイトスペースインタープリターが見るものです。

[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]
[Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][LF]
[Space][Space][Space][LF]

このコードが行うことのほとんどは、プログラムの実行にとって重要ではありません(スペースのみを含むすべての行は、単にゼロをスタックにプッシュします)。重要な部分:

[Space][Space][Space][Tab][Tab][Tab][Tab][Tab][Space][Tab][Space][Space][Tab][Tab][LF]
[Tab][LF]
[Space][Tab][LF]
[LF]
[LF]

最初の行は2003をスタックにプッシュします。その後[Tab][LF][Space][Tab]、スタックの先頭(2003)を数字として出力します。最後に、最後の3つの改行によりプログラムの実行が終了します。

草は最初まで、すべての文字を無視しwていないすべての文字のファイルで、その後wWまたはv。Grassインタープリターの読み取り:

wWWWwWWWWwv
wWWwWWWwv
wWWWwWWWWWwWWWWWWwwwWWWWWWWwWWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwv
wWWWwWWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv

最初の行は、渡されたものに2を加算する関数を定義しています。2行目は、渡されたものに4を加算する関数を定義しています。3番目は、2つと引数を印刷し、引数を2回印刷し、最後に7と引数を印刷する関数を定義します(グラスはASCII値に基づいて文字を印刷します)。4行目、5行目、6行目は、それぞれ引数に8、16、32、64を追加する関数を定義しています。最後の行は、文字w(Grassの唯一の事前定義された数字、ASCII値119)を取り、プログラムで定義されたadd関数と組み込みのadd one関数を使用して185を追加するメイン関数を定義します。Grassは数値を256でラップするため、結果は48(キャラクターに対応)0)。関数は、これを2007を出力する3行目の関数に渡します。

星空

星空は、スペース以外のすべてを無視し、+*.,`、と'。したがって、星空の通訳者には次の情報しか表示されません。

       + + +.     + +..  '.. +. +.. +. +. +. + + + + + + + + + + + + + + +. + + + + + + + +..  `             +. '
     *, +,, +,************************************************* `

ただし、ラベルおよびジャンプ命令は、実行すると問題が発生する可能性のあるコードのセクションをスキップするために使用されるため、コードは効果的に次のようになります。

       + + +.     + +..  '  `             +. ' `

このコードは2つをスタックにプッシュし、2回複製してから、そのうちの1つを数字としてポップして印刷します。次に、ゼロをプッシュして複製し、両方のゼロを数値として出力します。次に、2つのうちの1つをポップしてジャンプし、7をスタックにプッシュして、ポップして印刷します。最後に、スタックの最後の2つをポップし、プログラムの最後にジャンプします。

Python 2.7.2

Pythonコードは次の形式に従います。

P3v="";print(sum([ord(x)for x in"~~~~~~~~~~~~~~~y"]));"""..."""

どこ...他のジャンクのすべてのためで立っています。

最初の行は、通常はエラーになるコードで始まるP3v=""有効な.ppmファイルであるためです。P3ただし、Pythonに変数宣言であることを伝えると、それを無視します。

次に、印刷する必要があります2011。ただし、aの.ppmフォーマット方法により、この行に数字を含めることはできません。これを回避するために、文字列のすべてのASCII値を合計し"~~~~~~~~~~~~~~~y"、結果を出力します。最後に、複数行コメントの三重引用符を使用して、Pythonが他のすべてを無視するようにします。

Brainflak

最後にベストを保存しました。

Brainflakは、他の人と同様に、ほとんどのキャラクターを無視します。関連する文字は次のとおりです。

(([()])){}{}[](((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)[<><>]

Pythonコード、(([()]))は-1をスタックに2回プッシュするため、プログラムが処理を開始する前に削除する必要があります。

その後、Brainbool []は何もしないniladを使用し、プログラムが開始されます。

(((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)最後[<><>]はBefungeとBrainfuckの名残ですが、幸いなことに何もしません。

プログラムが終了すると、スタックの内容、つまりが表示され2016ます。


ブリリアント!私は、Pietが何らかの形で登場することを望んでいました。PPMに物を埋め込むことは素晴らしいことです。よくやった!
シンコデナダ

1
+1 We saved the best for last。:D
DJMcMayhem

38

5年

#define q/*-[>+<-----]>--.++++++++..------.[-][
print('2010'if len(bin.__doc__)==86else'2015')
"""*/
main(c){c=-4.5//**/
-4.5;printf("19%d",90-c);}
#define w/*]
*/"""

1989:C89 [1]および1999:C99

単一行コメントが//ほどC89コンパイラは、そのコードを読み取ることになる、C99に加えc=-4.5 / /*comment*/ -4.5と同じである、c=-4.5 / -4.5C99コンパイラはとして読み取ることになるのに対し、c=-4.5 //comment/**/
- 4.5同じです、c=-4.5 - 4.5
Pythonの部分は、Cプログラムのコメントです。

2010:Python 2.7および2015:Python 3.5

ドキュメントはPython 3と2で異なります。このプログラムは、ドキュメントの長さを使用してPythonバージョンを検出します。
C部分は、Pythonプログラムの文字列にあります。

1993 [2]:ブレインファック

それは基本的にそうでないすべてを無視します.,[]+-<>。Cプログラムに含まれているので,、現在のバイトを0に設定してBrainfuckにその部分を却下させなければなりませんでした。


  1. C89の仕様は、1990年に発売された詳細情報
  2. 公式のリリース日が見つからなかったので、EsolangsWikipediaを信じます。

4
これは、特に-4.5/-4.5and -4.5-4.5です。2つの主要言語それぞれの2つのバージョンをマッシングすることは、BFを投入しなくてもかなり印象的です:
ETHproductions

これはコードゴルフではありませんが、a=2行目は不要です
-TheInitializer

@TheInitializerええ、私は試してみa=たがエラーが出たので、そのままにしておくことにした。なぜそれがエラーを出したのか、おそらくタイプミスであるかはわかりません。
betseg

@betsegは、そのコードがPythonでのみ実行されている場合、動作するはずです。
TheInitializer

17

15年、JavaScript

JavaScriptのリリースサイクルは非常に珍しく一貫性がないため、Firefoxの実装を使用します。これが許可されていない場合はお知らせください。

バージョン: フェニックス0.1Firebirdの0.6Firefoxの1.0.01.5.02.0.03.0ベータ13.0.03.5.03.6.04.0.010.0.018.0.027.0 0.035.0.044.0.0(すべてのWindows 7上でテスト)

重要な注意: Firefox 1.0.0以降のバージョンをインストールして開くと、履歴やブックマークなど、保存されているすべてのFirefoxデータが消去される場合があります。

また、1.0.0以降では、一度に1つのバージョンのみを開くことができます。別のバージョンを開こうとすると、すでに開いているバージョンの新しいウィンドウが表示されます。

説明書

コード

<script onbeforeunload="123">
// This uses document.write because alert does nothing in Phoenix (Firefox) 0.1.
document.write((function () {
    function assert (code) {
        try {
            eval(code);
            return true;
        } catch (e) {
            return false;
        }
    }

    // Firefox 44 supports octal and binary literals in Number(); Firefox 35 does not.
    if (Number("0o1") === 1)
        return 2016;

    // Firefox 35 supports template strings; Firefox 27 does not.
    if (assert("`abc`"))
        return 2015;

    // Firefox 27 supports argument spreading; Firefox 18 does not.
    if (assert("Math.max(...[1, 2, 3])"))
        return 2014;

    // Firefox 18 supports default arguments; Firefox 10 does not.
    if (assert("function q(a = 1) { }"))
        return 2013;

    // Firefox 10 has basic WeakMap support; Firefox 4 does not.
    if (assert("WeakMap.a"))
        return 2012;

    // Firefox 4 has basic typed array support; Firefox 3.6 does not.
    if (assert("Int8Array.a"))
        return 2011;

    // Firefox 3.6 added the async attribute to script elements.
    if (assert("document.getElementsByTagName('script')[0].async.a"))
        return 2010;

    // Firefox 3.5 added the String.prototype.trim() method.
    if (assert("'abc'.trim()"))
        return 2009;

    // Firefox 3.0 added partial support for object destructuring.
    if (assert("var {c} = {c: 7}"))
        return 2008;

    // Firefox 3.0 beta 1 added the Array.prototype.reduce() and Array.prototype.reduceRight() methods.
    if (assert("[].reduce.a"))
        return 2007;

    // Firefox 2.0 added support for restricted words as properties.
    if (assert("({if:1}).if"))
        return 2006;

    // Firefox 1.5 added the Array.prototype.indexOf() methods, along with a couple other Array methods.
    if (assert("[1].indexOf(1)"))
        return 2005;

    // Practically the only JS difference between v0.6 and v1.0 is the addition of the onbeforeunload event.
    if (assert("document.getElementsByTagName('script')[0].onbeforeunload.a"))
        return 2004;

    // The Object.prototype.eval() method was removed in Firebird 0.6.
    if (!assert("'abc'.eval()"))
        return 2003;

    // We're all the way back to the good old Phoenix 0.1 browser...
    return 2002;
})());
</script>

<!--<<<<-[>+<-----]>--.++++++++..------.[-][-->スクリプトの前にBF:を含めることで16年目を追加し、]その後に別のHTMLコメントを含めることができます。
スティーブンH.

6
@stevenH。ええと...すごい、これにエゾランを入れることすら考えもしなかった。そして、それはBFを含めるための本当に賢い方法です:-)しかし、私は本当にしたいのか確信がありません
...-ETHproductions

13

6言語、タートルードブレインファック、Python 3.5、Python 2.7、> <>Fission

Turtlèdは今年以前に存在していなかったため、githubのコミットがカウントされなくても、非常に客観的であり、BFには1993年にリリースされたエソランページの証拠があります。Python3.5は2015、2.7は2010です。 、2009年、Fission、2014年

#-[>+<-----]>--.++++++++..------#"2016"/
print(2015 if len(len.__doc__)==42 else 2010)
#;                           oooo"2009"/
#;"4102"L

エソランのbf定数ページにクレジットを与えるべきでしょう...¯\ _(ツ)_ /¯

仕組み、種類:

タートルード:

Turtlèdは実際には最初の行以外には何もしません:

#-[>+<-----]>--.++++++++..------#"2016"/
  ^sets string variable to this   ^ prints 2016

/はnopです

ブレインファック

Brainfuckはコマンドにない文字を無視します

それは見ます-[>+<-----]>--.++++++++..------.(最後の。はpython部分からです)

Brainfuckを行うだけで、ラッピングを使用して255を5で除算し、結果から2を減算し、印刷、8回インクリメント、2回印刷、6回デクリメント、印刷

Python 2および3

print(2015 if len(len.__doc__)==42 else 2010)

lenのドキュメントの長さはバージョンによって異なるため、バージョン3の長さが適切な場合はバージョン3を出力し、そうでない場合はバージョン2を出力します。

> <>

#ポインタを後方に反映するため、その行の反対側の/にヒットし、elseとの間のスペースを通過してから、2010再度反映して「2009」をヒットし、9,0,0,2をスタックにプッシュしてから、反転して出力します。

核分裂

Fissionにはスポーナーが含まれているため、下部に単独で実行する行を含めることができます。

#;"4102"L
        L spawn left moving atom
  "4102"  print this right to left
 ;        halt
# python comment

13

3年、3言語:C、TeX、MIXAL

*main(){puts("1990");}/*\newwrite\O\openout\O=O\write\O{1982}\bye                                                                                                                              
START   ENTA    1997
        CHAR
        STX     6
        OUT     6(19)
        HLT
        END     START   */ 

ファイルに名前を付けますdate.mixal

  1. C(1990)-警告付きでコンパイルし、に出力1990stdoutます。
  2. TeX(1982)-でコンパイルtex date.mixal; 1982ファイルに出力しますO.tex(DVI出力を無視します)。
  3. MIXAL(1997)-GNU Mix Development Kitを使用してコンパイルしmixasm date.mixalmixvm -r date.mix; で実行します。1997テレタイプデバイスに出力します(= stdout)。

TeXおよびMIXALプログラムは、Cプログラムのコメントに含まれています。MIXALプログラムが後に来る\byeため、TeXはそれを無視します。CおよびTeXプログラムは、MIXALプログラムのコメントです。何らかの理由gccで受け入れることをいとわない*main


MIXAL、+ 1を忘れていた:D

13

3年(GolfScript、CJam、MATL)、24 23バイト

[A11]Wd%;200 1e2/0 8_+(

この出力

  • 2007 GolfScriptで。

  • 2015 CJam(バージョン0.6.5)。

  • 2016 MATL(バージョン19.2.0)。

説明

Golfscript

未定義のトークンはGolfScriptでの操作ではありません。実際に何かを行うコードの部分は次のとおりです。

200      Push 200
           STACK: 200
1        Push 1
            STACK: 200, 1
/        Divide
           STACK: 200
0        Push 0
           STACK: 200, 0
8        Push 8
           STACK: 200, 0, 8
+        Add
           STACK: 200, 8
(        Subtract 1
           STACK: 200, 7
         Implicitly display 200, 7 as "2007"

CJam

[A11]    Push array [10 11]
           STACK: [10 11]
W        Push -1
           STACK: [10 11], -1
d        Convert to double
           STACK: [10 11], -1.0
%        Select elements from array
           STACK: [11 10]
;        Pop
           STACK is empty
200      Push 200
           STACK: 200
1e2      Push 100
           STACK: 100
/        Divide
           STACK: 2
0        Push 0
           STACK: 2, 0 
8_       Push 8 and duplicate
           STACK: 2, 0, 8, 8
+        Add
           STACK: 2, 0, 16
(        Subtract 1
           STACK: 2, 0, 15
         Implicitly display 2, 0, 15 as "2015" 

MATL

%以降はすべてコメントです。

[A11]    Push array [5 11]
           STACK: [5 11]
W        2 raised to that
           STACK: [32 2048]
d        Compute increment
           STACK: 2016
         Implicitly display as "2016"

修正:%[11 10]を取得した後のCJamで。重要ではありません。
-aditsu

@aditsu Whoops!ありがとう、編集
ルイスメンドー

12

2言語、Python 2.7およびPython 3.5

Python 2.7は2010年にリリースされました。

Python 3.5は2015年にリリースされました。

print('2010'if 3/2==1else'2015')

これは、Python 2の整数除算からPython 3の浮動小数点除算に変更されたPEP 238に依存してい/ます。


3
バージョン間のオペレーターのバグ/変更を特定することを含む場合、これは楽しいチャレンジになる可能性があります
マイル

1
@TuukkaXこれは、Fedora 24上のPython 2.7.12とPython 3.5.1の両方で動作します。-
マイル

1
'2010'if 3/2>1else'2015'代わりにできませんか?
Qwerp-Derp

15
または私たちの数学:print(int(2010+1/2*10))
ジャクベ

2
print('2015'if 1/2else'2010')より良い
チョイス

12

8年間、TI-Basic

Disp 1996           <-- TI-83
Text(-1,1,1,1
ClrHome
Disp 1999           <-- TI-83+ OS 1.03 (initial OS)
sub(1
ClrHome
Disp 2002           <-- TI-83+ OS 1.15
isClockOn
ClrHome
Disp 2004           <-- TI-84+ OS 2.21
invT(e,1
ClrHome
Disp 2005           <-- TI-84+ OS 2.40
CLASSIC
ClrHome
Disp 2009           <-- TI-84+ OS 2.53
BackgroundOn
ClrHome
Disp 2013           <-- TI-84+ Color Silver Edition
Send({1
ClrHome
2015                <-- TI-84+ Color Edition OS 5.1

「正しい出力がまだSTDOUTまたはファイルに出力されている限り、どのプログラムでもSTDERRに出力したり、ランタイム/コンパイル時エラーと警告をスローしたりする可能性があります。」現在、エラー以外の表示は年のみであるため、この規則を順守しています。しかし、あなたの代わりにメモリへの書き込みをしたい場合は、交換してくださいDisp (date)(date)->I

参照:

  1. 計算機のリリース日-https://epsstore.ti.com/OA_HTML/csksxvm.jsp?nSetId = 74258
  2. TI-83 + OS 1.15リリース日-http : //wikiti.brandonw.net/index.php?title=83Plus : OS:VersionDifferences#TIOS_1.15
  3. 計算機の互換性-http://tibasicdev.wikidot.com/compatibility
  4. TI-84 + CSEリリース日-https ://www.amazon.com/Texas-Instruments-Silver-Graphing-Calculator/dp/B00AWRQKDC
  5. TI-84 + CEのリリース日- http://www.prnewswire.com/news-releases/texas-instruments-unveils-the-new-ti-84-plus-ce-300026266.htmlのhttps:// WWW。 cemetech.net/forum/viewtopic.php?t=8870

9

5年、Go 1.0、1.1、1.4、1.5、1.6: 285 257バイト

(1.2は2013年には1.1、2014年には1.3は1.4、2016年には1.7は1.6のようにリリースされました。)

1.6しかアクセスできないため、すべてのバージョンでこれをテストしていませんが、理論的には動作するはずです!言語の変更によりプログラムがコンパイルされない可能性が高いため、標準ライブラリの変更に依存しました。

package main
import(."fmt"
."reflect"
."time")
func main(){s:="6"
if _,e:=Parse("2016-Sep-30","2016-Sep-31");e==nil{s="5"}
if Sprint(ValueOf(0))!="0"{s="4"}
if Sprint(&map[int]int{1:1})[0]!='&'{s="3"}
if string(0xd800)==string(0xfffd){s="2"}
Print("201"+s)}

非ゴルフとコメント:

package main

import (
    "fmt"
    "reflect"
    "time"
)   package main

import (
    . "fmt"
    . "reflect"
    . "time"
)

func main() {
    s := "6"
    // 1.6: time.Parse rejects invalid days
    if _, e := Parse("2016-Sep-30", "2016-Sep-31"); e == nil {
        s = "5"
    }
    // 1.5: A reflect.Value now prints what it holds, rather than use
    // its String() method
    if Sprint(ValueOf(0)) != "0" {
        s = "4"
    }
    // 1.4: Printing pointers to maps gives the map instead of the address
    if Sprint(&map[int]int{1: 1})[0] != '&' {
        s = "3"
    }
    // 1.1: Unicode surrogate halves are no longer allowed
    if string(0xd800) == string(0xfffd) {
        s = "2"
    }
    Print("201" + s)
}

7

4年、99バイト/ 77文字

v=1//1;"""
 1991/*"""
for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
"""
"
>9002nnnn;
"""#*/

注:年が正しいかどうかわかりません

  • Python 2.7、2010
  • Javascript、1991
  • Emotinomicon、2015年
  • ><>、2009

PythonとJSを連携させる方法を見つけるのに時間がかかりました。

説明

v=1//1;"""Pythonで変数vをJava で1除算するよう1に設定し1//Javascriptでコメントを開始する)、;"""Pythonで複数行の文字列を開始します。;それはJavascriptが動作を停止するだろうので、改行で置き換えることはできません。

1991/*"""複数行文字列の残りの部分です。> <>が1スタックにプッシュしないように、スペースが必要です。複数行の文字列の先頭はJavascriptのコメントの一部であった1991ため、複数行のコメントを出力して開始します。

for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨Pythonでは、リストを繰り返し[0]実行するforループですprint 2010。コメントは単なるEmotinomiconコードです(絵文字でも文字列でもないものはすべて無視します)。> <>では 、スタックにfプッシュ15します()。

forループは、> <>のIPが列1でダウンしp、> <>で有効なコマンドではないため、削除できません。また、> <>で入力を受け取るコマンドifであるため、ステートメントで置き換えることはできませんi

""" 複数行の文字列の始まりです。

" は、複数行の文字列の一部であり、> <>で開いた文字列を閉じるために必要です(前の行の最初の引用符が> <>で文字列を開始しました)。

>9002nnnn;> <>で、右にIPの方向を変える押して900および2、これらの出力を数値として、プログラムを終了します。

"""#*/Pythonでは、複数行の文字列を終了し、コメントを開始します。JavaScript */では、複数行コメントを終了します。


Gol> <>のボーナスバージョン:

5言語、4年、118114バイト/ 96 92文字

v=1//1;"""
 1991/*"""
for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨
"""
`
"
>9002nnnn;
"
>5102nnnn;
"""#*/
  • Golfish v0.4.2、2015

説明²

IPは左上隅から始まり、右に進みます。vそれがダウンして行くことができます。

fプッシュし15ます。

" 文字列を開始します。

` > <>にはない文字をエスケープするために使用されます。

"文字列を閉じる必要がありますが、を使用`したので、閉じません。

> 文字列の一部。

" 文字列を終了します。

>5102nnnn;実際のコードです。>、IPは右行かせる5102プッシュし5102、とnnnn;数字を出力し、プログラムを終了します。


適切なヘッダーのないUnicode文字でのPythonエラー。(SyntaxError: Non-ASCII character '\xf0' in file test.txt on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
ウィートウィザード

@WheatWizardファイルをUTF-8として保存
-acrolith

7

7年、8つのブラウザー

cssには実際にはリリースがないため、言語のリリース日ではありませんが、ブラウザのバージョン(コンパイラバージョンと考えられますか?

次のブラウザの場合、これはブラウザ名、バージョン、リリース日のみを出力します。いくつかの新しいバージョンでも同じことが印刷されます(バージョン番号で古いバージョンのchromeをダウンロードするのは難しいため、chromeはスクリーンショットの後半にあります)。

使用したバージョン番号を印刷できましたが、使用した機能が導入された最初のバージョンを表示することを好みました。

  • IE6
  • IE7
  • IE8
  • IE9(テストなし、周囲にIE9がない)
  • Firefox 4
  • Firefox 3.6
  • Chrome 18
  • Chrome 21
  • 最新のブラウザ

FF3.6 FF4 クロム19 クロム22 IE8の癖 IE8-IE7の互換性 IE8

index.html

<!DOCTYPE html>
 <html>
  <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <link rel=stylesheet href=style.css>
  </head>
  <body>
    <div class=borderbox>
      <div class="inlineblock">
        &nbsp;IE6-2001
      </div>

      <div class="white">
        <div class="outofbox">
          <a href="#">IE8-2009</a>
        </div>
        <div class="inherit">
          <a href="#">IE7-2006</a>
        </div>
      </div>
    </div>
    <div class="white">
      <header class="filter-quirk filter-blur filter-blur-url">
        IE9
      </header>
    </div>
    <div class="flex white">
      Modern Browsers - 2017
    </div>
    <div class="webkit-flex">
      <div class="">
        Chrome 21-2012
      </div>
    </div>
    <div class="webkit-invert white flexdisable">
      <div class="">
        Chrome 18-2012
      </div>
    </div>

    <svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg">

    </svg>

    <div class="filter">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <g
           transform="scale(8)"
           aria-label="FF4"
           id="text8419">
           <rect
              style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.79374999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
              id="rect21965"
              width="17.005648"
              height="3.9855044"
              x="-0.16825682"
              y="-0.025296567" />
          <path
             d="m 1.0052634,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 H 0.69107072 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 0.1785938 V 0.72431329 h -0.1785938 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.1793519 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 1.0052634 V 1.4155373 H 1.4848207 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8421" />
          <path
             d="m 2.9883464,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 h -0.770599 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.8527475 V 0.72431329 H 2.6741537 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 4.1624349 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 2.9883464 V 1.4155373 H 3.4679037 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8423" />
          <path
             d="M 5.6692683,1.8917872 H 4.7729923 V 1.7363445 l 0.754062,-1.28322911 h 0.277813 V 1.7561883 h 0.112448 q 0.0893,0 0.0893,0.069453 0,0.066146 -0.0893,0.066146 h -0.112448 v 0.4233333 h 0.112448 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -0.499402 q -0.0893,0 -0.0893,-0.069453 0,-0.066146 0.0893,-0.066146 h 0.251355 z m 0,-0.1355989 V 0.58871439 h -0.07938 L 4.9019713,1.7561883 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8425" />
          <path
             d="M 8.2881171,1.6077068 H 6.9585859 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 1.3295312 q 0.089297,0 0.089297,0.066146 0,0.069453 -0.089297,0.069453 z"
             style="stroke-width:0.79374999"
             id="path8422" />
          <path
             d="m 8.9582054,0.90656104 q 0,-0.14882812 0.1785937,-0.31749999 0.1819011,-0.17197916 0.4365625,-0.17197916 0.2414323,0 0.4233333,0.17197916 0.1852081,0.17197916 0.1852081,0.39687498 0,0.14882817 -0.0893,0.28111977 Q 10.006617,1.3960402 9.7056533,1.67716 L 9.0210439,2.3154672 v 0.00992 H 10.059533 V 2.2063266 q 0,-0.089297 0.06945,-0.089297 0.06614,0 0.06614,0.089297 V 2.460988 H 8.8920596 V 2.2625506 L 9.6725804,1.5283318 q 0.2315104,-0.2282031 0.3009635,-0.3307291 0.07276,-0.102526 0.07276,-0.21497396 0,-0.17197916 -0.1422132,-0.30096353 -0.1422136,-0.12898437 -0.3307292,-0.12898437 -0.1686718,0 -0.3075781,0.0992188 -0.1355989,0.0992188 -0.1752864,0.24804686 -0.019844,0.0661458 -0.069453,0.0661458 -0.023151,0 -0.042995,-0.0165365 -0.019844,-0.0198437 -0.019844,-0.0429948 z"
             style="stroke-width:0.79374999"
             id="path8424" />
          <path
             d="m 12.207981,1.3001287 v 0.3307292 q 0,0.3902604 -0.171979,0.6349999 -0.171979,0.2447396 -0.446484,0.2447396 -0.274506,0 -0.446485,-0.2447396 Q 10.971054,2.0211183 10.971054,1.6308579 V 1.3001287 q 0,-0.39356766 0.171979,-0.63830724 0.171979,-0.24473957 0.446485,-0.24473957 0.274505,0 0.446484,0.24473957 0.171979,0.24473958 0.171979,0.63830724 z M 11.589518,0.55268084 q -0.224896,0 -0.353881,0.22820312 -0.128984,0.22489584 -0.128984,0.53578124 v 0.2943489 q 0,0.3241146 0.132292,0.5457031 0.135599,0.2182813 0.350573,0.2182813 0.224895,0 0.35388,-0.2248959 0.128984,-0.2282031 0.128984,-0.5390885 V 1.3166652 q 0,-0.32411458 -0.135599,-0.54239582 -0.132292,-0.22158854 -0.347265,-0.22158854 z"
             style="stroke-width:0.79374999"
             id="path8426" />
          <path
             d="M 13.642054,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436562,-0.43656248 z"
             style="stroke-width:0.79374999"
             id="path8428" />
          <path
             d="M 15.625137,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436563,-0.43656248 z"
             style="stroke-width:0.79374999"
               id="path8430" />
          </g>
      </svg>
    </div>
    <div class="white gradient msfilter" style=color:white>
      FF3.6-2010
    </div>
  </body>
 </html>

style.css

.borderbox {
    height: 40px;
    overflow: hidden;
    padding-bottom: 100px;
}
.outofbox {
    background: blue none repeat scroll 0 0;
    margin-top: 20px;
    opacity: 0;
}
.white {
    color: white;
}
.outofbox a, .inherit a, .inherit a:visited, .outofbox a:visited {
    color: inherit;
}
.inlineblock {
    display: inline;
    width: 100%;
    zoom: 1;
    display: inline-block;
    margin-left: 100px;
    text-align: right;
}
.white header{
  color: black;
}
.absolute{
  position: absolute;
}
.flex{
  display: none;
  display: flex;
}
.flex.white{
  filter: invert(100%)
}
.webkit-flex{
  display: none;
  display: -webkit-flex;
  overflow: hidden;
  flex-flow: column;
  height: 3em;
  justify-content: flex-end;
}
.webkit-flex div{
  margin-bottom: -1.1em;
}
.flexdisable{
  display: -webkit-flex;
  overflow: hidden;
  -webkit-flex-flow: column;
  -webkit-justify-content: flex-end;
  height: 60px;
}
.flexdisable div{
  margin-bottom: -30px;
}
.filter-quirk{
  filter: url(#quirk);
}
.filter-blur{
  filter: blur(100px);
  -webkit-filter: blur(100px);
}
.webkit-blur{
  -webkit-filter: blur(100px);
}
.webkit-invert{
  -webkit-filter: invert(100%);
  filter: none;
}
.filter-url-dark{
  -webkit-filter: url(filter.svg#Invert);
  filter: url(filter.svg#Invert) invert(100%);
}
.filter-blur-url{
  filter: url(filter.svg#blur) url(filter.svg#brightness);
}
.filter{
  filter: invert(100%) brightness(100%);
  -webkit-filter: invert(100%) brightness(100%) blur(100px);
}
.filter svg{
  position: absolute;
}
.filter svg rect{
  filter: invert(100%);
  -webkit-filter: invert(100%);
}
.msfilter{
    /* IE 8 */
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  /* IE 5-7 */
  filter: alpha(opacity=0);
}
.opacity{

}
.black{
  background: black;
}
.gradient{
  width: 100px;
  background: -moz-linear-gradient( 45deg, #000, #000 );
  font-weight: bold;
}

filter.svg

    <!DOCTYPE html>
 <html>
  <head>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <link rel=stylesheet href=style.css>
  </head>
  <body>
    <div class=borderbox>
      <div class="inlineblock">
        &nbsp;IE6-2001
      </div>

      <div class="white">
        <div class="outofbox">
          <a href="#">IE8-2009</a>
        </div>
        <div class="inherit">
          <a href="#">IE7-2006</a>
        </div>
      </div>
    </div>
    <div class="white">
      <header class="filter-quirk filter-blur filter-blur-url">
        IE9
      </header>
    </div>
    <div class="flex white">
      Modern Browsers - 2017
    </div>
    <div class="webkit-flex">
      <div class="">
        Chrome 21-2012
      </div>
    </div>
    <div class="webkit-invert white flexdisable">
      <div class="">
        Chrome 18-2012
      </div>
    </div>

    <svg style="position: absolute; top: -99999px" xmlns="http://www.w3.org/2000/svg">

    </svg>

    <div class="filter">
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <g
           transform="scale(8)"
           aria-label="FF4"
           id="text8419">
           <rect
              style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.79374999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
              id="rect21965"
              width="17.005648"
              height="3.9855044"
              x="-0.16825682"
              y="-0.025296567" />
          <path
             d="m 1.0052634,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 H 0.69107072 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 0.1785938 V 0.72431329 h -0.1785938 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.1793519 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 1.0052634 V 1.4155373 H 1.4848207 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8421" />
          <path
             d="m 2.9883464,1.5511362 v 0.7639843 h 0.4564063 q 0.092604,0 0.092604,0.066146 0,0.069453 -0.092604,0.069453 h -0.770599 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 2.8527475 V 0.72431329 H 2.6741537 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 H 4.1624349 V 1.0484278 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 0.72431329 H 2.9883464 V 1.4155373 H 3.4679037 V 1.2667091 q 0,-0.089297 0.066146,-0.089297 0.069453,0 0.069453,0.089297 v 0.4332552 q 0,0.089297 -0.069453,0.089297 -0.066146,0 -0.066146,-0.089297 V 1.5511362 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8423" />
          <path
             d="M 5.6692683,1.8917872 H 4.7729923 V 1.7363445 l 0.754062,-1.28322911 h 0.277813 V 1.7561883 h 0.112448 q 0.0893,0 0.0893,0.069453 0,0.066146 -0.0893,0.066146 h -0.112448 v 0.4233333 h 0.112448 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -0.499402 q -0.0893,0 -0.0893,-0.069453 0,-0.066146 0.0893,-0.066146 h 0.251355 z m 0,-0.1355989 V 0.58871439 h -0.07938 L 4.9019713,1.7561883 Z"
             style="fill:#000000;stroke-width:0.79374999"
             id="path8425" />
          <path
             d="M 8.2881171,1.6077068 H 6.9585859 q -0.089297,0 -0.089297,-0.069453 0,-0.066146 0.089297,-0.066146 h 1.3295312 q 0.089297,0 0.089297,0.066146 0,0.069453 -0.089297,0.069453 z"
             style="stroke-width:0.79374999"
             id="path8422" />
          <path
             d="m 8.9582054,0.90656104 q 0,-0.14882812 0.1785937,-0.31749999 0.1819011,-0.17197916 0.4365625,-0.17197916 0.2414323,0 0.4233333,0.17197916 0.1852081,0.17197916 0.1852081,0.39687498 0,0.14882817 -0.0893,0.28111977 Q 10.006617,1.3960402 9.7056533,1.67716 L 9.0210439,2.3154672 v 0.00992 H 10.059533 V 2.2063266 q 0,-0.089297 0.06945,-0.089297 0.06614,0 0.06614,0.089297 V 2.460988 H 8.8920596 V 2.2625506 L 9.6725804,1.5283318 q 0.2315104,-0.2282031 0.3009635,-0.3307291 0.07276,-0.102526 0.07276,-0.21497396 0,-0.17197916 -0.1422132,-0.30096353 -0.1422136,-0.12898437 -0.3307292,-0.12898437 -0.1686718,0 -0.3075781,0.0992188 -0.1355989,0.0992188 -0.1752864,0.24804686 -0.019844,0.0661458 -0.069453,0.0661458 -0.023151,0 -0.042995,-0.0165365 -0.019844,-0.0198437 -0.019844,-0.0429948 z"
             style="stroke-width:0.79374999"
             id="path8424" />
          <path
             d="m 12.207981,1.3001287 v 0.3307292 q 0,0.3902604 -0.171979,0.6349999 -0.171979,0.2447396 -0.446484,0.2447396 -0.274506,0 -0.446485,-0.2447396 Q 10.971054,2.0211183 10.971054,1.6308579 V 1.3001287 q 0,-0.39356766 0.171979,-0.63830724 0.171979,-0.24473957 0.446485,-0.24473957 0.274505,0 0.446484,0.24473957 0.171979,0.24473958 0.171979,0.63830724 z M 11.589518,0.55268084 q -0.224896,0 -0.353881,0.22820312 -0.128984,0.22489584 -0.128984,0.53578124 v 0.2943489 q 0,0.3241146 0.132292,0.5457031 0.135599,0.2182813 0.350573,0.2182813 0.224895,0 0.35388,-0.2248959 0.128984,-0.2282031 0.128984,-0.5390885 V 1.3166652 q 0,-0.32411458 -0.135599,-0.54239582 -0.132292,-0.22158854 -0.347265,-0.22158854 z"
             style="stroke-width:0.79374999"
             id="path8426" />
          <path
             d="M 13.642054,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436562,-0.43656248 z"
             style="stroke-width:0.79374999"
             id="path8428" />
          <path
             d="M 15.625137,0.43692564 V 2.3253891 h 0.459713 q 0.0893,0 0.0893,0.066146 0,0.069453 -0.0893,0.069453 h -1.055026 q -0.0926,0 -0.0926,-0.069453 0,-0.066146 0.0926,-0.066146 h 0.459714 V 0.61551938 l -0.373724,0.37372394 q -0.02646,0.0264584 -0.06945,0.0264584 -0.02646,0 -0.0463,-0.0198438 -0.01654,-0.023151 -0.01654,-0.056224 0,-0.0297656 0.03638,-0.0661458 l 0.436563,-0.43656248 z"
             style="stroke-width:0.79374999"
               id="path8430" />
          </g>
      </svg>
    </div>
    <div class="white gradient msfilter" style=color:white>
      FF3.6-2010
    </div>
  </body>
 </html>

2
CSSには実際にリリースがあります。1.0、2.0、2.1、3.0、および4.0があります。質問では、ウィキペディアまたは言語のサイトをリリース日の証拠として使用することさえ述べているので、チェックする必要があります。初期リリース日:1996年12月17日
mbomb007

これらのレベルのいずれも実装されていないという意味ではありません(リリースと呼ばれることもありません。リリースされていないため、投稿したリンクを確認する必要があります)。また、CSS3と4は、オンザフライで作成され、ドラフト、候補、推奨事項の間を行き来するため、リリース日さえありません。また、特定のレベル100%と次のレベルの0%を実装しているブラウザーはないため、思い付くのに最適な日付はブラウザーのリリース日です。
qwazix

その場合、選択した言語は、この課題に必要な仕様を満たしていません。あなたがしようとしている方法ではありません。言語はその実装によって定義されるため、ブラウザを選択して、異なるブラウザではなく、異なるブラウザバージョンを使用してそれを使用する必要があります。しかし、私はまだOPに尋ねます。
mbomb007

OPは、異なるバージョンが異なる言語としてカウントされるとは言わず、異なる言語について、使用されている言語バージョンのリリース年を印刷するように言っただけです。ただし、回答の約半分は、異なるバージョンは言語としてカウントするのに十分に異なるという仮定に基づいていました。python 2.5.0と2.5.1が十分に異なると考えられる場合、IEとChromeがどのように違うのか理解できません。
qwazix

6

3年、89バイト

Python 2、JavaScript(ES6)およびPerl

eval((["1","print=_=>console.log(1995)"])[+(2/3>0)]);print(eval(("1991",1987)["$$">"0"]))

1つ目eval1Python 2で実行され、Python 2 print=_=>console.log(1995)の整数除算機能を使用してJavaScriptとPerlで実行されます。これにより、printJavaScriptとPerlで関数が作成され、構文エラーが静かに処理されます。

2番目evalは、変数$$(現在のPID)を文字列に補間するPerlに依存しています。これは(>演算子を使用して)"0"(Pythonはその比較に文字列を必要としますが、Perlは暗黙的に整数に変換します)

もっと多くの言語を使いこなすことができたかもしれませんが、コメントを乱用せず、「通常の」言語でのみ動作するソリューションを望んでいました。

私が使用し、このWikipediaのページを使用するように年を取得すること。


2

3言語、3年

楽しみのためのアドホックな答え。

2002!~+++++++[<+++++++>-]<[.++++++++..------.[-]] 2016 !.
  • Mouse-2002:以降~はすべてコメントであり、最初の部分(これも記述可能C0U!!!)が印刷され2002ます。

  • このCalcのチャレンジ前のコミット:これは、プログラミングIIのためにC11で設計したばかりのスタックベースの電卓インタープリターで、最初のスペースがエラー(チャレンジ仕様で許可)を出力する前のプログラムの一部であり、2016 !.印刷し2016ます。

  • Brainfuck:他の回答に見られるように1993を印刷します。最後の無関係な要素.はによって無視されbeefます。

現在のスタックのCalcの表示ことに注意してください< stackすべての非空の入力行では、プロンプトの一部である>ない出力の一部。


Mouse-2002の詳細はどこで確認できますか?githubにはどんな種類の仕様もないようです。
小麦ウィザード

@WheatWizardリポジトリのREADMEには、Dr。Grogonoの元のMUSYSへのリンクと、David Simpsonの2002再起動へのリンクが含まれています。

2

Microsoft Excel / Google Sheets、22バイト

1987Microsoft Excelおよび2006Googleスプレッドシートで入力と出力を行わない匿名ワークシート関数

=IfError(M(2006),1987)

0

Perl 5およびPerl 6(2年)

my $a=2015;my @a=1994;print $a[0],"\n"

Perl 5の最初のリリースは1994年でした

Perl 6の最初の公式リリースは2015年でした

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.