मुझे बताया गया है कि HTML एक मार्कअप भाषा है, C ++ एक प्रोग्रामिंग भाषा है, इससे क्या फर्क पड़ सकता है?


22

मेरे प्रोग्रामिंग मित्र हमेशा मुझे बता रहे हैं कि HTML एक मार्कअप भाषा है और C ++ एक प्रोग्रामिंग भाषा है। जब मैंने उनसे पूछा कि क्या अंतर है, तो उन्होंने मुझे कभी उचित जवाब नहीं दिया।

C ++ को प्रोग्रामिंग भाषा, और HTML नहीं कह सकते हैं?


5
क्या आपका मतलब ट्यूरिंग पूरा होने के अलावा है?
मनोज आर

1
@ManojR सभी ट्यूरिंग संपूर्ण भाषाओं को प्रोग्रामिंग भाषा नहीं माना जाता है, उदाहरण के लिए XSLT।
यानिस डे

पुन समापन, क्यू / एक मेटा में कम से देखने meta.programmers.stackexchange.com/q/5397/70298
miraculixx

1
ग्रेट एडिट @gnat, धन्यवाद। प्रश्न फिर से खोला गया, अप्रचलित टिप्पणियों को हटा दिया गया।
यानिस डे

1
@YannisRizos I ने टिप्पणियों में ओपी द्वारा दिए गए स्पष्टीकरण की प्रतिलिपि बनाई । आश्चर्य है कि इतने सारे उपयोगकर्ताओं ने संपादन के बजाय टिप्पणियों में अपने पदों के बारे में महत्वपूर्ण चीजें क्यों रखीं; अपने आप को मैं हमेशा इस तरह के मामलों में अपने पदों को संपादित करता हूं
gnat

जवाबों:


45

एक प्रोग्रामिंग भाषा एक मशीन को निर्देश पारित करने के लिए डिज़ाइन किया गया एक संकेतन है। उस परिभाषा के अनुसार, C ++ और HTML दोनों ही प्रोग्रामिंग लैंग्वेज हैं, जैसा कि 1801 में अपने लूम को प्रोग्राम करने के लिए जोसेफ मैरी जैक्वार्ड ने नोट किया था ।

हालाँकि, उन भाषाओं के प्रसार के साथ जिनका उपयोग संरचना और / या डेटा का वर्णन करने के लिए किया जाता है, एक प्रोग्रामिंग भाषा की परिभाषा को केवल उन्हीं भाषाओं को शामिल करने के लिए स्थानांतरित किया गया जो एल्गोरिदम को व्यक्त करने में सक्षम हैं। यह आज अधिक सामान्य परिभाषा है और यह HTML या XML जैसी भाषाओं को शामिल नहीं करती है।

वर्तमान परिभाषा के दिल में ट्यूरिंग संपूर्णता की अवधारणा है । अधिकांश प्रोग्रामिंग भाषाएं ट्यूरिंग पूर्ण हैं, और ट्यूरिंग संपूर्णता को अक्सर एक महत्वपूर्ण विशेषता के रूप में उद्धृत किया जाता है जो प्रोग्रामिंग भाषा को किसी अन्य कंप्यूटर भाषा से अलग करता है। यह अंगूठे के एक सामान्य नियम के रूप में काफी अच्छा है, लेकिन पूरी तरह से सही नहीं है:

  1. कुछ गैर ट्यूरिंग पूरा भाषा, भाषाओं प्रोग्रामिंग माना जाता है, उदाहरण के लिए चैरिटी
  2. कुछ भाषाएं जिन्हें आमतौर पर प्रोग्रामिंग भाषा नहीं माना जाता है, वे ट्यूरिंग पूर्ण हैं, उदाहरण के लिए XSLT
  3. ट्यूरिंग पूर्णता अकेले भाषा की उपयोगिता के बारे में बहुत कुछ नहीं कहती है

संदर्भ के आधार पर, आप अपनी मनचाही परिभाषा चुन सकते हैं।

संपादित करें:

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


6
क्या आप "XSLT को प्रोग्रामिंग भाषा नहीं मानते" पर विस्तार से बता सकते हैं। मैंने यह कभी नहीं देखा है और IMO मैं भी किसी के ज्ञान या योग्यता पर सवाल उठाऊंगा जब यह कहा जाता है। मैं किसी भी कारण के बारे में सोच भी नहीं सकता कि एक्सएसएलटी को पीएल क्यों नहीं माना जाना चाहिए (एक्सएसएलटी टारपीट का हल्का मामला हो सकता है लेकिन यह एक और मुद्दा है)।
भाव

@bhaak मैं यह नहीं कह रहा हूं कि इसे प्रोग्रामिंग भाषा नहीं माना जाना चाहिए । आम तौर पर डेटा ट्रांसफ़ॉर्मिंग लैंग्वेज को प्रोग्रामिंग लैंग्वेज के रूप में नहीं सोचा जाता है, जो कहती है कि अगर वे प्रोग्रामिंग लैंग्वेज हैं या नहीं हैं तो बिल्कुल भी कुछ भी नहीं है। मैंने XSLT में व्यावसायिक तर्क देखा है और मैं व्यक्तिगत रूप से इसे एक प्रोग्रामिंग भाषा मानता हूं। लेकिन मैं शायद नहीं करूंगा, अगर मैंने पहली बार इसे काम पर नहीं देखा है। किसी भी मामले में, कौन परवाह करता है?
यानिस

