क्या C ++ कंपाइलर के लिए अनुपालन परीक्षण है? [बन्द है]


21

क्या, कहीं, एक स्वतंत्र रूप से प्रयोग करने योग्य / सुलभ स्क्रिप्ट, स्रोत फ़ाइल, या जो कुछ भी है, जो किसी दिए गए सी 1 डायलर के अनुपालन को मापने में सक्षम है?

उदाहरण के लिए, ब्राउज़रों के लिए एसिड 3 परीक्षण: http://acid3.acidtests.org/

मेरे द्वारा देखे जाने वाले परिणाम एक वैश्विक प्रतिशत नोट (या एकाधिक नोट्स, प्रत्येक मानक के लिए एक, उदाहरण के लिए, c ++ 98, c ++ 11, c ++ 14, आदि), और फिर "सफलता" के साथ विस्तृत परीक्षण होंगे। या उनमें से प्रत्येक के लिए "विफलता"।

बैकग्राउंड: मैंने काम को बढ़ावा देने और कुछ चुनौतीपूर्ण संकलकों के बारे में चर्चा की। मेरे वार्ताकार ने एक अकादमिक परियोजना को बढ़ावा देने के बारे में बात की, क्योंकि यह प्रमुख C ++ संकलक में काम नहीं करेगा, और मुझे जवाब दिया कि मानसिक रूप से चुनौती वाले संकलक की गणना नहीं करनी चाहिए। एक संकलक के वास्तविक अनुरूपता को कोड के साथ मापने में सक्षम होने के कारण संकलक का मूल्यांकन करने में मदद मिलेगी, और "कोने के मामलों" की खोज करने में मदद मिलेगी जो उनके साथ संकलित क्रॉस-प्लेटफॉर्म कोड से बचा जाना चाहिए।

संपादित करें: 2013-06-22

उत्तर नहीं, लेकिन जाहिर है, सी ++ समिति इस विषय पर काम कर रही है:

SG10, फ़ीचर टेस्ट: क्लार्क नेल्सन (इंटेल)। पोर्टेबल कोड के लिए एक तरीका निर्धारित करने के लिए कि क्या कोई विशेष C ++ उत्पाद एक विशेषता को लागू करता है, यह जांचने के लिए कि हम मानक का विस्तार जारी रखते हैं या नहीं, इसकी जांच कैसे करें।

स्रोत: http://isocpp.org/std/the-committee


यह है: peren.com/pages/products_set.htm । एक उत्तर का प्रयास नहीं करेंगे, क्योंकि मैंने इसका उपयोग नहीं किया है और मुझे यकीन नहीं है कि यह C ++ समुदाय में स्थिति है।
Yannis

1
बूस्ट प्रमुख C ++ कंपाइलर में काम करता है। शायद उन संकलकों के प्राचीन संस्करण नहीं हैं, और शायद तुलनात्मक रूप से अस्पष्ट संकलक आपकी कंपनी पर निर्भर नहीं हैं, लेकिन रिलीज नोट्स में परीक्षण किए गए संकलकों की उस विशाल सूची को देखें । और वह सिर्फ बूस्ट लोगों ने खुद का परीक्षण किया है! बूस्ट अकादमिक शब्द के अर्थ में नहीं है, और आपको उस कथन को खारिज करने के लिए संकलक का मूल्यांकन करने की आवश्यकता नहीं है।

4
मैं लगभग इस सवाल पर हंसते हुए अपनी कुर्सी से गिर गया। .... यह एक बहुत ही वैध प्रश्न है, मैं यहाँ जवाबों के लिए दिलचस्पी रखता हूं ..... यह 2013 है - निश्चित रूप से कुछ मौलिक है क्योंकि हमारे टूल चेन टीडीडी का उपयोग करते हैं - या क्या यह एक बंद है मामला "मैं जो कहता हूं, वह करो जो मैं नहीं करता हूं ......"
मैटनज़

6
करीबी वोट क्यों? मेरा मानना ​​है कि यह एक बहुत ही मान्य और प्रासंगिक प्रश्न है। अधिकांश पेशेवरों द्वारा उपयोग किए जाने वाले अधिकांश उपकरणों के लिए मानकों के अनुपालन का प्रमाण अनिवार्य है।
मटनज

1
मुझे लगता है कि यह C ++ समिति के सबसे महान reoccurring blunders / विफलताओं में से एक है। मैं बहुत अधिक आश्चर्यचकित हूं कि वास्तव में होशियार लोग एक ही गूंगे को बार-बार करते रहते हैं।

जवाबों:


5

