मैं मार्टिन-लोफ प्रकार के सिद्धांत, यानी Coq / Agda में औपचारिक रूप से सत्यापित कंपाइलरों में रुचि रखता हूं। फिलहाल मैंने एक छोटा सा खिलौना उदाहरण लिखा है। इसके अलावा मैं साबित कर सकता हूं कि मेरी आशाएं सही हैं। उदाहरण के लिए कि शून्य के साथ परिवर्धन को समाप्त किया जा सकता है, अर्थात "x + 0" जैसे भाव।
क्या ऐसे अनुकूलन हैं जो एक नियमित संकलक के साथ प्रदर्शन करना मुश्किल है, जो एक अच्छा उदाहरण के रूप में काम करेगा? क्या ऐसे कार्यक्रम के कुछ गुणों को साबित करना संभव है जो ऐसे अनुकूलन की अनुमति देता है जो एक नियमित संकलक के साथ प्रदर्शन करना संभव नहीं है? (अर्थात बिना किसी अनुमान के जो एक प्रमेय कहावत के साथ संभव है)
मुझे विचारों या उदाहरणों में दिलचस्पी होगी और विषय पर संदर्भ भी।
एक संबंधित प्रश्न: कंपाइलर शुद्धता प्रमाण
संपादित करें: जैसा कि त्सुकोशी ने अच्छी तरह से टिप्पणियों में रखा है: मैं अनुकूलन तकनीकों की तलाश कर रहा हूं, जो कि एक कंपाइलर (सी) सी में लिखे गए हैं, लेकिन इसे लागू करना मुश्किल है, लेकिन अगर कंपाइलर (कहना) कोक में लिखा गया है तो इसे लागू करना आसान है। चूँकि Agda C (haskell के माध्यम से) को संकलित करता है, इसलिए Agda में भी वह सब कुछ करना संभव है जो C. में भी संभव है। Coq / Agda की तरह प्रमेय का एकमात्र लाभ यह है कि संकलक और अनुकूलन को सत्यापित किया जा सकता है।
edit2: जैसा कि विजय डि ने सुझाया है, मैंने जो पढ़ा है वह अब तक पढ़ा है। मैंने मुख्य रूप से जेवियर लेरॉय और कॉम्पेक्ट प्रोजेक्ट पर INRIA पर ध्यान केंद्रित किया (एक 80 पृष्ठों का पेपर है जो एक अच्छा पढ़ा है, मुझे लगता है)। इंटरेक्टिव कार्यक्रमों पर एंटोन सेज़र के काम में एक दूसरी दिलचस्पी थी। हालांकि, मैं शायद उनके काम का उपयोग IO कार्यक्रमों और IO कार्यक्रमों के बिसिमुलेशन के बारे में गुण साबित करने के लिए कर सकता था। सेवेल का उल्लेख करने के लिए धन्यवाद। मैंने ICFP में उनकी बात "जंगल से किस्से" सुनी है और शायद उनके 2-3 पेपर पढ़े हैं। लेकिन मैंने विशेष रूप से उनके काम और उनके सहकर्मियों पर ध्यान नहीं दिया है।
मुझे अभी तक यह पता नहीं चला है कि संकलक के अनुकूलन के लिए कागजात कहाँ से शुरू करें या देखें; उदाहरण के लिए, सत्यापित कंपाइलर की सेटिंग में कौन से अनुकूलन दिलचस्प होंगे।