एक संदर्भ एक वाक्यगत धारणा है। एक संदर्भ एक शब्द है जिसमें एक छेद है। (कभी कभी वहाँ बहु छेद संदर्भों कर रहे हैं, परिभाषा स्पष्ट रूप से उस मामले में दिया जाएगा।) संदर्भों की वाक्य रचना शब्दों के वाक्य रचना ले रहे हैं और एक subterm एक छेद होना करने की अनुमति देकर परिभाषित किया गया है एक शब्द के बजाय। BNF में (मैं एक उदाहरण के रूप लैम्ब्डा-पथरी का उपयोग करें, बूलियन्स बिना और बयानों जो उदाहरण के लिए कुछ भी नहीं लाते हैं।):
सी : : = [ ] | x | टी[ ]
सी: : = [ ] | X | टीसी∣ सीt x λ x । सी
एक संदर्भ की परिभाषा के साथ एक संदर्भ में एक शब्द डालने की परिभाषा आती है। अगर एक संदर्भ है और टी एक शब्द है, तो सी [ टी ] शब्द लिखने का द्वारा प्राप्त है टी जहां छेद वाक्य रचना पेड़ में [ ] में है सी [ टी ] । यह मूल रूप से एक प्रतिस्थापन है जहां चर को एक बार होने की गारंटी दी जाती है (लेकिन ध्यान दें कि प्रतिस्थापित किया जाने वाला "चर" मेटा स्तर पर एक चर है, [ ] , लंबो-कैलकुलस या शब्दों की अन्य भाषा में एक चर नहीं है टी )।सी[ ]टीसी[ टी ]टी[ ]सी[ टी ][ ]टी
शब्दार्थ में विभिन्न परिभाषाओं को बनाने के लिए प्रसंगों का उपयोग किया जाता है। एक सामान्य उदाहरण यह है कि मूल्यांकन की अधिकांश धारणाओं में परिभाषित संदर्भ शामिल हैं जिसमें मूल्यांकन किया जा सकता है। उदाहरण के लिए, लैम्ब्डा-पथरी पर विचार करें। मूल्यांकन के मौलिक धारणा बीटा कमी शासन द्वारा दिया जाता है:
जहां एम { x ← एन } है प्रतिस्थापन एक्स ↦ एन करने के लिए लागू एम ।
( λ x । एम)एन→βम{ x ← एन}
म{ x ← एन}x ↦ एनम
यह बीटा-रिडक्शन की पूरी परिभाषा नहीं है: एक टर्म दिया गया है , अगर यह सब- एम और एन और एक वेरिएबल x जैसे t = ( λ x M ) है तो बीटा-कम कर सकते हैं ।टीमएनएक्स ; लेकिन अधिक आम तौर पर टी बीटा कम कर सकते हैं, अगर वहाँ एक subterm है टी ' ऐसी है कि टी ' = ( λ एक्स । एम )टी = ( λ एक्स । एम)एनटीटी'टी'= ( Λ एक्स । एम)एन । एक अन्य तरीका यह व्यक्त करने के लिए वह यह है कि कर सकते हैं बीटा को कम अगर वहाँ एक संदर्भ सी और कुछ शर्तों एम और एन और एक चर x ऐसी है कि टी = सी [ ( λ एक्स । एम )टीसीमएनएक्स । जब इस तरह के एक कमी है, दाएँ हाथ की ओर है सी [ एम { x ← एन } ] । औपचारिक अंकन का उपयोग करने के लिए, बीटा-कटौती को निम्नलिखित कटौती नियमों द्वारा परिभाषित किया गया है:
टी = सी[ ( Λ एक्स । एम)एन]सी[ एम{ x ← एन} ]
एक ही परिभाषा स्पष्ट संदर्भों के सभी प्रकार बनाने के द्वारा व्यक्त किया जा सकता:
( λ x । एम)एन→βम{ x ← एन}( β)म→βएनसी[ एम] →βसी[ एन]( γ)
( λ x । एम)एन→βम{ x ← एन}( β)म→βएनλ x । म→βλ x । एन( C)λ)म→βएनमपी→βएनपी( C)@ <)म→βएनपीम→βपीएन( C)@ >)
इस परिभाषा से बीटा-रिडक्शन यानी मूल्यांकन की धारणा पैदा होती है, जो किसी भी तरह के बदलाव को कम करने की अनुमति देता है। प्रोग्रामिंग लैंग्वेज में की गई गणना अक्सर कार्यों के अंदर के सबटर्म्स को कम करने की अनुमति नहीं देती है: रिड्यूस नियम केवल टॉपवेल पर, या किसी एप्लिकेशन के बाईं ओर या दाईं ओर लागू किया जा सकता है। हम जो सभी वाक्यात्मक रूपों की अनुमति नहीं है संदर्भ में एक नए किस्म को परिभाषित करते हुए यह व्यक्त कर सकते हैं:
हम इस वाक्यविन्यास का उपयोग गैर-आंशिक मूल्यांकन की शब्दार्थ धारणा को परिभाषित करने के लिए कर सकते हैं:
डी : : = [ ] | x | टीडी ∣ डीटी
हम इसे विस्तार करके भी प्रस्तुत कर सकते हैं, जैसे हमने पूर्ण बीटा कमी के लिए ऊपर किया था:
( λ x । एम)एन→एन पीम{ x ← एन}म→एन पीएनD [ एम] →एन पीडी [ एन]
Dको मूल्यांकन संदर्भ कहा जाएगा क्योंकि इसका उपयोग मूल्यांकन की धारणा को परिभाषित करने के लिए किया जाता है। एक मूल्यांकन संदर्भ एक विशेष प्रकार का संदर्भ नहीं है; इसके बजाय,
इसे एक मूल्यांकन संदर्भ कहा जाता है जो संदर्भ के लिए उपयोग किया जाता है।
( λ x । एम)एन→एन पीम{ x ← एन}( β)म→एन पीएनमपी→एन पीएनपी( C)@ <)म→एन पीएनपीम→एन पीपीएन( C)@ >)
डी
मैं संदर्भ का एक और उदाहरण देता हूँ। के परिभाषित करते हैं मानों निम्न सिंटैक्स के अनुसार:
वी : : = एक्स वी 1 ... वी एन | λ एक्स । एम
: अब के संदर्भों का एक और प्रकार को परिभाषित करते हैं
ई : : = [ ] | एमवी
वी: : = एक्स वी1… वीn| Λ एक्स । म
इ: : = [ ] | एमइ∣ ईवी
डी( λ x । एम)वी→c b v aम{ x ← वी}( βc b v a)म→βएनइ[ एम] →c b v aइ[ एन]( γc b v a)