संकलक की पहचान करें


11

चुनौती
आप एक समारोह में दिया जाता compile(s: String): Integerहै जो रिटर्न 0अगर sसंकलित किया जा सकता है और के अलावा और कुछ 0अगर यह विफल रहा है (जिसके परिणामस्वरूप कोड महत्वपूर्ण नहीं है)।

बात यह है कि आप यह नहीं जानते कि फ़ंक्शन किस भाषा के लिए बनाया गया है, इसलिए यह आप पर निर्भर करता है कि फ़ंक्शन को कोड के छोटे स्निपेट देकर और यह देखने पर कि वह क्या देता है। अच्छी बात यह है कि वैज्ञानिकों की एक टीम ने आपके सामने कोशिश की है और सूची को सी, सी ++, सी #, जावा और जावास्क्रिप्ट तक सीमित कर दिया है (ये एकमात्र व्यापक भाषाएं हैं जिनके समान सिंटैक्स हैं जो मैं सोच सकता था)।

नियम

  • सामान्य कोड-गोल्फ नियम लागू होते हैं।
  • कोई सख्त आउटपुट स्वरूप नहीं है; जब तक यह पठनीय और समझ में आता है तब तक ठीक है।
  • यदि ये 5 भाषाएं आपके लिए पर्याप्त नहीं हैं, तो आप अपना पसंदीदा जोड़ सकते हैं और आपको अतिरिक्त सितारों (★) (जो कुछ नहीं करते हैं) से पुरस्कृत किया जाएगा।

नोट 1 : संकलक नवीनतम मानक के साथ अद्यतित है जो भी भाषा इसके लिए डिज़ाइन की गई है।
नोट 2 : मुझे पता है कि जावास्क्रिप्ट संकलित नहीं करता है , लेकिन यह हालांकि कुछ पार्सिंग प्रक्रिया है; यदि यह JavaScript कोड मान्य है तो यह पास हो जाता है


2
हम प्रदान करने के लिए क्या हैं? तार का वह सेट जिसका उपयोग संकलक को अलग-अलग बताने के लिए किया जा सकता है, तार की कुल लंबाई को कम करता है?
ज्योफ रेनी

@GeoffReedy मैं भाषा को निर्धारित करने के लिए कोड के लिए देख रहा था, लेकिन आपके द्वारा दिए गए स्पष्टीकरण स्वागत से अधिक हैं
adrianton3

जवाबों:


7

कुल स्निपेट लंबाई 8; परीक्षण कार्यक्रम 83 (C)

C ++, Java और C # से जावास्क्रिप्ट और C को भेदें

a;

सी से विशिष्ट जावास्क्रिप्ट

0

C # और Java से C ++ डिस्टि्रक्ट करें

#

भेद # और जावा

[:a]

भाषा को निर्धारित करने के लिए सी कोड

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

स्निपेट के साथ परीक्षण किया गया

C: gcc 4.7.2 with -std = c99
C ++: g ++ 4.7.2 with -std = c ++ 11
Java: javac 1.7.0_09
जावास्क्रिप्ट: JavaScript-C 1.8.5
C #: मोनो C # संकलक संस्करण 2.50.8.0


#define C(x)compile(#x)?एक स्थान और बहुत सारे उद्धरण बचाता है।
ugoren

@ धन्यवाद धन्यवाद, मैंने वास्तव में सोचा था कि मैंने कड़ेपन की कोशिश की लेकिन यह किसी कारण से काम नहीं आया; मुझे कुछ और समस्या भी हुई होगी, क्योंकि यह अब ठीक काम करता है
ज्यॉफ रेडी

लेकिन आपने किसी तरह इसे मिला दिया - C(#x)काम नहीं करेगा।
बदसूरत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.