एक प्रकार अभिकलन की एक संपत्ति है। यह वही है जो आप एक बृहदान्त्र के दाईं ओर लिखते हैं।
मुझे उस पर विस्तार से बताना चाहिए। ध्यान दें कि शब्दावली पूरी तरह से मानक नहीं है: कुछ लेख या किताबें कुछ अवधारणाओं के लिए विभिन्न शब्दों का उपयोग कर सकती हैं।
एक शब्द एक अमूर्त वाक्यविन्यास का एक तत्व है जो अभिकलन का प्रतिनिधित्व करने के लिए है। सहज रूप से, यह एक पेड़ है। औपचारिक रूप से, यह एक परिमित वृक्ष है जहाँ नोड कुछ वर्णमाला के हैं। एक अनपेक्षित कैलकुलस शब्दों के लिए एक वाक्यविन्यास को परिभाषित करता है। उदाहरण के लिए, (अप्रकाशित) लैम्ब्डा कैलकुलस में तीन प्रकार के एनआईटी से निर्मित शब्द (लिखित , , आदि) शामिल हैं:एनMN
- वेरिएबल्स, ऑफ एरिटी 0 (एक संग्रहणीय संग्रह), लिखित , , आदि;यxy
- एक चर का अनुप्रयोग, 1 (एक संग्रह के साथ एक संग्रहणीय वस्तु, चर के लिए एक आपत्ति के साथ), लिखित , आदि;λx.M
- अर्जी 2 का आवेदन, , लिखा ।MN
एक शब्द एक वाक्य रचना है। एक शब्दार्थ संगणना से संबंधित है। कई प्रकार के शब्दार्थ हैं, सबसे आम संचालन (यह वर्णन करते हुए कि कैसे शब्दों को अन्य शब्दों में परिवर्तित किया जा सकता है) या डीनोटेशनल (किसी अन्य स्थान में परिवर्तन द्वारा शब्दों का वर्णन, आमतौर पर सेट सिद्धांत से बनाया गया है)।
एक प्रकार शब्दों की संपत्ति है। एक अनपाइप कैलकुलस के लिए एक प्रकार की प्रणाली बताती है कि कौन से शब्द किस प्रकार के हैं। गणितीय रूप से, कोर में, एक प्रकार की प्रणाली नियम और प्रकार के बीच का संबंध है। अधिक सटीक रूप से, एक प्रकार का सिस्टम ऐसे संबंधों का एक परिवार है, जिसे संदर्भों द्वारा अनुक्रमित किया जाता है - आमतौर पर, एक संदर्भ चर के लिए कम से कम प्रकार प्रदान करता है (अर्थात एक संदर्भ चर से प्रकारों के लिए एक आंशिक कार्य है), जैसे कि एक शब्द में केवल एक प्रकार हो सकता है संदर्भों में जो इसके सभी मुफ्त चर के लिए एक प्रकार प्रदान करते हैं। एक प्रकार की गणितीय वस्तु किस प्रकार की प्रणाली पर निर्भर करती है।
कुछ प्रकार की प्रणालियों को सेट सिद्धांत, जैसे कि प्रतिच्छेदन, संघ और समझ के रूप में धारणाओं का उपयोग करके सेट के रूप में वर्णित किया जाता है। यह परिचित गणितीय नींव पर आराम करने का लाभ है। इस दृष्टिकोण की एक सीमा यह है कि यह समकक्ष प्रकारों के बारे में तर्क करने की अनुमति नहीं देता है।
कई प्रकार के सिस्टम प्रकारों की गणना में स्वयं को शब्दों के रूप में वर्णित करते हैं। प्रकार प्रणाली के आधार पर, ये समान शब्द या अलग-अलग शब्द हो सकते हैं। मैं गणना के एक शब्द को संदर्भित करने के लिए वाक्यांश आधार शब्द का उपयोग करूंगा जो गणना का वर्णन करता है। उदाहरण के लिए, बस टाइप किए गए लैम्ब्डा कैलकुलस प्रकारों (लिखित , आदि) के निम्नलिखित कलन का उपयोग करता है :τ
- आधार प्रकार, की संख्या 0 (एक परिमित या अयोग्य संग्रह), लिखित , , आदि;बAB
- कार्य, 2 की संख्या, लिखित ।τ0→τ1
आमतौर पर टाइप किए गए लैम्ब्डा कैलकुलस को परिभाषित करने वाले शब्दों और प्रकारों के बीच का संबंध आमतौर पर टाइपिंग नियमों द्वारा परिभाषित किया जाता है । टाइपिंग नियम केवल एक प्रकार की प्रणाली को परिभाषित करने का एकमात्र तरीका नहीं है, लेकिन वे आम हैं। वे कंपोजिटल टाइप सिस्टम, यानी टाइप सिस्टम के लिए अच्छी तरह से काम करते हैं, जहां एक टर्म का टाइप (एस) सबटर्म्स के प्रकार से बनाया गया है। टंकण नियम एक प्रकार की प्रणाली को एकरूपता से परिभाषित करते हैं: प्रत्येक टाइपिंग नियम एक स्वयंसिद्ध है जो बताता है कि क्षैतिज नियम के ऊपर सूत्रों के किसी भी तात्कालिकता के लिए, नियम के नीचे का सूत्र भी सही है। टाइपिंग नियम कैसे देखें ? अधिक जानकारी के लिए। क्या एक ट्यूरिंग पूर्ण टाइप किए गए लैम्ब्डा कैलकुलस मौजूद है? ब्याज की भी हो सकती है।
बस टाइप किए गए लैम्ब्डा कैलकुलस के लिए, टाइपिंग निर्णय अर्थ है कि का संदर्भ में टाइप है । मैंने संदर्भों की औपचारिक परिभाषा को छोड़ दिया है।
एम τ गामा एक्स : τ ∈ गामाΓ⊢M:τMτΓ
x:τ∈ΓΓ⊢x:τ(Γ)Γ,x:τ0⊢M:τ1Γ⊢λx.M:τ0→τ1(→I)Γ⊢M:τ0→τ1Γ⊢N:τ0Γ⊢MN:τ1(→E)
उदाहरण के लिए, यदि और आधारित प्रकार हैं, तो , में किसी भी संदर्भ में टाइप है (नीचे से ऊपर तक, लागू करें दो बार, फिर , और अंत में प्रत्येक शाखा पर )।ABλx.λy.xy(A→B)→A→B(→I)(→E)(Γ)
सेट के रूप में बस टाइप किए गए लंबो कैलकुलस के प्रकारों की व्याख्या करना संभव है। यह एक प्रकार के लिए एक शब्दार्थ शब्दार्थ देने के लिए है। आधार शब्दों के लिए एक अच्छा संप्रदायिक शब्दार्थ प्रत्येक आधार को उसके सभी प्रकारों के नामकरण का एक सदस्य निर्दिष्ट करेगा।
अंतर्ज्ञान प्रकार का सिद्धांत (जिसे मार्टिन-लोफ प्रकार सिद्धांत के रूप में भी जाना जाता है) अधिक जटिल है, जो कि केवल लंबा कैलकुलस टाइप करता है, क्योंकि इसमें प्रकारों के कलन में कई और तत्व हैं (और कुछ शब्दों को आधार शब्दों में भी जोड़ता है)। लेकिन मूल सिद्धांत समान हैं। मार्टिन-लोफ प्रकार के सिद्धांत की एक महत्वपूर्ण विशेषता यह है कि प्रकारों में आधार शब्द शामिल हो सकते हैं (वे आश्रित प्रकार हैं ): आधार शब्दों का ब्रह्मांड और प्रकारों का ब्रह्मांड समान हैं, हालांकि वे सरल वाक्यविन्यास नियमों द्वारा पहचाने जा सकते हैं (जिन्हें आमतौर पर जाना जाता है) छँटाई, यानी, पुनर्लेखन सिद्धांत में शब्दों को प्रकार प्रदान करना)।
टाइप सिस्टम हैं जो आगे बढ़ते हैं और पूरी तरह से प्रकार और आधार शब्दों को मिलाते हैं, ताकि दोनों के बीच कोई अंतर न हो। इस तरह के सिस्टम को उच्च-क्रम कहा जाता है । इस तरह की पथरी में, प्रकार प्रकार है - एक प्रकार की बाएं हाथ की ओर पर दिखाई दे सकता । निर्माण की पथरी उच्च क्रम निर्भर प्रकार के प्रतिमान है। लैम्ब्डा घन कि क्या वे मामले प्रकार पर निर्भर करने की अनुमति के मामले में वर्गीकरण प्रकार सिस्टम (भी Barendregt घन के रूप में जाना जाता है) ( बहुरूपता - कुछ आधार शर्तों subterms के रूप में प्रकार के होते हैं), प्रकार की शर्तें (निर्भर प्रकार), या निर्भर करने के लिए प्रकार पर निर्भर करती है प्रकारों पर ( टाइप ऑपरेटर - प्रकारों की गणना में गणना की धारणा है)।:
गणित की सामान्य नींव के साथ टाई करने के लिए अधिकांश प्रकार की प्रणालियों को सेट-थ्योरिटिकल शब्दार्थ दिया गया है।
प्रोग्रामिंग भाषा और गणित की नींव कैसे संबंधित हैं? और
कार्य प्रकारों के शब्दार्थ और वाक्य-विन्यास में क्या अंतर है? यहां रुचि हो सकती है। गणित की नींव के रूप में प्रकार सिद्धांत का उपयोग करने पर भी काम किया गया है - सेट सिद्धांत ऐतिहासिक आधार है, लेकिन यह एकमात्र संभव विकल्प नहीं है। इस दिशा में होमोटोपी प्रकार का सिद्धांत एक महत्वपूर्ण मील का पत्थर है: यह होमोटॉपी सिद्धांत के संदर्भ में जानबूझकर अंतर्ज्ञानवादी प्रकार सिद्धांत के शब्दार्थ का वर्णन करता है और इस ढांचे में सिद्धांत सेट करता है।
मैं बेंजामिन पियर्स की किताबें टाइप और प्रोग्रामिंग लैंग्वेज और एडवांस टॉपिक्स इन टाइप्स और प्रोग्रामिंग लैंग्वेजेज की सलाह देता हूं । वे औपचारिक गणितीय तर्क के साथ बुनियादी परिचितों के अलावा किसी भी स्नातक के साथ किसी भी स्नातक के लिए सुलभ हैं। टीएपीएल कई प्रकार की प्रणालियों का वर्णन करता है; आश्रित प्रकार ATTAPL के अध्याय 2 का विषय है।