10 tahun, 12 bahasa, 2430 byte

46

10 tahun, 12 bahasa, 2430 byte

Jawaban ini merupakan kolaborasi antara saya dan pengguna 1000000000 .

Daftar bahasa singkat:

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 

Ini kodenya:

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
#   """

Agar sesuai dengan ini dalam tanggapan saya akan melupakan seluruh tautan TIO dan lebih suka hanya memposting tautan ke juru bahasa yang valid di mana kode dapat dimasukkan oleh pengguna. Berikut adalah tautan Pastebin untuk tujuan itu.

Piet

The format file PPM , salah satu format gambar yang penafsir Piet kita digunakan dapat membaca dari, memiliki versi ASCII plaintext. Dengan menggunakan ini kami dapat menanamkan kode bahasa lain sebagai sampah dalam file gambar yang dibaca oleh Piet dan Braincopter.

Gambar terlihat seperti ini:

Gambar mentah

Tidak semua gambar penting bagi Piet. Ini adalah versi dengan garis yang menyoroti jalur yang diikuti Piet melalui kode:

Jalur Piet

Meskipun metode agak berbelit-belit untuk membuat program program itu sendiri cukup sederhana. Sepanjang bagian atas gambar itu mendorong 1 10 10 10 2ke tumpukan; sepanjang sisi itu mengalikan tiga kali dan menambahkan sekali. Di sudut bawah itu menampilkan hasilnya (2001) dan kemudian berhenti.

Braincopter

Braincopter adalah bahasa visual lainnya. Itu juga bergantung pada ppmfile gambar yang sama untuk dijalankan. Karena pembatasan yang sangat keras dalam npiet kode Braincopter kami hanya dapat menggunakan subset dari operasi Braincopter asli. Kami dibatasi untuk menggunakan warna yang ops valid di Piet. Ini menghilangkan -operator dari Braincopter.

Berikut ini jalur yang dilacak oleh kode Braincopter:

Jalur Braincopter

Program Braincopter agak aneh karena kurangnya -operator. Dinding cyan dan cyan gelap berfungsi untuk mengarahkan ulang pointer tetapi selain itu identik dengan brainfuck berikut:

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

Ini mencetak 2005.

Paintfuck

Paintfuck adalah bahasa pemrograman visual ketiga dalam daftar kami namun alih-alih mengambil gambar dan mengeluarkan teks, Paintfuck mengambil teks dan menghasilkan gambar.

Karena Paintfuck mengabaikan karakter yang tidak relevan karena no-ops sebagian besar kode tidak penting. Bagian kode yang relevan adalah:

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

Meskipun bukan no-ops, ws pada akhir kode tidak melakukan apa-apa. Mereka ada untuk bagian rumput dari solusi. n, e, s, Dan wdigunakan untuk bergerak di sekitar gambar dan *digunakan untuk merencanakan suatu titik di lokasi tertentu. Output program:

Output Paintfuck

Versi yang lebih besar:

Output Painfuck, tetapi lebih besar

Brainfuck

Seperti Paintfuck Brainfuck mengabaikan sebagian besar karakter. Sekali lagi di sini adalah yang penting:

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

Sebagian besar dari ini lebih tidak relevan dengan keadaan dan kebetulan menjadi karakter yang dibutuhkan beberapa bahasa lain. Versi yang lebih ramping dari kode ini adalah:

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

Ini cukup sederhana dicetak 1993.

Brainbool

Brainbool sangat mirip dengan Brainfuck dalam pemilihan karakternya. Perbedaan besar yang memungkinkan keduanya untuk dijalin bersama adalah kurangnya a -di Brainbool. Karakter penting untuk Brainbool adalah:

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

