शब्दार्थ क्या है?


13

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

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

PS टिप्पणियों में मैंने सुना है कि शब्दार्थ का अर्थ दूसरी भाषा या अनुवाद नहीं है। लेकिन वीएचडीएल के लिए औपचारिक शब्दार्थ यह कहता है कि यदि आप किसी चीज़ को केवल एक ही तरीके से समझते हैं तो आप इसे नहीं समझते हैं और "अर्थ का अर्थ" निर्दिष्ट किया जा सकता है यदि हम एक ऐसी भाषा के साथ एक भाषा की आपूर्ति करते हैं जो इसे दूसरी (ज्ञात) भाषा में अनुवाद करती है। यही है, "शब्दार्थ औपचारिक प्रणालियों के बीच एक संबंध है"। प्रोग्रामिंग भाषाओं के शब्दार्थ विज्ञान में हेनेसी कहते हैं कि शब्दार्थ "बीएनएफ या सिंटेक्स डायग्राम के रूप में आपूर्ति की जाती है, जब कार्यक्रम" अर्थ "की औपचारिक प्रसंस्करण के लिए अनुमति देता है। भाषा न हो तो औपचारिक प्रणाली क्या है?

PS2 क्या मैं कह सकता हूं कि दिए गए HDL प्रोग्राम के HW संश्लेषण को द्वारों के परस्पर संबंध में, शब्दार्थ निष्कर्षण की एक प्रक्रिया है? हम (उच्च-स्तरीय) विवरण का अनुवाद (निम्न-स्तरीय) भाषा में करते हैं जिसे हम समझते हैं, बाद में।


आप किस तरह के चित्र का मतलब है? मैं शब्दार्थ के साथ काम करता हूं, लेकिन वस्तुतः कभी आरेखों का उपयोग नहीं करता।
डेव क्लार्क

1
मैं शब्दार्थ को "भाषा" नहीं कहूँगा। शब्दार्थ परिभाषित अर्थ भाषाओं के। उदाहरण के लिए, द्विआधारी संख्याओं का वाक्यविन्यास । केवल शब्दार्थ मान के साथ ( w ) = ics | w | i = 1 w i 2 n - i + 1 क्या हमें वास्तविक संख्या मिलती है; ध्यान दें कि यह केवल संभव शब्दार्थ नहीं है, बीसीडी, 2-पूरक और कई और भी हैं। {0,1}+value(w)=i=1|w|wi2ni+1
राफेल

@ मुझे क्षमा करें, मैंने असाइनमेंट डिसीजन डायग्राम्स की छाप के तहत अपना प्रश्न बनाया। मैं भी सिर्फ वीएचडीएल के लिए औपचारिक शब्दार्थ विज्ञान, एक पुस्तक है जहाँ लेखक विभिन्न शब्दार्थों का प्रस्ताव रखते हैं, प्रत्येक में बहुत सारे चित्र। मैं सोच रहा था कि यह एक ऐसी भाषा है जिसका हम मानचित्र बनाते हैं।
वैल

यह शब्दार्थ की तरह बहुत कम लगता है, और हार्डवेयर के संकलन के लिए एक मध्यवर्ती कदम की तरह अधिक है।
डेव क्लार्क

हां, लेकिन वे विवरण से "अर्थ" निकालते हैं।
वैल

जवाबों:


15

सी के शब्दार्थ का वर्णन करने के लिए, दूसरी भाषा का आविष्कार करने के बजाय सी के शब्दार्थ को सीखना क्यों नहीं?

क्योंकि सी के शब्दार्थ को परिभाषित करने के लिए आपको किसी प्रकार की भाषा की आवश्यकता होती है, उदाहरण के लिए अंग्रेजी। अंग्रेजी अस्पष्ट हो सकती है, और विशेष रूप से C99 शब्दार्थ है।

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

  1. किस गणितीय कार्य के बारे में कार्यक्रम गणना करता है ( शब्दार्थ ),
    lambda x: x + x =(x2x)
  2. उन गुणों के बारे में जो कार्यक्रम से पहले और बाद में ( स्वयंसिद्ध शब्दार्थ ),
    {a>0} x = a; y = 0; while(1 < x){ x = x/2; y++; } {y=log(a)}
  3. कार्यक्रम कैसे कम होगा ( परिचालन शब्दार्थ ) के बारे में। where जहाँ आपकी स्मृति के पहले और बाद का प्रतिनिधित्व करता है। इस स्थिति में this और यदि और स्मृति कोशिकाएँऔर, और यदि ।
    (σ, while(x){x--;y++;})σ
    σ,σσ=(xa,yb)σ=(xa+b,y0)xyxya

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

यदि शब्दार्थ को पढ़ना इतना सार्थक नहीं है, तो भाषा के मूल तत्वों पर शब्दार्थ पर पढ़ना और सहमत होना बहुत महत्वपूर्ण है, उदाहरण के लिए स्पष्ट रूप से यह समझाने के लिए कि कैसे C काआदिम कार्य।continue

निष्कर्ष के तौर पर:

क्या वे हमें बताते हैं कि वे पहले वाले को समझने के लिए दूसरी भाषा का परिचय देते हैं?

तकनीकी रूप से नहीं, भाषा गणित है। इसके अलावा, यह मूल रूप से सभी प्रोग्रामिंग भाषाओं के लिए समान है, इसलिए यहां तक ​​कि एक नई भाषा को पेश करना, यदि यह सभी के लिए समान है, तो बहुत अधिक ठीक होगा।

हम इसे मूल से बेहतर क्यों समझते हैं?

क्योंकि यह गणित है इसलिए इसे समझना कठिन हो सकता है, लेकिन यह अधिक सटीक और पूर्ण तरीका है।

सिंटैक्स पर भी यही लागू होता है।

सत्यापित पार्सरों पर काम होता है, लेकिन इस सवाल का क्या मतलब है कि एक तोता का शब्दार्थ तुच्छ नहीं है।


2
"गणित [...] रास्ता अधिक सटीक और पूर्ण है।" - जो निश्चित रूप से गणित के औपचारिक सिंटैक्स और शब्दार्थ के लिए प्रश्न पूछता है। ;)
राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.