Tugas Anda adalah menulis sebuah program yang mengeksekusi dalam sebanyak mungkin bahasa, dengan sesedikit mungkin karakter. Untuk menghindari solusi sepele, program harus mencetak nama bahasa yang digunakannya.
Mencetak gol
Program Anda harus bekerja dalam setidaknya 5 bahasa. Skor suatu program diberikan sebagai:
(number of languages)1.5 / (length of program)
Skor tertinggi menang, tidak lebih cepat dari 10 hari setelah jawaban valid pertama.
print()
untuk Perl, Python, PHP, Processing dan R dianggap sepele atau apakah itu dapat diterima?n * n / length
Jawaban:
Bash, C, C ++, Obj-C, Obj-C ++, Perl, PHP, Ruby, 183 karakter
skor ~ 0,1236
Untuk kode C dan seperti C, saya berutang pada @ baby-kelinci. Yang lain terinspirasi oleh pengakuan bahwa banyak bahasa memiliki
eval
pernyataan yang dengan enggan menerima sintaks yang tidak valid.Keluarkan nama bahasa menjadi keluaran standar. Terkadang menghasilkan banyak pesan kesalahan pada kesalahan standar, jadi tekan dengan mereka
2>/dev/null
saat Anda menjalankannya.Solusi php menghasilkan
'PHP'
(termasuk tanda kutip tunggal), yang mungkin sedikit menekuk aturan.Sunting terakhir: mencukur 12 karakter dari wawasan yang
$=
adafalse
di Ruby,60
di Perl, danprint$=?...
hampir pasti merupakan kesalahan di Bash. Dicukur 7 lebih banyak dari wawasan tes Perl / Ruby / Bash sekarang bisa masuk ke pernyataan eval tunggal.Jika aturan dapat menoleransi lebih banyak tekukan, saya menyajikan 8 bahasa ini, solusi 43 karakter (skor 0,5262)
yang output meliputi nama interpreter untuk
php
,perl
,lua
,rscript
,ruby
,python
,cat
, danrot13
.sumber
print("phperluarscriptrubypythontibasicatebg13");
Disp
atauOutput(
atautext(
token, tidak adaprint(
perintah. Dan termasuk string sebagai bagian dari ekspresi bernilai real dinyatakan dalamERR:INVALID SYNTAX
, bukan tampilan string (bahkan sebagai nilai balik). (Juga, tidak ada;
; Penggunaan TI-Dasar:
)echo Bash
denganps -ocomm= -p$$
? Ini akan menampilkan nama shell untuk setidaknya bash, zsh, ksh, csh dan tcsh, mungkin yang lain.C, C ++, BF, BASH, dan Ruby; 280 karakter
Skor sekitar 0,040
Perhatikan bahwa saya menggunakan sistem Linux.
Kode dijalankan atau dikompilasi dengan perintah berikut (nama file adalah
test.c
)C:
Saat dijalankan dengan
./a.out
, output adalahC
C ++:
Saat dijalankan dengan
./a.out
, output adalahC++
PESTA:
Output:
BASH
Rubi:
Output:
Ruby
BrainF ***:
Diverifikasi menggunakan yang berikut:
Seorang debugger JS
Seorang juru bahasa gratis
Penerjemah saya
Output:
brainfuck
Perhatikan bahwa jika debugger JS digunakan, maka dua tanda minus pertama harus dihapus. Mereka dimasukkan untuk mengimbangi tanda-tanda plus dalam string literal
"C++"
. Ini adalah proyek yang sangat menyenangkan, saya sedang berusaha menambahkan lebih banyak bahasa.Untuk menambah kejelasan lebih lanjut, berikut ini adalah spesifikasi juru / kompiler saya:
gcc versi 4.6.3
ruby 1.9.3p194 (2012-04-20 revisi 35410) [x86_64-linux]
GNU bash, versi 4.2.24 (1) -release (x86_64-pc-linux-gnu)
CATATAN SISI
Dengan menggunakan trik baby-rabbit saya dapat memperluas kode saya agar dapat dieksekusi dalam 7 bahasa (objektif-C dan objektif-c ++ ditambahkan) Ini bukan solusi saya karena saya memang menyalin beberapa, tapi saya pikir saya akan memamerkannya.
Perbarui 9,12 Ditambahkan SmallTalk dijalankan dengan gnu-smalltalk!
SmallTalk, C, C ++, Objective-C, Objective-C ++, BASH, BF, Ruby; 384 karakter (Nilai: 0,059)
Dalam kode di atas Anda perlu mengganti nama file untuk menghasilkan nama langauge untuk objektif-c, obj-c ++, c dan c ++.
sumber
brainf***
?if [ 1 = 2 ]
alih-alihif [ 1 == 2 ]
, karena skrip tanpa hashbang dieksekusi oleh sh, bukan bash. sh mungkin atau mungkin bukan bash, di Debian itu dasbor.bash, c, c ++, obj-c, obj-c ++; 134 karakter; skor = 0,083
ganti nama file dan jalankan / kompilasi sebagai:
(di mana cc adalah dentang-421.10.42)
sumber
Lua, Ruby, VimL, Sed, Befunge (129 karakter; ~ 0,087 poin)
Tidak yakin apakah yang ini diperhitungkan - bagian sed tertanam di garis shebang yang bisa dibilang merupakan peretasan untuk mengatasi batasan. Ini juga berarti bahwa itu harus dijalankan sebagai yang dapat dieksekusi dan tidak langsung dengan
sed
.Saya beruntung bahwa semua bahasa lain (sans Befunge) secara otomatis mengabaikan garis shebang (meskipun tampaknya Ruby menolak untuk menjalankan file jika memiliki garis shebang yang tidak mengandung string 'ruby' di dalamnya).
Penggunaan sampel:
sumber
BF, Bash, Batch, C, vi (163 karakter; skor ≈ .0686)
(
<ESC>
kepanjangan dari kode ASCII 27.)Saya menguji ini, sebagai file batch, dengan versi MS-DOS 6.22 dari COMMAND.COM. Secara default, interpreter itu mencampur baris kode sumber dengan output. Untuk mencegah hal itu terjadi, jalankan
echo off
sebelum menjalankan file batch.Untuk menjalankan kode vi, yang baru saya uji menggunakan Vim, gunakan perintah berikut:
sumber
touch tmpfile
atau: > tmpfile
bukannyacat /dev/null > tmpfile
.bash, zsh, ksh, csh, tcsh, 15 karakter, skor 0,745
Yang ini agak sulit karena mereka semua bahasa terkait, tetapi ada perbedaan:
sumber
Every Python Release, 18,37291 poin
Secara teknis valid, jika Anda menganggap semua versi python sebagai bahasa yang berbeda. Saat ini ada 116 versi python, yang saya percaya memberi saya skor sekitar 18,37291.
(Juga saya mengerti jika ini tidak dianggap sebagai jawaban yang valid, ini hanya untuk bersenang-senang)
sumber
Bash, C, Gawk, Perl, vi (145 karakter; skor ≈ .077)
(
<BS>
singkatan dari kode ASCII 8.<ESC>
singkatan dari kode ASCII 27.)Untuk menjalankan kode vi, yang baru saya uji menggunakan Vim, gunakan perintah ini:
sumber
Ini adalah pilihan bahasa yang murah, tapi begini:
CoffeeScript, JScript, Mozilla Javascript (≈ JavaScript 1.3), ECMAScript Edition 5, ECMAScript Edition 3, 223 karakter, skor ≈ 0,0501)
sumber
a="undefined";if(typeof arguments!=a)...else if(typeof WScript!=a...
oh dan Anda juga dapat mencoba bermain golf ....{
/}
/;
... idenya adalaha
untuk menghindari penggunaan kembali"undefined"
, Anda juga bisa melakukannyab=alert
dan kemudianb("this is also still just javascript")
. lagi pulaThe golden rule of CoffeeScript is: "It's just JavaScript"
(dari coffeescript.org ), Anda juga dapat menggunakan beberapa jquery untuk menambahkan bahasa keenam ....[].map
bukanArray.prototype.map
?Java, Lisp, Whitespace, Intercal, PHP, Befunge-98; skor = 0,0189
Ini awalnya jawaban untuk ini .
sumber
public class...
akan menyebabkan masalah kompiler.Windows Batch, TI-Basic, Golf-Basic 84 , Quomplex , dan GTB 5 * 2/93 = 0,11
Bagaimana itu bekerja
Windows Batch adalah yang paling mudah, karena
::
memulai komentar. Cukup sederhana untuk diterapkan.TI-Basic tidak mendukung huruf kecil atau backtick, menyebabkannya melompati pernyataan
d`"GOLF-BASIC 84":g`1
, yang dievolusikan Golf-Basic, Menampilkan pesan dan meneruskan ke Label 1, yang segera diakhiri. Ini mirip untuk GTB, dengan karakter tampilan yang praktis~
,. By the way, string tanpa tampilan akan dimasukkanAns
. Jika tidak ada perintah Tampilan yang mengikutinya,Ans
akan ditampilkan (bukan yang terjadi di sini).Quomplex terperangkap di awal karena sintaksisnya yang kompleks tidak memungkinkan untuk dilewati. Yang dilakukannya hanyalah menambah
"Quomplex"
output, dan kemudian untuk penguasaan program ...Penguasaan Sintaks Pemrograman
Jenius murni. Quomplex mengabaikan
:
dan mengambil"'
dan'"
sebagai string, membiarkannya untuk mengeluarkan stack dan binasa dalam loop while yang tak terbatas ([]
). Sementara itu, Golf-Basic dan TI-Basic mengambil keseluruhan"'*[]'"
sebagai string, karena'
merupakan operator matematika, bukan operator string.sumber
:
menunjukkan label dalam file batch, bukan komentar. Memang benar bahwa ia tidak menjalankan apa pun dengan sendirinya.::
masih (meskipun label). Saya lebih suka menggunakannya daripadaREM
, terutama karena diperlukan dalam TI-Basic.JScript, EcmaScript Edition 3, 5, 6, 2016, Node, JavaScript Mozilla (skor ≈ 0,1342)
Jawaban ini awalnya didasarkan pada jawaban Peter Olson, tetapi minus CoffeeScript (karena bahasa yang signifikan dengan ruang kosong dapat mengerikan untuk bermain golf).
Saya juga menambahkan Node , ES6 dan ES2016 dan sedikit kode golf , hampir tiga kali lipat skor aslinya.
sumber
16 bahasa, 348 byte, skor: 0,183908046
Ini bekerja di C (gcc), C ++ (gcc), C (ecpp), C ++ (ecpp), C (dentang), C ++ (dentang), C (tcc), sh, tanda hubung, bash, zsh, ksh, csh, tcsh, rk, dan SIL.
sumber
JScript, EcmaScript Edition 3, 5, 6, 2016, 2017, Node, Mozilla JavaScript (skor = .174193548387), CoffeeScript (sebagai bahasa yang memiliki spasi signifikan dapat menjadi hal yang mengerikan untuk bermain golf).
sumber