Derleyiciyi tanımlayın


11

Meydan
Sen bir işlev verilmiştir compile(s: String): Integerdöner 0eğer sderlenmiş olabilir ve başka bir şey 0bu (Ortaya çıkan kod önemli değildir) başarısız olursa.

Mesele, işlevin hangi dilde yapıldığını bilmemenizdir, bu nedenle küçük kod parçacıkları işlevini vererek ve geri döndüğünü gözlemleyerek bunu anlamanız size bağlıdır. İyi yanı şu ki, bir bilim insanı ekibi sizden önce denemiş ve listeyi C, C ++, C #, Java ve JavaScript ile daraltmıştır (bunlar aklıma gelen benzer sözdizimine sahip tek yaygın dillerdir).

kurallar

  • Genel kod golf kuralları geçerlidir.
  • Katı bir çıktı biçimi yoktur; okunabilir ve anlaşılır olduğu sürece sorun değil.
  • Bu 5 dil sizin için yeterli değilse, kendi favorilerinizi ekleyebilirsiniz ve ekstra yıldızlarla ödüllendirileceksiniz (★) (hiçbir şey yapmaz).

Not 1 : derleyici, tasarlandığı dilin en son standardıyla günceldir.
Not 2 : JavaScript'in derlenmediğini biliyorum , ancak bazı ayrıştırma işlemine devam ediyor; geçerli bir JavaScript kodu varsa, o zaman geçer


2
Ne sağlayabiliriz? Derleyicileri ayırmak için kullanılabilecek dizeler kümesi, dizelerin toplam uzunluğunu en aza indirir mi?
Geoff Reedy

@GeoffReedy Sadece dili belirlemek için kod arıyordum, ancak sağladığınız açıklamalar hoş geldiniz
adrianton3

Yanıtlar:


7

Toplam pasaj uzunluğu 8; test programı 83 (C)

JavaScript ve C'yi C ++, Java ve C # 'dan ayırın

a;

JavaScript'i C'den ayırın

0

C ++ 'ı C # ve Java'dan ayırın

#

C # ve Java'yı ayırt edin

[:a]

Dili belirlemek için C kodu

#define C(x)compile(#x)?
main(){puts(C(a;)C(#)C([:a])"J":"C#":"C+":C(0)"C":"JS");}

Snippet'ler ile test edildi

C: gcc 4.7.2 -std = c99 ile
C ++: g ++ 4.7.2 -std = c ++ 11 ile
Java: javac 1.7.0_09
JavaScript: JavaScript-C 1.8.5
C #: Mono C # derleyici sürümü 2.10.8.0


#define C(x)compile(#x)?yerden ve çok sayıda tırnak kaydeder.
ugoren

@ugoren teşekkürler, aslında stringification şey denedim düşündüm ama bir nedenle işe yaramadı; Başka bir sorunum da olmalı, çünkü şimdi iyi çalışıyor
Geoff Reedy

Ama bir şekilde onu karıştırdın - C(#x)işe yaramaz.
ugoren
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.