किसी दिए गए C ++ कंपाइलर के अनुपालन का परीक्षण करने का एक तरीका है एक (बड़ा) टेस्टसुइट, यानी C ++ फ़ाइलों का एक गुच्छा जो भाषा के सभी पहलुओं का परीक्षण करता है।

अच्छी तरह से जाना जाता testuites gcc और llvm testuites हैं। ये संकलक के सभी प्रकार के पहलुओं का परीक्षण करते हैं, जाहिर है कि अनुरूपता सहित। हालाँकि यह विशेष रूप से (विशेष रूप से मेरी जानकारी के अनुसार) के अनुरूप अनुरूपता का आकलन करने के लिए कठिन है, अनुरूपता पर कोई विशेष रिपोर्ट उत्पन्न नहीं हुई है।

इस दायरे में आपके पास:

  • जीसीसी सी-टॉर्चर परीक्षण का उपयोग जीसीसी कंपाइलर का परीक्षण करने के लिए किया जाता है
  • LLVM टेस्टसुइट: क्लैंग कंपाइलर और llvm बैकएंड के लिए निर्देशित परीक्षणों का मिश्रण और कंपाइलर का परीक्षण करने के लिए पूर्ण विकसित अनुप्रयोगों का एक सेट।
  • LLVM libcxx परीक्षण (libcxx रिपॉजिटरी का हिस्सा) C ++ 11 समर्थन का परीक्षण करने के लिए।

कुछ व्यापक परीक्षण हैं जो उपलब्ध सी / सी ++ अनुरूपता का परीक्षण करने के लिए हैं। काश ये सभी 10k-40k के क्रम में वाणिज्यिक लाइसेंस हैं।

  • सुपरटेस्ट : इस सूची में सबसे व्यापक। C99, C ++, एम्बेडेड, DSP-C अनुरूपता के लिए मोटे तौर पर 3 मिलियन निर्देशित परीक्षण।
  • बेर हॉल । C ++ लाइब्रेरी सहित C और C ++। समग्र परीक्षण प्रक्रिया को नियंत्रित करने के लिए एएनएसआई सी अनुरूपता, यादृच्छिक कार्यक्रम जनरेटर, परीक्षण टेम्प्लेटिंग और एक स्क्रिप्टिंग व्याख्याकार शामिल है।
  • बारहमासी । C और C ++।
  • नल का पत्थर । सी ही।

4

सबसे करीबी चीज जो मैं जानता हूं वह एक विशिष्ट मानक संस्करण के संदर्भ में है । इसी तरह, ऐसे ब्लॉग पोस्ट हैं जिनमें सामग्री की तरह है। हालाँकि, मैं एक वास्तविक या डे ज्यूर बॉडी, टेस्ट या टेस्ट सूट के बारे में नहीं जानता जो इस तरह के मामलों पर नियम करता है। यहां तक ​​कि isocpp.org के पास वर्तमान में अनुरूपता संसाधन नहीं हैं। निकटतम आप प्राप्त कर सकते हैं शायद प्रत्येक विक्रेता के विशिष्ट अनुरूपता चार्ट हैं जो सबसे अच्छे रूप में असंगत है।

जैसे Clang , GCC , MSVC , Intel

वास्तव में केवल कुछ प्रतिस्पर्धी कंपाइलर हैं (कम से कम x86 / x64 स्पेस में - मुझे लगता है कि यह कम लोकप्रिय प्लेटफार्मों के लिए भी मामला है), लेकिन मैं मानता हूं कि एक संदर्भ होना बहुत अच्छा होगा, खासकर अब यह है कि मानक है गति बढ़ा रहा है।


0

मैं किसी भी मानक परीक्षण से अनजान हूं, हालांकि निम्न URL आधिकारिक मानक वेबसाइट comitee http://www.open-std.org/jtc1/sc22/wg21/ है

साथ ही, बूस्ट में पाई जाने वाली कई चीजें सी ++ मानक में अपना रास्ता बनाती हैं। यूटा स्टेट यूनिवर्सिटी के डॉ। केनेथ सुंदरबर्ग के अनुसार।

मैं अभी तक इसकी विश्वसनीयता को सत्यापित नहीं कर सकता, मैं अभी भी यह पता लगाने की कोशिश कर रहा हूं कि क्या यह विश्वसनीय है, लेकिन https://groups.google.com/forum/?fromgroups#-forum/comp.std पर Google समूह .c ++ का दावा है कि कोई आधिकारिक परीक्षण मौजूद नहीं है।


डॉ। सुंदरबर्ग? जैसे डॉ। नो या डॉ। गुटेनबर्ग में?
ott--

4
@ नहीं, जैसा कि एक पीएच.डी. कंप्यूटर विज्ञान में।
ट्रैविस पेसेटो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.