आप एक वाक्य या दो जोड़ सकते हैं कि इसका मतलब क्या है जो पूरा होने का मतलब है।
फं .0


@ थिंक123 मुझे नहीं लगता कि मैं विकिपीडिया में एक से अधिक सरल परिभाषा दे सकता हूं, और मैं पहले से ही उत्तर में प्रासंगिक लेख से जुड़ा हुआ हूं।
यनीस

5

वाक्यांश "मुझे पता है जब मैं इसे देखता हूं" यह एक बोलचाल की अभिव्यक्ति है जिसके द्वारा एक वक्ता एक अवलोकन योग्य तथ्य या घटना को वर्गीकृत करने का प्रयास करता है, हालांकि श्रेणी व्यक्तिपरक है या स्पष्ट रूप से परिभाषित मापदंडों का अभाव है। यह शब्द संयुक्त राज्य अमेरिका के सुप्रीम कोर्ट के जस्टिस पॉटर स्टीवर्ट द्वारा जैकबेलिस बनाम ओहियो (1964) में अश्लीलता के लिए उनकी दहलीज परीक्षण का वर्णन करने के लिए प्रसिद्ध था ।

- "मुझे पता है जब मैं इसे देखता हूं" विकिपीडिया लेख

अश्लीलता की तरह, मुझे लगता है कि हम सभी एक प्रोग्रामिंग भाषा जानते हैं जब हम एक को देखते हैं। स्पष्ट रूप से ओपी करता है, क्योंकि आपने पहले ही C ++ को एक प्रोग्रामिंग भाषा, और HTML को एक नहीं होने के लिए आंका है।

तो वास्तव में औपचारिक परिभाषा को आगे बढ़ाने का लक्ष्य क्या है? यानिस ने पहले से ही एक शानदार तरीका बताया है कि क्यों सबसे लोकप्रिय परिभाषा, ट्यूरिंग पूर्णता त्रुटिपूर्ण है: यह श्रेणीकरण की ओर जाता है जो "मुझे पता है कि जब मैं इसे देखता हूं" परीक्षा को टाल देता है।

मैंने इसे आपके सामने रखा है कि आप जिस भी परिभाषा के साथ आ सकते हैं, उससे कुछ भाषाओं को बढ़ावा मिलेगा, जो हम सभी महसूस करते हैं कि "प्रोग्रामिंग" भाषाओं को ऐसा नहीं माना जाएगा; या कुछ भाषाओं में जो हम सभी महसूस करते हैं कि "प्रोग्रामिंग" भाषाओं को श्रेणीबद्ध किया जाएगा ताकि ऐसा हो।

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


लेकिन अब आप "प्रोग्रामिंग भाषाओं" को "सामान्य प्रयोजन प्रोग्रामिंग भाषाओं" तक सीमित कर रहे हैं। उत्तरार्द्ध वह है जो आमतौर पर लोगों को "प्रोग्रामिंग भाषा" कहने का मतलब होता है, लेकिन वास्तव में परिभाषित करने वाली विशेषताओं का पीछा करते हुए "प्रोग्रामिंग भाषा" होती है, यह समझने में भी अपनी बात होती है कि प्रोग्रामिंग भाषाएं क्या हैं, वे कैसे काम करती हैं, और उनकी सीमाएं क्या हैं। उदाहरण के लिए, किसी भी कुशल प्रोग्रामर को मुठभेड़ की समस्या को पहचानना पड़ता है जब वे इसका सामना करते हैं, जो प्रोग्रामिंग भाषाओं की सैद्धांतिक सीमाओं का अध्ययन किए बिना मुश्किल होगा।
जेसपेरे

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

1
यदि आपको इसे नहीं लाना है, तो शायद अच्छा है। इसका मतलब यह नहीं है कि यह जानना महत्वपूर्ण नहीं है। आप अपने सीटबेल्ट की गुणवत्ता को इस बात से नहीं आंकते कि यह वास्तविक उपयोग के लिए कितनी बार आया है, क्या आप?
जेसपेरे

आपके अनुमान के अनुसार, एक प्रोग्रामिंग भाषा है?
ब्रायन

@ ब्रायन: दिलचस्प एक! मुझे लगता है कि मैंने हमेशा केवल लिस्प के कार्यान्वयन के रूप में क्विक के बारे में सोचा है, जो स्पष्ट रूप से एक प्रोग्रामिंग भाषा है, भले ही यह विशेष उद्देश्य के दायरे में बहुत अधिक विशिष्ट है।
कार्सन 63000

2

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

HTML अपने आप में स्थिर है; यह एक शब्द-प्रोसेसर की तरह है, यह जानकारी को प्रस्तुत करने के लिए है जैसा कि यह है। केवल कुछ प्रकार की प्रोग्रामिंग भाषाओं के अलावा (आमतौर पर जावास्क्रिप्ट, PHP, आदि जैसी भाषाओं की स्क्रिप्टिंग) HTML वेब पृष्ठों में "परिवर्तनशील" सामग्री हो सकती है। स्क्रिप्टिंग भाषाएं चर, गणित, तुलना, निर्णय लेने, छोरों आदि के साथ "प्रोग्रामिंग" संभावनाएं प्रदान करती हैं।


0

HTML एक घोषणात्मक भाषा है। यह अपने आप में बहुत कुछ नहीं करता है, यह सिर्फ एक दस्तावेज़ और उसकी सामग्री (टैग का उपयोग करके अर्थपूर्ण अर्थ है) का वर्णन करता है।

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

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