2013-03-15 8 views
5

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

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

क्या कुछ भाषा पहले से ही इस तरह की चीज़ों को सक्षम करती है, या तो मानक प्रकार-सिद्धांत के बाहर या इसकी अधिक उन्नत शाखाओं में से एक के भीतर?

+1

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

+0

@copumpkin - शायद मुझे दिलचस्पी होनी चाहिए, लेकिन मैंने जो भी उदाहरण देखे हैं वे बहुत उपयोगी हैं कि वे कितने उपयोगी हैं, और मैं नहीं देख सकता कि उन्हें एक परिवर्तनीय और ऑब्जेक्ट उन्मुख संदर्भ में कैसे विस्तारित किया जाए, जहां तर्क है ट्रिकियर हो जाता है और आपको वैसे भी मदद चाहिए। –

+0

@Rex क्या आप आश्रित प्रकारों की तुलना में अधिक अभिव्यक्तिपूर्ण अमूर्तता की तलाश में हैं? यदि हां, तो क्या आप एक उदाहरण दे सकते हैं? अन्यथा, शायद आप वास्तव में एक ऐसी भाषा की तलाश में हैं जो इसे संतोषजनक तरीके से लागू करे। –

उत्तर

0

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

+0

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

संबंधित मुद्दे