एक कार्यक्रम अनुवाद के पूर्ण निरपेक्षता बनाम पूर्ण पूर्णता


15

कंपाइलर सत्यापन के प्रयास अक्सर कंपाइलर को पूरी तरह से अमूर्त साबित करने के लिए नीचे आते हैं: कि यह (प्रासंगिक) समकक्षों को संरक्षित और प्रतिबिंबित करता है।

पूर्ण अमूर्त प्रमाण प्रदान करने के बजाय, हसेगावा [ 1 , 2 ] और एगर एट द्वारा कुछ हालिया (श्रेणी आधारित) संकलक सत्यापन कार्य । अल। [ ] विभिन्न सीपीएस अनुवादों की पूर्णता को साबित करते हैं।

प्रश्न: पूर्णता और पूर्ण अमूर्त के बीच अंतर क्या है?

मेरे लिए, पूर्णता सिर्फ अनुवाद के लिए तुल्यता प्रतिबिंब की तरह दिखती है और परिपूर्णता समानता संरक्षण का परिणाम प्रतीत होती है।

नोट : दोनों Curien [ 7 ] और Abramsky [ 8 ] definability, पूर्ण अमूर्त के बीच संबंध का पता लगाने, और कुछ हद तक पूरा करने के लिए पूर्णता। मुझे संदेह है कि इन संसाधनों के पास मेरे प्रश्न का उत्तर हो सकता है, लेकिन एक सतह पढ़ने के बाद मुझे इसकी पुष्टि करनी बाकी है।

कुछ पृष्ठभूमि : "पूर्ण पूर्णता" शब्द को अब्रामस्की और जगदीसन द्वारा तैयार किया गया था [ 4 ], जो बहु-गुणक रैखिक तर्क के खेल-अर्थपूर्ण मॉडल की शुद्धता की विशेषता है।

Blute [ 5 ] निम्नलिखित परिभाषा प्रदान करता है:

