जवाबों:
अमूर्त वाक्य रचना और प्रकारों के लिए वास्तव में बहुत समानता है जैसा कि आमतौर पर समझा जाता है। लेकिन सॉर्ट एक औपचारिक वाक्य रचना अवधारणा है , और एएस पेड़ वाक्यविन्यास भी हैं, जबकि प्रकार एक अर्थ अवधारणा हैं ।
शब्दावली शब्द बीजगणित (जिसे मुक्त बीजगणित भी कहा जाता है ) और सार्वभौमिक बीजगणित से आता है । ये अनिवार्य रूप से किसी भी व्याख्याओं के स्वतंत्र रूप से विश्लेषण किए गए बीजीय संरचनाओं के सिंटैक्टिक सिद्धांत हैं। उन्हें 20 वीं शताब्दी के पहले भाग में विकसित किया गया था।
एक शब्द को एक पेड़ के रूप में देखा जा सकता है, जहां नोड्स को परिचालकों के परिमित सेट से लेबल किया जाता है, प्रत्येक ऑपरेटर में एक निश्चित समता होती है जो पेड़ में बेटियों की संख्या को निर्दिष्ट करती है। Arity 0 पत्तियों के लिए है। में बहु अनुसार क्रमबद्ध अल्जेब्रास प्रत्येक बेटी के लिए अपने सिर ऑपरेटर की तरह इस प्रकार के साथ परिष्कृत किया जाता है, ताकि एक तरह से संबंधित प्रत्येक ऑपरेटर, और arities तरह की एक आदेश दिया सूची से बदल दिया जाता है कि ठीक करता है। एक ऑपरेटर का प्रकार, अपनी बेटी के प्रकार की सूची के साथ, ऑपरेटर के हस्ताक्षर को कहा जाता है ।
सार्वभौमिक बीजगणित में, शब्दों के बीच समान रूप से परिभाषित समतुल्य संबंधों को पेश करके इसे और परिष्कृत किया जाता है।
हालांकि ऐसा लगता है कि यह थोड़ा फीका है, ये अवधारणा 20 वीं शताब्दी के उत्तरार्ध में कंप्यूटर विज्ञान में काफी लोकप्रिय थीं और इसका अध्ययन किया गया था, क्योंकि सार बीजगणित जहां तब सार डेटा प्रकारों के आधार के रूप में देखा जाता है, जो कि आंशिक रूप से, किस के अग्रदूत हैं ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में nos कक्षाएं।
यूनिवर्सल बीजगणित श्रेणी सिद्धांत के विकास से संबंधित हैं, जो वर्तमान प्रकार और प्रोग्रामिंग भाषाओं की दृष्टि से भी महत्वपूर्ण है।
बीजगणित वाक्य-रचना की वस्तु है, और इसका उद्देश्य कुछ शब्दार्थ डोमेन (एस) में एक व्याख्या के साथ किया जाता है जो कि प्रकारों के अनुरूप होता है। एक व्याख्या एक समरूपता है जो मानचित्र मानों (प्रकार) के डोमेन में सॉर्ट करती है , और उन डोमेन के बीच फ़ंक्शंस में ऑपरेटरों, ताकि हस्ताक्षर का सम्मान किया जाता है, और समीकरण भी एक समान बीजगणित के मामले में। यह है कि आप किसी भी डोमेन के समूह सिद्धांत के परिणामों को एक ऑपरेशन के साथ कैसे लागू कर सकते हैं जो समूह की परिभाषा का सम्मान करता है।
प्रोग्रामिंग भाषाओं में शुरुआती शोधकर्ताओं द्वारा इस संगठन को बहुत सुविधाजनक माना गया था, विशेषकर प्रोग्रामिंग भाषाओं को औपचारिक रूप देने वाले। इसमें वाक्य रचना और शब्दार्थ को अलग करने और गणितीय रूप से अच्छी तरह से समझने का फायदा था।
इसे अपनाने का एक अन्य कारण कार्यक्रमों में हेरफेर करने के लिए उपकरण के विकास के साथ एक चिंता का विषय था, या तो विकास के वातावरण में या औपचारिक प्रणालियों में कार्यक्रमों के गुणों को साबित करने के लिए (जो अधिक से अधिक जुड़वां समस्याओं के रूप में निकला)।
इससे प्रोग्रामिंग भाषाओं के लिए अमूर्त वाक्यविन्यास ट्री (एएसटी) की अवधारणा का उदय होता है , जो अनिवार्य रूप से एक बहु-क्रमबद्ध बीजगणित (कभी-कभी कुछ sytems में सॉर्ट यूनियन के उपयोग के साथ परिष्कृत ) की शर्तें हैं। एएसटी एक भाषा के लिए संदर्भ वाक्यविन्यास है, जिसमें से शब्दार्थ को होमोर्फिज्म के रूप में परिभाषित किया जा सकता है जैसे कि शब्दिक शब्दार्थ।
न केवल भाषाओं के शब्दार्थों का अध्ययन करने के लिए यह सुविधाजनक है, बल्कि पेड़ तार की तुलना में बेहतर संरचित हैं और इस प्रकार प्रोग्रामिंग टूल और प्रोग्रामिंग वातावरण विकसित करने के लिए एक बेहतर आधार है।
यह पार्सिंग को अलग करने की अनुमति देता है जो पारंपरिक रूप से एक गन्दा हिस्सा था क्योंकि पार्सिंग तकनीक की सीमाओं ने विकृत व्याकरण के उपयोग को मजबूर किया। यह प्रस्तुति के मुद्दों को भी बताता है।
यह कई ठोस (स्ट्रिंग या ग्राफिक) कार्यक्रमों के प्रतिनिधित्व के लिए अनुमति देता है, जो कभी-कभी सुविधाजनक हो सकता है (कोई कारण नहीं है कि टैब के बजाय विराम चिह्नों का उपयोग करना, या प्रोग्राम में वाक्यविन्यास लोगों पर मजबूर होना चाहिए)।
अमूर्त व्याख्याओं के साथ कार्यक्रम की उचितताओं का विश्लेषण करने के लिए, कार्यक्रमों की कई व्याख्याओं और प्रकारों को परिभाषित करना आसान बनाता है ।
यह लेखन (अर्ध) स्वचालित प्रोग्राम हेरफेर टूल के लिए सुविधाजनक है, उदाहरण के लिए स्वचालित प्रोग्राम ट्रांसफ़ॉर्मेशन, या भाषाओं के बीच अनुवाद।
चीजें कभी-कभी अभ्यास में थोड़ी अधिक जटिल हो सकती हैं, क्योंकि सार सिंटैक्स के कुछ रूप कुछ ऑपरेटरों को पेड़ों (अभिव्यक्तियों) को बुदबुदाने की अनुमति देते हैं जो कई प्रकार के होते हैं (इसे देखने का एक अनौपचारिक तरीका)। उदाहरण के लिए वाक्य रचना के लिए एक प्रकार हो सकता है जो चर (असाइन किए गए निकाय) का प्रतिनिधित्व करता है, और अभिव्यक्ति के लिए दूसरा। लेकिन किसी भी चर का उपयोग अभिव्यक्ति के रूप में किया जा सकता है, कांसेप्ट गलत है।
इस पर प्रारंभिक पत्र, प्रोग्रामिंग भाषाओं के लिए, सत्तर के दशक के मध्य तक। उस समय के संकल्पना का उद्देश्य वाक्य रचना के प्रति सचेत ("निर्देशित" शब्द का उपयोग तब किया गया था) प्रोग्रामिंग वातावरण के उत्पादन के लिए किया गया था। यूरोप में मेंटर और सेंटूर के लिए और संयुक्त राज्य अमेरिका में कॉर्नेल प्रोग्राम सिंथेसाइज़र के लिए देखें। वे वास्तव में व्यावहारिक तरीके से ऐसी अवधारणाओं का उपयोग करने वाले पहले दो सिस्टम थे। कई अन्य लोगों को बाद में विकसित किया गया था।
लेकिन अमूर्त वाक्य रचना इन प्रणालियों से पहले की है। लिस्प भाषा (1958) में सार वाक्यविन्यास था, जो कि आश्चर्य की बात नहीं है क्योंकि यह एक तर्कशास्त्री द्वारा विकसित किया गया था, और कार्यक्रमों में हेरफेर करने के उद्देश्य से कार्यक्रम (एमएल और एलसीएफ भी देखें ... जो बाद में आए)। लेकिन लिस्प को हल नहीं किया गया था: सब कुछ एक सूची में था और अधिक परिष्कृत संरचना अनिवार्य रूप से शब्दार्थ पर निर्भर थी। यह कुछ लोगों को कुछ गलत तरीके से विचार करने के लिए प्रेरित करता है, कि लिस्प में कोई वाक्यविन्यास नहीं था।
यह अध्याय चार में दिखाई देता है कि प्रकार वाक्यविन्यास के लिए हैं और शब्दार्थ के लिए प्रकार हैं।
पृष्ठ 40 पर उदाहरण वाक्यविन्यास चार्ट भाषा {{str str}} के प्रकारों से संबंधित है। स्पष्ट रूप से भाषा की वाक्य रचना में श्रेणियां प्रकार हैं।
विशेष रूप से, "प्लस" में एक सॉर्ट है, जो इसके परिणाम की श्रेणीबद्ध श्रेणी है। ऑपरेटर के प्रकार "प्लस" को "ऍक्स्प" नाम दिया गया है। यह इस तथ्य का प्रतिनिधित्व करता है कि वाक्यविन्यास, ऑपरेटर "प्लस" का एक आह्वान एक अभिव्यक्ति है। ऑपरेटर "प्लस" का एक आह्वान एक सार वाक्यविन्यास पेड़ में एक स्थिति भर सकता है जहां एक अभिव्यक्ति की अनुमति है। इस तरह का निर्माण "प्लस" है। यह एक पाठ की संरचना में फिट बैठता है जो एक कार्यक्रम का प्रतिनिधित्व करता है।
पृष्ठ 41 पर प्रकार प्रणाली भाषा L {संख्या str} के प्रकारों से संबंधित है। ऑपरेटर का प्रकार "प्लस", यह देखते हुए कि इसके ऑपरेंड में "संख्या" टाइप है, "संख्या" है। यह निर्णय ऑपरेटर के शब्दार्थ "प्लस" का आंशिक विवरण है। यही है, ऑपरेटर के अर्थ का एक हिस्सा "प्लस" एक संख्या का उत्पादन करने के लिए दो संख्याओं का संयोजन है। यह अर्थ अन्य भावों से "प्लस" को अलग करता है।
इसके अलावा, एक प्रकार है जिसका नाम "टाइप" है जिसमें दो प्रकार हैं, "संख्या" और "स्ट्र"।
अध्याय 1 की शुरुआत में, हार्पर एक संकेत देता है कि वह शब्द के प्रकार से क्या मतलब रखता है :
किसी भाषा का वाक्य-विन्यास उन साधनों को निर्दिष्ट करता है जिनके द्वारा विभिन्न प्रकार के वाक्यांशों (अभिव्यक्तियों, आदेशों, घोषणाओं, और इसके बाद) को कार्यक्रमों को बनाने के लिए जोड़ा जा सकता है।
वह शब्द वाक्यांश को एक सार वाक्यविन्यास वृक्ष के रूप में परिभाषित करता है , जिसकी वह फिर चर्चा करता है।