2015-05-21 11 views
11

मैं a journal article about Real-Time Concurrent C पढ़ रहा हूं, और यह सार में उल्लेख करता है (इसलिए आप में से कोई भी उस लिंक के माध्यम से संदर्भ देख सकता है) कि "समवर्ती सी, सी (और सी ++) का समांतर सुपरसेट है।इसका मतलब क्या है जब एक भाषा दूसरे के समानांतर सुपरसैट है?

अब मुझे पता है कि सुपरसैट क्या है, लेकिन प्रोग्रामिंग भाषाओं का जिक्र करते समय "समांतर सुपरसेट" द्वारा उनका क्या अर्थ है?

+1

"सुपरसेट" का मतलब सभी सी कार्यक्षमता और अधिक सुविधाओं का है। समांतरता पहलू का अर्थ "समांतर" है। – CoryKramer

उत्तर

19

वे दो चीजों का दावा कर रहे हैं, एक चीज जो "संशोधित" नहीं है। यह "एक त्वरित लाल कार" कहने जैसा है; कार और लाल है, इसमें तेज रंग नहीं है।

  • यह समानांतर है क्योंकि यह समानांतर प्रोग्रामिंग
  • यह एक सुपर सेट है का समर्थन करता है, क्योंकि हर वैध सी या सी ++ प्रोग्राम भी एक वैध समवर्ती सी कार्यक्रम है।

यह थोड़ा अजीब भी है, क्योंकि प्रत्येक वैध सी प्रोग्राम मान्य सी ++ प्रोग्राम नहीं है।

+0

यही वह जगह है जहां मैं उलझन में था, मैं सोच रहा था कि समानांतर किसी भी तरह से सुपरसेट का मतलब संशोधित कर रहा था। धन्यवाद। – pepers

+0

ठीक है, शायद यह दोनों के लिए एक विस्तार है ... – Deduplicator

+1

सी ++ को अक्सर सी के सुपरसैट के रूप में माना जाता है, क्योंकि मतभेद * अक्सर * तुच्छ (या यहां तक ​​कि नहीं आते हैं)। – immibis

9

यह दो अलग-अलग अवधारणाएं हैं।

"सुपरसेट" का अर्थ है कि यह किसी मौजूदा भाषा सुविधाओं को हटाने या बदलने के बिना भाषा को बढ़ाता है। तो कोई वैध सी प्रोग्राम (सिद्धांत रूप में) एक वैध समवर्ती सी प्रोग्राम है।

"समांतर" का अर्थ है कि एक्सटेंशन समानांतर निष्पादन का समर्थन करते हैं - प्रोग्राम एक ही समय में एक से अधिक चीजें कर सकते हैं।

6

यह आलेख पुराना है। यह कुछ पिछले सहस्राब्दी में लिखा गया था। यह पहले सी ++ मानक और पॉज़िक्स के रीयलटाइम एक्सटेंशन की पहली रिलीज की भविष्यवाणी करता है।

जबकि सी ++ अवधारणात्मक रूप से वापस अस्तित्व में था, तब कहने का कोई तरीका नहीं था कि सी ++ क्या था। 1 99 1 में कोई सी ++ मानक, वास्तविक या आधिकारिक नहीं था। आजकल, एक सी ++ मानक है।

सी ++ ने हाल ही में आधिकारिक तौर पर समांतरता का समर्थन नहीं किया है। POSIX सी ++ के बजाय सी बढ़ाता है, और कड़ाई से बोल रहा है, यह एक सुपरसेट नहीं है; यह प्रमुख क्षेत्रों में सी मानक के साथ संघर्ष करता है। यह सी/सी ++ में माइक्रोसॉफ्ट एक्सटेंशन पर भी लागू होता है।

मेरी राय में, आईएसओ/आईईसी 98 99 और आईएसओ/आईईसी 14882 के पहले समानांतर सुपरसेट्स सी 11 और सी ++ 11 हैं, और सख्ती से बोल रहे हैं, यहां तक ​​कि वे सुपरसेट नहीं हैं। वे कुछ क्षेत्रों में सी/सी ++ का विस्तार करते हैं, लेकिन इसे दूसरों में प्रतिबंधित करते हैं (उदाहरण के लिए, restrict, जो मूल सी मानक में कोई कीवर्ड नहीं था)।

संबंधित मुद्दे