क्या एरलांग वास्तव में एक अभिनेता मॉडल भाषा है?


18

मैं इस लेख को पढ़ रहा था:

http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol2/pjm2/

और यह उल्लेख है कि:

... अभिनेता मॉडल में भी एक पूर्णांक एक अभिनेता के रूप में दर्शाया जाता है ...

विकिपीडिया पुष्टि करता है:

अभिनेता मॉडल दर्शन को अपनाता है कि सब कुछ एक अभिनेता है।

एर्लांग में कई डेटा प्रकार हैं और वे प्रकार अभिनेता नहीं हैं जहां तक ​​मैं बता सकता हूं।

क्या इसका मतलब यह नहीं है कि एर्लांग एक अभिनेता मॉडल भाषा नहीं है, जिस तरह से कुछ लोग कहते हैं कि उदाहरण के लिए जावा केवल एक कार्यात्मक भाषा नहीं है क्योंकि इसमें कुछ कार्यात्मक प्रोग्रामिंग सुविधाओं का अभाव है?

पुनश्च: विस्तार से इसका मतलब यह है कि अक्का निश्चित रूप से एक अभिनेता मॉडल नहीं है, क्योंकि मेजबान भाषा से आने वाले गैर-अभिनेता डेटा प्रकारों के अलावा यह यहां तक ​​कि अभिनेताओं को मेजबान भाषा सुविधाओं के माध्यम से अपने व्यवहार का विस्तार करने की अनुमति देता है।

जवाबों:


39

हालाँकि एक्टर मॉडल एरलंग से पुराना है, एर्लैंग के डिजाइनरों ने एर्लैंग को डिज़ाइन करने के बाद केवल एक्टर मॉडल के बारे में सीखा है, इसलिए कुछ अंतरों की उम्मीद की जानी चाहिए।

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

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

तो, एर्लैंग में प्रक्रियाओं, OO में ऑब्जेक्ट्स और अभिनेता मॉडल में अभिनेताओं के बीच समानताएं संयोग से दूर हैं।

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

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

तो, यह इस बात पर निर्भर करता है कि आप किस पैमाने पर देख रहे हैं।

एक ठेठ बड़े एरलांग सिस्टम में, आपके पास एक ऑब्जेक्ट-ओरिएंटेड आर्किटेक्चर है जिसमें कार्यात्मक प्रोग्रामिंग का उपयोग करके संदेश-गुजरने वाले अभिनेताओं को लागू किया जाता है। OTP कॉल एक serverवस्तु से निकटता से संबंधित है, serverएस प्रक्रियाओं से बना है (जो अभिनेता हैं), प्रक्रिया आंतरिक रूप से कार्यों का उपयोग करती है।

सामान्य तौर पर, मुझे विश्वास नहीं है कि किसी भी शुद्ध अभिनेता भाषा ने कभी भी शोध को छोड़ दिया है। हेक, मुझे यह भी पता नहीं है कि कार्ल हेविट का PLASMA, मूल अभिनेता भाषा कभी भी लागू किया गया था।


4
Erlang को लोगों द्वारा हल करने के लिए एक समस्या के साथ भी डिज़ाइन किया गया था, और जब आप उस स्थिति में होते हैं, तो वैचारिक शुद्धता को अक्सर व्यावहारिकता की वेदी पर बलिदान किया जाता है।
ब्लरफाल

दिलचस्प बात यह है कि जिस समस्या को वे सुलझाने की कोशिश कर रहे थे (विश्वसनीयता, प्रतिकृति, अतिरेक, ...) वही प्रकृति है जब यह विकसित कोशिकाओं को हल करने की कोशिश कर रहा था। एलन केआई ने सूक्ष्म जीव विज्ञान में कीर्तिमान बनाया, और जैविक कोशिकाओं पर स्पष्ट रूप से OO का निर्माण किया। एक और समानांतर।
जोर्ग डब्ल्यू मित्तग

1
PLASMA को MacLisp में लागू किया गया था। यह तेजी से विकसित होने वाली शोध भाषा थी।
जेरी १०१

1
वाकई इस जवाब में मज़ा आया। धन्यवाद @ JörgWMittag!
फेलिक्सज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.