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