C अभी भी उच्च स्तरीय भाषा की श्रेणी में क्यों है? [बन्द है]


12

C प्रोग्रामिंग भाषा पर कई पाठ्यपुस्तकें बताती हैं कि C एक उच्च-स्तरीय प्रोग्रामिंग भाषा है, लेकिन ऑनलाइन कई ट्यूटर्स कहते हैं कि C एक मध्य-स्तरीय प्रोग्रामिंग भाषा भी है। ऐसा क्यों है?



6
मैं आपके भ्रम से सहानुभूति रखता हूं। यह वर्गीकरण का एक प्रकार है जो मुझे एक परीक्षा में देखने के लिए उत्तेजित करेगा क्योंकि यहां तक ​​कि "गलत" उत्तर भी सही है। प्रार्थना करें कि आपके पास कभी भी यह सच / गलत या बहुविकल्पी परीक्षा का प्रश्न न हो। यदि आप करते हैं, तो पाठ्यपुस्तक ने जो कहा है, उसके आधार पर उत्तर दें, न कि आप जो महसूस करते हैं वह सही है (मुझे लगता है कि आपके आंत के खिलाफ जाने की सिफारिश करना बुरा है)।
ब्रैंडन

1
ऐतिहासिक रूप से 'उच्च [एर] -लेवल लैंग्वेज' वे थीं जो असेंबली लैंग्वेज के विपरीत प्रोग्रामर को विशिष्ट मशीन से अमूर्त करने और अधिक समस्या-डोमेन तरीके से कोड लिखने की अनुमति देती थीं। शुरुआती दिनों में फोरट्रान और कोबोल 'उच्च-स्तरीय' थे। C, मशीन-विशिष्ट सामान के ऊपर एक पतला घूंघट है, लेकिन इसका बहुत उद्देश्य पोर्टेबल, मशीन-अनिर्दिष्ट होना है। इसलिए 1960 के दशक तक सी उच्च स्तर का था। C ++ 14 या Haskell या OCaml या Rust की तुलना में, C इतना उच्च स्तर का नहीं है, बेशक।
9000

इनमें से अधिकांश "आधुनिक उच्च स्तरीय" भाषाएं "" वास्तव में सिर्फ स्क्रिप्टिंग भाषाएं हैं। अंतर यह है कि यह संकलित या व्याख्यायित है।
मार्कस जे

एएसएम उच्च स्तर है। हार्डवेयर पर asm द्वारा प्रदान अमूर्त भारी है।
जिज्ञासु

जवाबों:


34

ऐतिहासिक रूप से, सब कुछ जो असेंबली कोड से अधिक होता है, को उच्च-स्तरीय कहा जाता था। सी निश्चित रूप से ऐसा करता है। यह परिभाषा भी इस प्रकार के विपरीत अपेक्षाकृत स्पष्ट है।

समय के साथ, हमने अधिक से अधिक प्रोग्रामिंग भाषाओं का निर्माण किया और अधिक से अधिक सार और टूल का आविष्कार किया। कहने की तुलना में, पायथन, सी भाषा शब्दार्थ समृद्धि और हार्डवेयर पर अमूर्तता के स्तर में सकारात्मक रूप से आदिम है। इस बात को ध्यान में रखते हुए, कई लोगों को सी-हाई-लेवल पर कॉल करना भ्रामक लगता है, जब ऐसी भाषाओं का खजाना होता है जो हार्डवेयर से बहुत ऊपर होती हैं।

तो अब "उच्च-स्तर" का अर्थ आमतौर पर "हार्डवेयर पर बहुत अधिक सार" और "निम्न-स्तर" का अर्थ है "सार थोड़ा"। यह वह परिभाषा है जो आपके ट्यूटर उपयोग करते हैं। हालांकि हर कोई इससे सहमत नहीं है, और पुराने ग्रंथ नई शब्दावली को नहीं अपनाते हैं, इसलिए आप अभी भी "उच्च-स्तरीय" (जिसके तहत C उच्च-स्तरीय है) का पुराना उपयोग देखते हैं। ध्यान रखें कि कई अच्छी सी किताबें मूल रूप से बीस साल पहले जारी पुस्तकों के नए संस्करण हैं।


कुछ के लिए एक उचित निम्न-स्तरीय प्रोग्रामिंग भाषा माना जाता है, इसे प्रोग्रामर को अंतर्निहित हार्डवेयर के समान अमूर्त के समान स्तर पर आसानी से संचालित करने की अनुमति देनी चाहिए। हालांकि सी मानक कार्यान्वयन को इस तरह से व्यवहार करने की अनुमति देगा, लेकिन कार्यान्वयन के बीच कोई औपचारिक रूप से मान्यता प्राप्त अंतर नहीं है जो कि अमूर्त के उस स्तर पर संचालित होता है जो ऐसा नहीं करते हैं।
Supercat

12

यह मशीन कोड (असेंबली) की तुलना में एक उच्च स्तरीय भाषा है, जो देखने का बिंदु है कि सी प्रोग्रामिंग किताबें और ट्यूटोरियल से आते हैं।

उस संबंध में यह एक उच्च स्तरीय प्रोग्रामिंग भाषा है।

हालांकि, यह अभी भी हार्डवेयर के बहुत करीब है - अन्य की तुलना में बहुत अधिक, अधिक आधुनिक भाषाएँ (जावा, सी # और ऐसी) - जब इस दृष्टिकोण से देखा जाता है, तो यह एक मध्यम स्तर की प्रोग्रामिंग भाषा है।


1
तब हम स्पष्ट रूप से क्यों नहीं कह सकते कि C एक मध्यम स्तर की प्रोग्रामिंग भाषा है। पाठ्यपुस्तकों में हम ऐसा नहीं पाते हैं।
CodeIt

5
@manutd - यह लेखकों को बुक करने का प्रश्न है;) - लेकिन यह बात है। उनके दृष्टिकोण से, C एक उच्च स्तरीय भाषा है। यही उनके साथ व्यवहार है। "उच्च स्तरीय भाषा" की अवधारणा फ़र्ज़ी है - सभी द्वारा सहमत एक भी परिभाषा नहीं है।
ऊद

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

सी # प्रोग्रामर को 64-बिट, 32-बिट, 16-बिट, या 8-बिट मान के सुविधाजनक के रूप में मेमोरी की एक सीमा तक पहुंचने की अनुमति देता है; यदि स्मृति 16-बिट पिक्सेल रखती है, उदाहरण के लिए, कोड पिक्सल को व्यक्तिगत रूप से या 2 या 4 के समूहों में संसाधित कर सकता है, जो कि एल्गोरिथ्म के लिए सबसे अच्छा है, इस पर निर्भर करता है। C जैसा कि मानक द्वारा परिभाषित किया गया है, एक व्यावहारिक साधन को परिभाषित नहीं करता है जिसके द्वारा प्रोग्रामर समान शब्दार्थ का अनुरोध कर सकते हैं। सी की तुलना में कई सी बोलियां निम्न स्तर की हैं, बेशक, लेकिन मानक द्वारा परिभाषित भाषा नहीं है।
सुपरकैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.