Let एक निःशुल्क श्रेणी हो। हम कहते हैं कि एक स्पष्ट मॉडल है कि है के लिए पूरी तरह से पूरा या हम है कि से भरा पूर्णता सम्मान के साथ करने के लिए अगर, जेनरेटर के कुछ व्याख्या के संबंध में , अद्वितीय निःशुल्क फ़नकार भरा हुआ है।M F F M [FM FFM[[]]:FM

जहाँ तक मैं बता सकता हूँ, हसेगावा [ 6 ] में सबसे पहला है एक श्रेणीबद्ध शब्दार्थ मॉडल के बजाय एक कार्यक्रम अनुवाद का वर्णन करने के लिए पूर्णता को अनुकूलित करना। इस स्थिति में, गिरार्ड का अनुवाद केवल लंबोदर कैलकुलस से रैखिक लंबो कैलकुलस में टाइप किया जाता है। बाद में, [ 1 ] में, वह सीपीएस अनुवाद पूर्णता को परिभाषित करता है :()

यदि रेखीय लैम्ब्डा कैलकुलस में व्युत्पन्न है, तो कम्प्यूटेशनल में मौजूद है लैम्ब्डा कैलकुलस जैसे कि रैखिक पथरी में रखती है।गामा एम : σ गामा ; एम = एन : ( σ ) Γ;N:(σo)oΓM:σΓ;M=N:(σo)o

(जहां रेखीय लैम्ब्डा कैलकुलस (लक्ष्य भाषा) में एक आधार प्रकार है, लेकिन कम्प्यूटेशनल लैम्ब्डा कैलकुलस (स्रोत भाषा) में नहीं है।)o

मेरे लिए, हसेगावा की परिभाषा एक परिपूर्णता की तरह लगती है और पूर्णता प्राप्त करने के लिए वास्तव में पूर्णता के साथ जोड़ा जाना चाहिए।

ईगर एट। अल। [ ] सीपीएस अनुवाद की पूर्ण पूर्णता को परिभाषित करता है (१) पूर्णता और (२) पूर्णता के संयोजन के रूप में:()v

(1): अगर और तत्कालीनΘ v | - एम वी = बीटा η एन वी : ! τ वी Θ एम = λ सी एन : τΘM,N:τΘv|Mv=βηNv:!τvΘM=λcN:τ

(२): तब एक शब्द ऐसा कि Θ एम : τ Θ v | - एम वी = बीटा η टी : ! τ वीΘv|t:!τvΘM:τΘv|Mv=βηt:!τv

(जहाँ मोगी का कम्प्यूटेशनल इक्विशनल सिद्धांत है)=λc


[१] " रैखिक रूप से प्रयुक्त प्रभाव: रेखीय लैम्ब्डा कैलकुलस में मोनाडिक और सीपीएस रूपांतरण ", हसेगावा २००२

[२] " कॉल-बाय-नेम में रेखीय निरंतरता-पासिंग का शब्दार्थ ", हसेगावा २००४

[३] " समृद्ध प्रभाव गणना में रैखिक उपयोग सीपीएस अनुवाद ", एगर एट। अल। 2012

[४] " गेम्स एंड फुल कम्प्लीटनेस फ़ॉर मल्टीप्लिस्टिक लीनियर लॉजिक ", अब्रामस्की और जगदीसन 1992

[५] " लीनियर लॉजिंस के लिए श्रेणी सिद्धांत ", ब्ल्यूट २००३

[६] " गिरार्ड अनुवाद और तार्किक भविष्यवाणी ", हसेगावा २०००

[[] " डेफिबिलिटी एंड फुल एब्स्ट्रेक्शन ", क्यूरियन २००ability

[[] " एज़ियम्स फ़ॉर डेफ़िशिबिलिटी एंड फुल कम्प्लीटनेस ", अब्रामस्की 1999

जवाबों:


12

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

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

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

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

वास्तव में, मुझे ऐसी किसी भी लक्षित भाषा का पता नहीं है, जिसे हम वास्तव में "समझ" सकें। हम सभी जानते हैं कि लक्ष्य भाषा के लिए अवलोकन संबंधी तुल्यता की कुछ अन्य धारणा है। उस स्थिति में, अनुवाद पर्याप्त होता है यदि लक्ष्य भाषा में अनुवादों के अवलोकन संबंधी स्रोत का स्रोत भाषा में अवलोकन संबंधी समानता का अर्थ है। अनुवाद करता है, तो स्रोत भाषा में शब्दों का अवलोकन तुल्यता लक्ष्य भाषा में अनुवाद का अवलोकन तुल्यता का तात्पर्य पूरी तरह से सार है। एम एन τ ( एम )

τ(M)τ(N)MN
: कुछ लेखक "पूरी तरह से अमूर्त अनुवाद" ले इन दोनों गुणों के संयोजन मतलब करने के लिए एम एन
MNτ(M)τ(N)
MNτ(M)τ(N)

एगर एट अल अनुवादों के लिए पूर्णता के विचार को समान रूप से बढ़ाते हुए प्रतीत होते हैं। उनके सेट-अप में, सूत्र प्रकार हैं और प्रमाण शब्द हैं। उनका अनुवाद प्रकारों के साथ-साथ शब्दों का भी अनुवाद करता है। वे अपने अनुवाद को पूरी तरह से पूर्ण कहते हैं यदि टाइप के अनुवाद में केवल वही शब्द हैं जो टाइप के मूल शब्दों का अनुवाद करके प्राप्त किए जाते हैं । AA

N:τ(A).M:A.τ(M)=एन

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

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

एक बार फिर, यह संकलक के साथ कुछ नहीं करना है। कंपाइलर शायद ही कभी पर्याप्त या पूरी तरह से अमूर्त होते हैं। और, वे होने की जरूरत नहीं है! कंपाइलर को सभी कार्यक्रमों के निष्पादन व्यवहार को संरक्षित करने की आवश्यकता होती है। एक संकलक की लक्ष्य भाषा आम तौर पर बहुत बड़ी होती है, जिसका अर्थ है कि इसमें बहुत सारे संदर्भ हैं जो समानता को गड़बड़ कर सकते हैं। इसलिए, संकलित होने पर स्रोत भाषा में समतुल्य कार्यक्रम लगभग कभी भी समतुल्य नहीं होते हैं।


आपके कहने का क्या मतलब है कि ऐसी कोई भाषा नहीं है जिसे हम वास्तव में पूरी तरह से "समझ" सकें?
मार्टिन बर्गर

आपके कहने का क्या मतलब है कि किसी ने अभी तक एक अर्थपूर्ण मॉडल का उत्पादन नहीं किया है जो रचनात्मक प्रमाण विधि का प्रतिनिधित्व करता है?
मार्टिन बर्गर

1
क्षमा करें, लेकिन आपके पहले पाठ की तुलना में "अनुवाद" के निहितार्थ मेरे लिए गलत दिशा में हैं। के लिए पूर्ण अमूर्तता, कहते हैं, PCF M⟹τN M (M) N (N) के लिए पूछता है (sem denotational शब्दार्थ होने के साथ, और प्रतीकों को बदलने की आवश्यकता को अनदेखा करना): जैसा कि आप कहते हैं, "पूर्ण अमूर्त का अर्थ है, यदि दो शब्द पर्यवेक्षित रूप से समतुल्य हैं, शब्दार्थ मॉडल में उनका समान अर्थ है "। लेकिन आपका निहितार्थ दूसरा तरीका है (अर्थात्, आप M (M) N (N) ≅M )N) लिखते हैं! या क्या अनुवाद, शब्दार्थ शब्दार्थ से अलग काम करते हैं?
Blaisorblade

1
@ ब्लेज़रब्लड: आप बिलकुल सही हैं! मैंने अपने उत्तर के पाठ में सुधार किया।
उदय रेड्डी

1
भाषा स्तर की सुरक्षा के लिए, और संभावित रूप से क्रॉस-भाषा एकीकरण के लिए पूर्ण अमूर्त ब्याज भी है। यानी यह जानना उपयोगी है कि लक्ष्य भाषा में कुछ भी स्रोत भाषा के सार का उल्लंघन नहीं कर सकता है।
dmbarbour

5

सारांश: पूर्ण पूर्णता का अर्थ है कि व्याख्या कार्य केवल पूर्ण नहीं है, बल्कि कार्यक्रमों पर विशेषण भी है। पूर्ण अमूर्तता को सर्जनशीलता की कोई आवश्यकता नहीं है।

विवरण: पूर्ण अमूर्तता और पूर्ण पूर्णता का विस्तृत अर्थ इस बात पर निर्भर करता है कि आप क्या / कहां / कैसे व्याख्या कर रहे हैं। यहां एक टाइप की गई प्रोग्रामिंग भाषा की व्याख्या दूसरे में करना है। आपके पास एक व्याख्या फंक्शन जो तीन चीजों को मैप करता है।[[.]]

  • प्रकार प्रकार के लिए स्रोत भाषा की लक्ष्य भाषा में।[A[[A]]

  • संदर्भों संदर्भों को स्रोत भाषा में लक्ष्य भाषा में।[Γ[[Γ]]

  • संदर्भ में कार्यक्रम संदर्भ में कार्यक्रमों के लिए ।[ΓP:α[[Γ]][[P]]:[[α]]

एक स्पष्ट व्याख्या में पहले दो नक्शे एक में ढह जाते हैं। व्याख्या फ़ंक्शन में विभिन्न गुण हो सकते हैं, उदाहरण के लिए यह संरचनागत हो सकता है, या समाप्ति को संरक्षित कर सकता है या ... पूर्ण अमूर्त एक ऐसी संपत्ति है। याद है कि का पूरा अमूर्त मतलब है[[.]]

PSQ     iff     [[P]]T[[Q]]

सभी के लिए । यहाँ स्रोत भाषा के लिए टाइप किए गए प्रोग्राम तुल्यता की चुनी गई धारणा है, जबकि लक्ष्य भाषा के लिए उस भूमिका को निभाता है। अधिक सटीक, क्योंकि हम एक टाइपिंग सेटिंग में हैं,एस टीP,QST

PΓ,αSQ     iff     [[P]][[Γ]],[[α]]T[[Q]]
सभी उपयुक्त । पूर्ण अमूर्तता का तात्पर्य है कि ध्वनि और पूर्ण है। जिस कारण से हम पूर्ण अमूर्त की बात करते हैं, न कि केवल ध्वनि और पूर्णता की बात यह है कि हम यह भी चाहते हैं कि लक्ष्य भाषा 'किसी तरह' गैर-तुच्छ हो, उदाहरण के लिए कोई शब्द नहीं। लेकिन इस गैर-तुच्छता को औपचारिक रूप देना कठिन है, और हम केवल शब्दावली द्वारा गैर-तुच्छता के लिए गठबंधन करते हैं।Γ,α,P,Q[[.]]

अब पूर्ण अमूर्त का मतलब यह नहीं है कि प्रकार, संदर्भों या संदर्भों में कार्यक्रमों पर है।[[.]]

पूर्ण पूर्णता का मतलब है कि नक्शा (पूर्ण और) है surjective संदर्भ में कार्यक्रमों पर सभी definable संदर्भों और definable प्रकार, यानी किसी भी कार्यक्रम के लिए में लक्षित भाषा कुछ की स्रोत भाषा में, अर्थात । ध्यान दें कि इसके लिए प्रकारों और संदर्भों पर आवश्यकता नहीं है, क्योंकि उस संपत्ति की व्याख्या शायद ही होती है जिसमें हम आमतौर पर रुचि रखते हैं।[[.]][[Γ]]Q:[[α]]ΓP:αQ=[[P]][[.]]

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