Output Brainbool dan brainfuck saling eksklusif. Brainbool menyembunyikan hasilnya di set kedua []. Brainfuck bertemu +++---sebelum mencapai [pengaturan ke nol dan menyebabkannya melewatkan output, sementara Brainbool hanya melihat +++pengaturan ke 1 menyebabkannya melewati loop. Demikian pula Brainbool diatur ke nol pada loop ke-4 yang menyebabkannya melompati sementara Brainfuck memasuki loop dengan nilai 49.

Karena Brainbool tidak memiliki output desimal, outputnya 2010 dalam biner:

11111011010

Pembelahan

Satu-satunya bagian dari kode yang penting untuk fisi adalah:

R"2014";

The Rpanggilan di dalam atom yang bergerak ke kanan, "2014"cetakan 2014dan ;eksekusi pemberhentian.

Dibalik

Befunge hanya melewati karakter berikut:

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

Yang P3diperlukan untuk membuat gambar .ppm yang valid untuk piet, dan secara kumulatif mendorong 3 ke stack. yang vditempatkan untuk mengarahkan pointer ke bawah. Kemudian melewati 7dalam yang 17digunakan untuk menunjukkan lebar gambar .ppm. The >pengalihan pointer ke kanan. 7*mengalikan bagian atas tumpukan dengan 7 meninggalkan 49 (nilai ASCII dari 1) di atas tumpukan. ::menggandakan bagian atas tumpukan dua kali. The 1output dengan ,. 8 +menambahkan 8 ke kenaikan teratas ke ASCII 9. :,,output 9dua kali. 2 +menambah ASCII 1menjadi ASCII 3dan ,mencetak. Akhirnya @mengakhiri program.

Semuanya dicetak 1993.

Ruang putih

Spasi putih, seperti namanya, hanya menggunakan spasi putih dalam program-programnya. Inilah yang dilihat penerjemah Whitespace:

[Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][Space][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]

Sebagian besar dari apa yang dilakukan oleh kode ini tidak penting bagi pelaksanaan program (semua baris yang hanya berisi spasi cukup menekan nol ke tumpukan). Bagian yang penting:

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

Baris pertama mendorong 2003 ke stack. Setelah itu [Tab][LF][Space][Tab]cetak bagian atas tumpukan (2003) sebagai angka. Akhirnya tiga baris baris terakhir mengakhiri eksekusi program.

Rumput

Rumput mengabaikan semua karakter sampai pertama wdalam file dan setelah itu semua karakter yang tidak w, Watau v. Penerjemah Grass membaca:

wWWWwWWWWwv
wWWwWWWwv
wWWWwWWWWWwWWWWWWwwwWWWWWWWwWWWWWWwwwWWWWWWWWWWwWWWWWWWWWWwv
wWWWwWWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwWWWwv
wWWwwwwwwwwwwwWWWwWWWWWwWWWWWWWwWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWwv

Baris pertama mendefinisikan fungsi yang menambahkan dua ke apa pun yang dilewatkan. Baris kedua mendefinisikan fungsi yang menambahkan empat ke apa pun yang dilewatkan. Yang ketiga mendefinisikan fungsi yang mencetak dua tambah argumen, mencetak argumen dua kali, lalu akhirnya mencetak tujuh ditambah argumen (Rumput mencetak karakter berdasarkan nilai ASCII). Baris keempat, kelima dan keenam mendefinisikan fungsi yang menambahkan delapan, menambah 16, menambahkan 32, dan menambahkan 64 ke argumen mereka, masing-masing. Baris terakhir mendefinisikan fungsi utama yang mengambil karakter w(satu-satunya angka yang ditentukan sebelumnya di Grass, nilai ASCII 119) dan menambahkan 185 untuk itu menggunakan fungsi add yang didefinisikan dalam program serta built in menambahkan satu fungsi. Rumput membungkus angka pada 256 dan hasilnya 48 (sesuai dengan karakter0). Fungsi kemudian meneruskan ini ke fungsi baris ketiga yang mencetak 2007.

Penuh bintang

Starry mengabaikan segala sesuatu kecuali untuk ruang, +, *, ., ,, `, dan '. Jadi penerjemah berbintang hanya melihat:

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

Namun, label dan instruksi lompatan digunakan untuk melewati bagian kode yang dapat menyebabkan masalah jika dijalankan, jadi kodenya efektif seperti ini:

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

Kode ini mendorong dua ke tumpukan, menduplikasinya dua kali dan kemudian muncul dan mencetak salah satunya sebagai angka. Kemudian dorong nol, duplikat dan cetak kedua nol sebagai angka. Selanjutnya muncul salah satu dari dua dan melompat dan kemudian mendorong tujuh ke tumpukan dan muncul dan mencetak sebagai angka. Akhirnya muncul dua terakhir di stack dan melompat ke akhir program.

Python 2.7.2

Kode Python mengikuti format:

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

di mana ...berdiri untuk semua sampah lainnya.

Baris pertama, P3v=""ada karena untuk menjadi .ppmfile yang valid, kode kita harus mulai dengan P3ini biasanya akan kesalahan tetapi jika kita memberi tahu python itu adalah deklarasi variabel itu akan mengabaikannya.

Selanjutnya kita harus mencetak 2011. Namun karena cara a .ppmdiformat, kami tidak dapat memasukkan angka apa pun di baris ini. Untuk menyiasatinya, kami merangkum semua nilai ASCII dari string "~~~~~~~~~~~~~~~y"dan mencetak hasilnya. Akhirnya kami menggunakan tiga kutipan dari komentar multiline sehingga python mengabaikan yang lainnya.

Brainflak

Kami menyimpan yang terbaik untuk yang terakhir.

Brainflak, seperti yang lainnya, mengabaikan sebagian besar karakter. Karakter yang relevan adalah:

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

Kode python (([()])),, mendorong -1 ke tumpukan dua kali sehingga perlu dihapus sebelum program mulai memproses.

Setelah itu Brainbool menggunakan []nilad yang tidak melakukan apa-apa dan program dimulai.

(((((()()()()){}){}){}){})({({}[<()>()])}{}<[[]]>)mendorong 2016. Yang terakhir [<><>]adalah sisa-sisa Befunge dan Brainfuck tapi untungnya tidak melakukan apa-apa.

Ketika program berakhir, ia akan mencetak isi tumpukan, itulah yang dicetak 2016.

Wisaya Gandum
sumber
Cemerlang! Aku berharap Piet entah bagaimana akan muncul, memasukkan hal-hal dalam PPM itu brilian. Sudah selesai dilakukan dengan baik!
cincodenada
1
+1 untuk We saved the best for last. : D
DJMcMayhem

Jawaban:

38

5 tahun

#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] , dan 1999: C99

Komentar baris tunggal //ditambahkan dalam C99, jadi kompiler C89 akan membaca kode itu sebagai c=-4.5 / /*comment*/ -4.5, yang sama dengan c=-4.5 / -4.5, sedangkan kompiler C99 akan membaca c=-4.5 //comment/**/
- 4.5, yang sama dengan c=-4.5 - 4.5.
Bagian Python adalah komentar dalam program C.

2010: Python 2.7 , dan 2015: Python 3.5

Dokumen bervariasi antara Python 3 dan 2, program ini menggunakan panjang dokumen untuk mendeteksi versi Python.
Bagian C dalam sebuah string dalam program Python.

1993 [2] : Brainfuck

Itu pada dasarnya mengabaikan semua yang tidak .,[]+-<>. Karena program C ada ,di dalamnya, saya harus membuat Brainfuck untuk mengabaikan bagian itu dengan mengatur byte saat ini ke 0.


  1. Spesifikasi C89 dirilis pada tahun 1990. Info lebih lanjut .
  2. Saya tidak dapat menemukan tanggal rilis resmi, jadi saya akan percaya Esolangs dan Wikipedia .
betseg
sumber
4
Ini bagus, terutama -4.5/-4.5dan -4.5-4.5. Menghancurkan dua versi masing-masing dari dua bahasa utama cukup mengesankan, bahkan tanpa membuang BF di sana :-)
ETHproduksi
Ini bukan codegolf, tetapi a=jalur 2 tidak perlu
TheInitializer
@TheInitializer ya, saya mencoba tanpa a=dan itu memberikan kesalahan, jadi saya memutuskan untuk menyimpannya. Saya tidak tahu mengapa itu memberikan kesalahan, mungkin salah ketik.
betseg
@betseg jika kode itu hanya dieksekusi dengan Python, seharusnya bisa.
TheInitializer
17

15 tahun, JavaScript

Karena siklus rilis JavaScript sangat tidak biasa dan tidak konsisten, saya akan menggunakan implementasi Firefox. Tolong beri tahu saya jika ini tidak diizinkan.

Versi: Phoenix 0.1 , Firebird 0.6 , Firefox 1.0.0 , 1.5.0 , 2.0.0 , 3.0 Beta 1 , 3.0.0 , 3.5.0 , 3.6.0 , 4.0.0 , 10.0.0 , 18.0.0 , 27.0 .0 , 35.0.0 , 44.0.0 (semua diuji pada Windows 7)

Catatan penting: Menginstal dan membuka Firefox 1.0.0 atau versi yang lebih baru dapat menghapus semua data Firefox yang disimpan , termasuk riwayat dan bookmark.

Juga, dimulai dengan 1.0.0, Anda hanya dapat membuka satu versi pada satu waktu; mencoba membuka versi lain menghasilkan jendela baru dari versi yang sudah terbuka.

Instruksi

Kode

<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>
Produksi ETH
sumber
Anda dapat menambahkan tahun ke-16 dengan memasukkan BF: <!--<<<<-[>+<-----]>--.++++++++..------.[-][-->sebelum skrip dan komentar HTML lainnya hanya berisi ]sesudahnya.
Steven H.
6
@ SevenH. Um ... wow, saya bahkan tidak pernah berpikir untuk menyertakan esolang dalam hal ini. Dan itu cara yang sangat cerdas untuk memasukkan BF :-) Tapi saya tidak yakin saya benar-benar ingin ...
ETHproduksi
13

6 bahasa, Turtlèd dan brainfuck , Python 3.5, Python 2.7, > <> , Fission

Turtlèd belum ada sebelum tahun ini, dan begitu mudahnya objektif, bahkan jika github tidak menghitung, dan BF memiliki bukti halaman esolang, dirilis tahun 1993. Python 3.5 adalah 2015, 2.7 adalah 2010.> <> juga memiliki halaman esolang , yang menyatakan 2009, seperti halnya Fission, 2014

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

Saya mungkin harus memberikan kredit ke halaman konstanta bf di esolangs ... ¯ \ _ (ツ) _ / ¯

Cara kerjanya, jenis:

Turtlèd:

Turtlèd tidak benar-benar melakukan apa pun untuk jalur selain yang pertama:

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

Saya adalah seorang nop

Brainfuck

Brainfuck mengabaikan karakter yang tidak ada dalam perintahnya

ia melihat -[>+<-----]>--.++++++++..------.(yang terakhir. adalah dari bagian python)

yang hanya melakukan hal-hal Brainfuck, ia menggunakan pembungkus untuk membagi 255 dengan 5, kemudian kurangi 2 dari hasilnya, cetak, tambah 8 kali, cetak dua kali, pengurangan 6 kali, cetak

Python 2 dan 3

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

panjang dokumen untuk len bervariasi antara versi, sehingga mencetak tahun untuk versi 3 jika itu adalah panjang yang tepat, jika tidak untuk versi 2.

> <>

# memantulkan pointer ke belakang, sehingga menyentuh / di sisi lain dari garis itu, melewati ruang antara elsedan 2010, kemudian memantulkan lagi untuk menekan "2009", mendorong 9,0,0,2 ke stack, kemudian mencetak terbalik .

Pembelahan

Fission memiliki pasangan, sehingga kita dapat memiliki garis di bagian bawah yang dijalankannya sendiri:

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

3 tahun, 3 bahasa: 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   */ 

Beri nama filenya date.mixal.

  1. C (1990) - Mengkompilasi dengan peringatan dan cetakan 1990untuk stdout.
  2. TeX (1982) - Kompilasi dengan tex date.mixal; mencetak 1982ke file O.tex(abaikan output DVI).
  3. MIXAL (1997) - Kompilasi menggunakan GNU Mix Development Kit, mixasm date.mixaldan jalankan dengan mixvm -r date.mix; mencetak 1997ke perangkat teletype (= stdout).

Program TeX dan MIXAL dalam komentar di program C; program MIXAL muncul setelahnya \byesehingga TeX mengabaikannya. Program C dan TeX adalah komentar dalam program MIXAL. Untuk beberapa alasan gccbersedia menerima *main.

musarithmia
sumber
Saya lupa tentang MIXAL, +1: D
cat
13

3 tahun (GolfScript, CJam, MATL), 24 23 byte

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

Ini output

  • 2007 dalam GolfScript.

  • 2015 dalam CJam (versi 0.6.5).

  • 2016 di MATL (versi 19.2.0).

Penjelasan

Naskah Golf

Token yang tidak ditentukan adalah noops dalam GolfScript . Satu-satunya bagian dari kode yang benar-benar melakukan sesuatu adalah:

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

Semuanya mulai dari %ini adalah komentar.

[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"
Luis Mendo
sumber
Koreksi: di CJam setelah %Anda mendapatkan [11 10]. Bukan itu penting.
aditsu
@aditsu Whoops! Terima kasih, diedit
Luis Mendo
12

2 bahasa, Python 2.7 dan Python 3.5

Python 2.7 dirilis pada 2010 .

Python 3.5 dirilis pada 2015 .

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

Ini bergantung pada PEP 238 di mana operator /diubah dari divisi integer di Python 2 ke divisi floating-point di Python 3.

mil
sumber
3
Ini bisa menjadi tantangan yang menyenangkan jika itu melibatkan mengidentifikasi bug / perubahan dalam operator antara versi
mil
1
@ TuukkaX Ini bekerja untuk saya di Python 2.7.12 dan Python 3.5.1 di Fedora 24.
miles
1
Tidak bisakah kamu melakukannya '2010'if 3/2>1else'2015'?
Qwerp-Derp
15
Atau kami matematika:print(int(2010+1/2*10))
Jakube
2
print('2015'if 1/2else'2010')lebih baik
Cyoce
12

8 tahun, 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

"Salah satu program dapat mencetak ke STDERR, atau membuang kesalahan waktu runtime / kompilasi dan peringatan selama output yang benar masih dicetak ke STDOUT atau file." Saat ini, satu-satunya tampilan non-error adalah tahun, jadi kami mematuhi aturan ini. Namun, jika Anda ingin menulis ke memori, ganti Disp (date)dengan (date)->I.

Referensi:

  1. Tanggal rilis kalkulator - https://epsstore.ti.com/OA_HTML/csksxvm.jsp?nSetId=74258
  2. TI-83 + OS 1.15 tanggal rilis - http://wikiti.brandonw.net/index.php?title=83Plus:OS:VersionDifferences#TIOS_1.15
  3. Kompatibilitas kalkulator - http://tibasicdev.wikidot.com/compatibility
  4. TI-84 + tanggal rilis CSE - https://www.amazon.com/Texas-Instruments-Silver-Graphing-Calculator/dp/B00AWRQKDC
  5. TI-84 + tanggal rilis CE - http://www.prnewswire.com/news-releases/texas-instruments-unveils-the-new-ti-84-plus-ce-300026266.html dan https: // www. cemetech.net/forum/viewtopic.php?t=8870
Timtech
sumber
9

5 tahun, Go 1.0, 1.1, 1.4, 1.5, 1.6: 285 257 byte

(1,2 dirilis pada 2013 seperti 1,1, 1,3 pada 2014 seperti 1,4, dan 1,7 pada 2016 seperti 1,6.)

Belum menguji ini pada setiap versi karena saya hanya dapat mengakses 1.6, tetapi harus berfungsi secara teori! Perubahan bahasa kemungkinan akan menyebabkan program tidak dapat dikompilasi, jadi saya mengandalkan perubahan pustaka standar.

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)}

Tidak dikumpulkan dan berkomentar:

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)
}
LAMBANG
sumber
7

4 tahun, 99 byte / 77 karakter

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

Catatan: Saya tidak yakin apakah tahun-tahun itu benar

  • Python 2.7, 2010
  • Javascript, 1991
  • Emotinomicon, 2015
  • ><>, 2009

Butuh beberapa saat untuk mencari tahu bagaimana membuat Python dan JS bekerja bersama.

Penjelasan

v=1//1;"""set variabel vuntuk 1dibagi dengan 1Python, dan ke 1dalam Javascript ( //memulai komentar dalam Javascript), dan ;"""memulai string multiline dalam Python. Tidak ;dapat diganti dengan baris baru karena itu akan membuat Javascript berhenti bekerja.

1991/*"""adalah sisa dari string multiline. Ruang diperlukan agar> <> tidak mendorong 1ke tumpukan. Karena awal string multiline adalah bagian dari komentar di Javascript, ia mencetak 1991dan memulai komentar multiline.

for i in[0]:print 2010#🔟😃😇🔟😗➕➕😨dalam Python, adalah for loop yang mengulang daftar [0]dan berjalan print 2010. Komentar itu hanya kode Emotinomicon (mengabaikan semua yang bukan emoji atau string). Di> <>, itu ( f) mendorong 15 ke stack.

Untuk loop tidak dapat dihapus karena> IP <> turun di kolom 1, dan pbukan perintah yang valid di> <>. Anda juga tidak dapat menggantinya dengan ifpernyataan, karena iini adalah perintah untuk mengambil input di> <>.

""" adalah awal dari string multiline.

" adalah bagian dari string multiline, diperlukan untuk menutup string yang kita buka di> <> (tanda kutip pertama dari baris sebelumnya memulai string di> <>).

>9002nnnn;di> <>, mengubah arah IP ke kanan, mendorong 9, 0, 0dan 2, output ini sebagai angka dan berakhir program.

"""#*/dengan Python, akhiri string multiline dan mulai komentar. Dalam Javascript, */membuat komentar multiline berakhir.


Versi bonus dengan Gol> <>:

5 bahasa, 4 tahun, 118 114 byte / 96 92 karakter

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

Penjelasan²

IP dimulai di sudut kiri atas, ke kanan. Itu vmembuatnya turun.

fmendorong 15.

" mulai string.

` digunakan untuk keluar dari karakter, sesuatu yang> <> tidak miliki.

"harus menutup string, tetapi kami menggunakan `, jadi tidak akan.

> bagian dari string.

" mengakhiri string.

>5102nnnn;adalah kode aktual. >membuat IP ke kanan, 5102mendorong 5, 1, 0dan 2, dan nnnn;mencetak angka dan berakhir program.

akrolit
sumber
Kesalahan python pada karakter unicode tanpa header yang tepat. ( 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)
Wheat Wizard
@WheatWizard Simpan file sebagai UTF-8
acrolith
7

7 tahun, 8 browser

Tidak persis tanggal rilis bahasa karena css sebenarnya tidak memiliki rilis, tetapi versi peramban (mungkin bisa dianggap sebagai versi kompiler?)

Untuk browser berikut, ini mencetak nama browser, versi dan tanggal rilis dan tidak ada yang lain. Itu tidak mencetak hal yang sama untuk beberapa versi kemudian, (Anda akan melihat kromium adalah salah satu versi terlambat dalam screenshot karena sulit untuk mengunduh versi chrome lama dengan nomor versi)

Saya bisa mencetak nomor versi yang saya gunakan tetapi saya lebih suka menunjukkan versi pertama di mana fitur yang digunakan diperkenalkan.

  • IE6
  • IE7
  • IE8
  • IE9 (belum diuji, tidak memiliki IE9)
  • Firefox 4
  • Firefox 3.6
  • Chrome 18
  • Chrome 21
  • Browser modern

FF3.6 FF4 Chromium19 Chromium22 IE8-quirks Kompatibilitas 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>
qwazix
sumber
2
CSS sebenarnya memiliki rilis. Ada 1.0, 2.0, 2.1, 3.0, dan 4.0. Pertanyaannya bahkan mengatakan untuk menggunakan Wikipedia atau situs bahasa sebagai bukti tanggal rilis, jadi Anda harus memeriksa. Tanggal rilis awal: 17 Desember 1996
mbomb007
Itu tidak dengan pengertian bahwa tidak ada implementasi dari salah satu level tersebut (mereka bahkan tidak disebut rilis, karena mereka tidak, Anda harus memeriksa tautan yang Anda posting). Dan CSS3 dan 4 bahkan tidak memiliki tanggal rilis karena mereka dibuat on-the-fly, dan bolak-balik antara konsep, kandidat dan rekomendasi. Juga, tidak ada browser yang mengimplementasikan level spesifik 100% dan 0% dari level berikutnya sehingga tanggal terbaik yang dapat Anda buat adalah tanggal rilis browser.
qwazix
Maka bahasa yang Anda pilih tidak memenuhi spesifikasi yang diperlukan untuk tantangan ini. Tidak dengan cara Anda mencoba melakukannya. Bahasa ditentukan oleh implementasinya, jadi Anda harus memilih browser dan tetap menggunakannya, menggunakan versi browser yang berbeda , bukan browser yang berbeda. Saya masih bertanya kepada OP.
mbomb007
OP tidak mengatakan versi yang berbeda dianggap sebagai bahasa yang berbeda, mereka hanya mengatakan untuk mencetak tahun rilis versi bahasa yang digunakan, untuk bahasa yang berbeda . Namun ~ setengah dari jawaban didasarkan pada asumsi bahwa versi yang berbeda cukup berbeda untuk dihitung sebagai bahasa. Jika python 2.5.0 dan 2.5.1 dianggap cukup berbeda, saya tidak dapat memahami bagaimana IE dan Chrome tidak.
qwazix
6

3 tahun, 89 byte

Python 2, JavaScript (ES6) dan Perl

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

Yang pertama evalakan berjalan 1pada Python 2 dan print=_=>console.log(1995)pada JavaScript dan Perl menggunakan fitur pembagian integer dari Python 2. Ini menciptakan printfungsi dalam JavaScript dan Perl hanya diam-diam peduli tentang kesalahan sintaks dan menjalankan terlepas.

Yang kedua evalbergantung pada Perl interpolasi variabel $$(PID saat ini) ke dalam string, yang akan menjadi benar bila dibandingkan (menggunakan >operator) terhadap "0"(Python membutuhkan string dalam perbandingan itu sedangkan Perl secara implisit mengkonversi ke integer).

Saya dapat menggunakan sepatu dalam lebih banyak bahasa, tetapi ingin memiliki solusi yang tidak menyalahgunakan komentar dan hanya bekerja dalam bahasa 'biasa'.

Saya menggunakan halaman Wikipedia ini untuk mengambil tahun untuk digunakan.

Dom Hastings
sumber
2

3 bahasa, 3 tahun

Jawaban ad-hoc untuk bersenang-senang.

2002!~+++++++[<+++++++>-]<[.++++++++..------.[-]] 2016 !.
  • Mouse-2002 : semuanya setelahnya~adalah komentar, dan bagian pertama, yang juga bisa ditulisC0U!!!, dicetak2002.

  • komitmen pra-tantangan dari Calc ini : yang merupakan juru bahasa kalkulator berbasis tumpukan yang baru saja sayarancang di C11 untuk Pemrograman II, bagian dari program sebelum ruang pertama mencetak kesalahan (diizinkan berdasarkan spesifikasi tantangan), dan2016 !.mencetak2016.

  • Brainfuck : mencetak 1993 seperti yang terlihat di jawaban lain. Eksternal yang terakhir .diabaikan oleh beef.

Perhatikan bahwa tampilan Calc dari stack saat ini < stackdengan setiap jalur input yang tidak kosong adalah bagian dari prompt >, bukan bagian dari output.

kucing
sumber
Di mana saya bisa mengetahui tentang Mouse-2002? Github tampaknya tidak memiliki spesifikasi apa pun.
Wheat Wizard
@WheatWizard README repositori berisi tautan ke MUSYS asli Dr. Grogono dan reboot David Simpson 2002 , yang bersama-sama melukis gambar OK.
kucing
2

Microsoft Excel / Google Sheets, 22 Bytes

Fungsi Lembar Kerja Anonim yang tidak mengambil input dan output 1987di Microsoft Excel, dan 2006di Google Sheets

=IfError(M(2006),1987)
Taylor Scott
sumber
0

Perl 5 & Perl 6 (2 tahun)

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

Rilis pertama dari Perl 5 adalah pada tahun 1994

Rilis resmi pertama dari Perl 6 adalah pada tahun 2015

bb94
sumber