यह एक बहुत ही रोचक सवाल है। मेरा दिन का काम प्रोग्रामिंग भाषाओं का अध्ययन करना है, और लुआ सावधानीपूर्वक अध्ययन का भुगतान करेंगे। मैं कहूंगा कि बहुत कम अन्य भाषाओं (शायद आइकन और सीएलयू) के बारे में। कृपया ध्यान दें कि भाषा पूरी तरह से है, व्यक्तिगत विशेषताएं नहीं, जो लुआ को अध्ययन के योग्य बनाती है।
क्या यह कार्यान्वयन करने वाले दिलचस्प नए विचारों का परिणाम है, या यह अच्छी तरह से स्थापित विचारों के अच्छे निष्पादन का परिणाम है?
दोनों। विवरण के लिए, इस प्रश्न के उत्तर के लिए आपका सबसे अच्छा स्रोत पेपर The Evolution of Lua है, जो प्रोग्रामिंग भाषाओं के इतिहास पर तीसरे एसीएम संगोष्ठी में दिखाई दिया। लेकिन मैं कुछ टिप्पणियां जोड़ूंगा।
केवल परिवर्तनशील, गैर परमाणु डेटा के प्रकार के रूप में लुआ तालिकाओं का उपयोग लुआ टीम द्वारा आविष्कार किया गया था। वे सीएलयू में विकास से प्रेरित थे, और मेरा मानना है कि वे अवेक और आइकन में इसी तरह के काम से अवगत थे, लेकिन इस डिग्री के लिए परिष्करण लुआ टीम का एक महत्वपूर्ण योगदान है।
टेबल्स का भी एक बहुत ही कुशल कार्यान्वयन है, जिसका लुआ टीम द्वारा आविष्कार किया गया था।
लुआ के कार्यात्मक सुविधाओं योजना के रूप में एक ही अर्थ विज्ञान है, लेकिन लुआ प्रथम श्रेणी के काम करता है, जो मुझे लगता है कि वे कार्यात्मक प्रोग्रामिंग की जर्नल में प्रकाशन के लिए प्रस्तुत करना चाहिए की एक अद्वितीय कार्यान्वयन है।
एम्बेडिंग के लिए एपीआई वर्षों में काफी परिष्कृत किया गया है। इसकी मुख्य विशिष्ट विशेषता यह है कि उपयोगकर्ता द्वारा परिभाषित अमूर्त प्रकार एम्बेडिंग में पूरी तरह से भाग ले सकते हैं। यह वह संपत्ति है जो लुआ एपीआई को टीसीएल एपीआई से बेहतर बनाती है, उदाहरण के लिए। लुआ एपीआई ने पिछले कुछ वर्षों में परिष्करण का एक बड़ा सौदा किया है, जिसमें संस्करण 2.5 पर इसका पहला प्रकाशन भी शामिल है। लुआ डिजाइनरों को यहां बहुत सारे क्रेडिट का हकदार है।
कचरा-संग्रह तकनीक मानक है।
लुआ कोरआउट कुछ पुराने विचारों पर एक नया कदम प्रस्तुत करता है। नया लेआउट एसीएम प्रोग्रामिंग भाषाएं और सिस्टम पर लेनदेन के योग्य माना जाता था, इसलिए मुझे लगता है कि लुआ टीम को मौलिकता के लिए क्रेडिट मिलता है।
लुआ मेटाटेबल्स सामान्य लिस्प मेटाबोजेक्ट प्रोटोकॉल से संबंधित हैं।
मुझे लगता है कि लुआ के लुआ टीम की ताकत का एक अद्वितीय संयोजन से सफलता परिणाम:
आप HOPL paper पढ़ते हैं, तो आप देखेंगे कि लुआ टीम कई से अच्छी तरह परिचित थे प्रोग्रामिंग भाषाओं में विकास और सर्वोत्तम विचारों में से चुनने में सक्षम थे। लोकप्रिय पटकथा भाषाओं के अधिकांश डिजाइनर शौकिया रहे हैं और लगभग इतनी अच्छी तरह से सूचित नहीं किया गया है।
लुआ शानदार डिज़ाइन किया गया है ताकि टुकड़े एक उत्कृष्ट शक्ति-से-वजन अनुपात के साथ बहुत अच्छी तरह से फिट हो जाएं। यह समय के साथ बहुत परिष्करण का नतीजा है, और पीयूसी-रियो लुआ टीम के लिए बड़ी संख्या में कागजात पीसने के बजाय भाषा डिजाइन और कार्यान्वयन पर काम करने के लिए तैयार था। यह काम उत्तरी अमेरिकी विश्वविद्यालय में नहीं किया जा सका।
लुआ शानदार इंजीनियर है। कार्यान्वयन सिर्फ आश्चर्यजनक रूप से अच्छा है। यह महान इंजीनियरों द्वारा आंशिक रूप से महान काम है और आंशिक रूप से 15 साल की अवधि में डिजाइन को संशोधित करने का अवसर है।
मैं पाठकों पूछ चुनने और शोधन अच्छी तरह से स्थापित विचारों एक सुसंगत पूरे फार्म का की कठिनाई कम करने के लिए नहीं द्वारा बंद कर देंगे। यह बेहद मुश्किल काम है और शायद ही कभी यह माना जाना चाहिए।
स्रोत
2010-01-20 15:17:57
+1: बहुत अच्छा जवाब –
समय के लिए, http://www.lua.org/doc/jucs05.pdf पर "लुआ 5.0 का कार्यान्वयन" देखें, हम उस पेपर पर काम कर रहे हैं, नॉर्मन, लेकिन लुआ 5.2 अभी हमारा ध्यान प्राप्त कर रहा है ... – lhf
TOPLAS पेपर, रिविसिटिंग कोरोटाइन्स पर एलटीयू पर चर्चा की गई, जिस कारण से मैंने इस पर ध्यान नहीं दिया: http://lambda-the-ultimate.org/node/ 2868 –