क्या टाइप सिस्टम के लिए एक अभिव्यंजना पदानुक्रम है?


23

जटिलता सिद्धांत में मौजूद व्यापक पदानुक्रमों से प्रेरित होकर, मैंने सोचा कि क्या इस तरह के पदानुक्रम भी प्रकार की प्रणालियों के लिए मौजूद थे। हालाँकि, अब तक मैंने जो दो उदाहरण पाए हैं, वे दोनों पदानुक्रम (क्रमिक सुविधाओं के साथ) के बजाय चेकलिस्ट (क्रमिक रूप से अधिक और अधिक अभिव्यंजक प्रकार के साथ) जैसे हैं।

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

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

मुझे एहसास है कि 'अभिव्यंजना' की अवधारणा थोड़ी अस्पष्ट हो सकती है, जो यह बता सकती है कि टाइप सिस्टम मेरे लिए चेकलिस्ट की तरह क्यों लगते हैं।


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

3
मैं वास्तव में "कैसे प्रोग्रामिंग भाषाओं की तुलना करने" पर मेरा है कि ब्लॉग पोस्ट लिख finsih चाहिए ...
एंड्रेज बॉयर

@Andrej Bauer: यह यहाँ पहले से मौजूद उत्तरों और टिप्पणियों के लिए एक दिलचस्प अतिरिक्त होगा। मैंने पहले से ही बहुत कुछ सीखा है कि कैसे 'अभिव्यंजकता' को परिभाषित किया जा सकता है - शायद मुझे इसके बजाय पूछना चाहिए था ...
एलेक्स दस कगार

मुझे यकीन है कि मैंने कुछ स्थानों में रैंक -2 बहुरूपता का उपयोग किया था। एक जो मुझे अभी याद है, वह है लेमेल, पिएटन-जोन्स, स्क्रेप योर बॉयलरप्लेट, 2003.
रादु ग्रिगोर

2
@Radu GRIGore: रैंक -2 बहुरूपता महत्वपूर्ण है क्योंकि यह दोहरे तर्क-संबंधी स्थिति में टाइप तर्क को प्रकट करने की अनुमति देता है, जो सामान्य प्रकार के द्वंद्व से उनके चर्च एन्कोडिंग द्वारा मॉडलिंग अस्तित्व के प्रकार की अनुमति देता है । रैंक -3 बस फिर से सार्वभौमिक मात्रा का ठहराव देता है और यह वहां से वैकल्पिक होता है, इसलिए तुलना में थोड़ा अभिव्यंजक शक्ति जोड़ा जाता है।
सीए मैककैन

जवाबों:


22

"अभिव्यक्ति" के कई अर्थ हैं जो आप एक प्रकार की प्रणाली के लिए चाहते हैं।

  1. किसी विशेष प्रकार की प्रणाली में आप किन गणितीय कार्यों को व्यक्त कर सकते हैं। उदाहरण के लिए, बस टाइप किए गए लैम्ब्डा कैलकुलस में, सभी कम्प्यूटेशनल कार्यों को व्यक्त नहीं किया जा सकता है। सिस्टम का भी यही सच है , लेकिन कड़ाई से अधिक कार्य व्यक्त किए जा सकते हैं। एक बार ट्यूरिंग-पूर्ण भाषाओं के लिए सिस्टम टाइप करने के लिए यह बहुत दिलचस्प नहीं है।F

  2. Can प्रणाली प्रणाली में लिखा हर कार्यक्रम typecheck । यह मूल रूप से क्या है कोडी की पहली धारणा पीटीएस के बारे में है। इस क्रम में एसटीएलसी की तुलना में फिर से सिस्टम मजबूत है, क्योंकि सिस्टम में प्रत्येक एसटीएलसी प्रोग्राम प्रकार है । इसी तरह, सबटाइपिंग वाला सिस्टम बिना सिस्टम के ज्यादा मजबूत होगा।F ABFF

  3. क्या स्थानीय परिवर्तन हैं (फेलिसन के कागज के अर्थ में प्रोग्रामिंग भाषाओं की अभिव्यंजक शक्ति पर ) जो एक प्रोग्राम को सिस्टम में टाइप करने के लिए सिस्टम में टाइप करने की अनुमति देते हैं , लेकिन इसके विपरीत नहीं। AB

  4. क्या एक प्रकार की प्रणाली दूसरे की तुलना में मजबूत गुणों की गारंटी देती है। उदाहरण के लिए, रैखिक प्रकार की प्रणालियां सिर्फ अधिक कार्यक्रमों को अस्वीकार करती हैं, लेकिन इससे उन्हें उन कार्यक्रमों के बारे में अधिक मजबूत बयान देने की अनुमति मिलती है जो वे स्वीकार करते हैं।

दुर्भाग्य से, मुझे विश्वास नहीं है कि बेंड्रिजेट के लंबो-क्यूब के अपवाद के साथ, इन चर्चाओं को वर्गीकृत करने या औपचारिक रूप देने पर काम किया गया है, जैसा कि @cody चर्चा करता है।


3
मुझे लगता है कि "फेलेइसेन की अभिव्यंजना पत्र" से आप का मतलब है उनकी ऑन द एक्सप्रेसिव पावर ऑफ प्रोग्रामिंग लैंग्वेज
मार्टिन बर्गर

हाँ बिल्कुल। मैंने उत्तर के उस बिट को स्पष्ट किया।
सैम टोबिन-होचस्टाड

13

मुझे यकीन नहीं है कि मेरे पास आपके प्रश्न का संतोषजनक उत्तर है, लेकिन अगर आप प्योर टाइप सिस्टम पर विचार करते हैं, जो कि लैम्ब्डा क्यूब में पाए जाने वाले सिस्टम का एक सामान्यीकरण है (पूरी तरह से, अगर कुछ दिनांकित अवलोकन क्लासिक बारेंड्रेगट पाठ में पाया जा सकता है ) तो पदानुक्रम की कुछ प्राकृतिक धारणाएँ हैं:

  1. ΓA t:TΓB t:TΓ,tT:(,,)पीटीएस इस अर्थ में कि इसमें हर दूसरे पीटीएस से एक रूपवाद है। इसे एक प्रकार की प्रणाली की अभिव्यक्ति की माप के रूप में देखा जा सकता है, जहां अंतिम PTS सबसे अधिक अभिव्यंजक प्रणाली है।

  2. ABAFωECC

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