2011-06-16 11 views
9

मुझे पता चला कि एएनएसआई स्मॉलटाक विनिर्देश (ड्राफ्ट) में thisContext के बारे में कोई उल्लेख नहीं है।एएनएसआई स्मॉलटॉक और स्मॉलटॉक -80 का क्या अंतर है?

मैंने मानकीकृत स्मॉलटाक -80 के रूप में एएनएसआई स्मॉलटॉक माना, इसलिए मुझे समझ में नहीं आता कि यह क्यों नहीं है। उनमें क्या अंतर है?

उत्तर

12

स्मालटाक-80 एक बहुत ही विशेष बात को दर्शाता है: जबकि कई Smalltalks कि आधारित हैं, देखते हैं या तो एक सीधा अर्थ में (स्क्वीक और Pharo) कि Xerox PARC में प्रयोग में था 1980 में वापस स्मालटाक के संस्करण या एक वैचारिक अर्थ (अंबारा स्मॉलटॉक और जीएनयू स्मॉलटाक), उस माहौल पर, आज के आसपास कोई छोटी सी चीजें नहीं हैं जो वास्तव में पूरी तरह से उस पुस्तक में वर्णित भाषा और आभासी मशीन का पालन करती हैं। यहां तक ​​कि स्क्वाक, जो शायद निकटतम विचारधारात्मक रूप से है, में कुछ प्रमुख विचलन हैं: स्क्वाक बंद हो गया है, स्मॉलटॉक -80 नहीं है; स्क्वाक में यूनिकोड है, स्मॉलटाक -80 नहीं है; स्क्वाक का वीएम नामित प्राइमेटिव्स का समर्थन करता है और इसका उपयोग करता है, स्मॉलटॉक -80 नहीं करता है; स्क्वाक कुछ बाइटकोड का समर्थन करता है जो स्मॉलटाक -80 नहीं करता है; और इसी तरह।

एएनएसआई कॉमन लिस्प की तरह एएनएसआई स्मॉलटाक ने एक मानक को परिभाषित करने का प्रयास किया जो प्रमुख स्मॉलटाक कार्यान्वयन में स्मॉलटॉक कार्यक्षमता का एक सामान्य सबसेट शामिल करता है। चूंकि एएनएसआई मानक 1 99 8 में लिखा गया था, इसलिए इसे केवल मूल कार्यान्वयन से कहीं अधिक ध्यान में रखना पड़ा। विशेष रूप से, कुछ समय-समय पर छोटे स्मॉलटाक, जैसे कि स्मॉलटाक एमटी और विजुअलएज स्मॉलटाक, में निरंतरता की कमी थी (और thisContext परिणामस्वरूप परिवर्तनीय)। इसलिए यह सुविधा एएनएसआई मानक से अनुपस्थित है।

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

+0

विवरण के लिए धन्यवाद! क्या यह एएनएसआई सबसेट के साथ कई कार्यान्वयन पर * संगत * प्रोग्राम बनाना संभव है? एएनएसआई के अनुरूप कितने कार्यान्वयन हैं? और स्क्वाक जैसे कुछ कार्यान्वयन में स्मॉलटॉक -80 संगत माध्यम क्या है? – Eonil

+2

हां, यह संभव है। उदाहरण के लिए समुद्रतट अधिकांश स्मॉलटॉक प्लेटफार्मों पर चलता है। विवरण के लिए हमारे कोडिंग सम्मेलनों को देखें: http://code.google.com/p/seaside/wiki/CodingConventions। अधिकांश स्मॉलटाक आज एएनएसआई के अनुरूप है, क्योंकि समुद्रतट के लिए इसकी आवश्यकता होती है (और परीक्षण)। एएनएसआई संगतता का अर्थ है कि एएनएसआई मानक में वर्णित अनुसार कक्षाओं और विधियों को लागू और व्यवहार किया जाता है। –

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