मैं कुछ गेम कोड (अनिवार्य रूप से स्क्रिप्टिंग) को चलाने के लिए एक मंच के रूप में एक वर्चुअल मशीन का निर्माण करना चाहता हूं।
वर्चुअल मशीनें जिन्हें मैं खेल के बारे में जानता हूं वे अधिक पुरानी हैं: इन्फोकॉम की जेड-मशीन , लुकासआर्ट्स एससीयूएमएम , आईडी सॉफ्टवेयर का क्वेक 3 । एक .net डेवलपर के रूप में, मैं सीएलआर से परिचित हूं और सीआईएल निर्देशों में देखा गया है कि आप वास्तव में एक वीएम स्तर (बनाम भाषा स्तर) पर क्या लागू करते हैं। मैंने पिछले वर्ष के दौरान 6502 असेंबलर में थोड़ा सा डब किया है ।
बात यह है कि अब मैं चाहता हूं कि किसी एक को लागू करने के लिए मुझे थोड़ी गहराई खोदने की जरूरत है। मुझे पता है कि स्टैक आधारित और रजिस्टर आधारित वीएम हैं, लेकिन मुझे वास्तव में नहीं पता है कि कौन सा बेहतर है और क्या है और यदि हाइब्रिड दृष्टिकोण हैं। मुझे स्मृति प्रबंधन से निपटने की आवश्यकता है, यह तय करें कि निम्न स्तर के प्रकार वीएम का हिस्सा हैं और यह समझने की आवश्यकता है कि सामान की तरह ldstr काम क्यों करता है।
मेरी एकमात्र संदर्भ पुस्तक (जेड-मशीन सामान के अलावा) सीएलआई एनोटेट मानक है , लेकिन मुझे आश्चर्य है कि क्या वीएम के लिए एक बेहतर, अधिक सामान्य / मौलिक व्याख्यान है? मूल रूप से ड्रैगन बुक की तरह कुछ है , लेकिन वीएम के लिए? मुझे कंप्यूटर प्रोग्रामिंग के डोनाल्ड नुथ के आर्ट के बारे में पता है जो एक रजिस्टर-आधारित वीएम का उपयोग करता है, लेकिन मुझे यकीन नहीं है कि यह श्रृंखला अभी भी लागू है, खासकर जब से यह अभी भी अधूरा है?
स्पष्टता: लक्ष्य एक विशेष वीएम का निर्माण करना है। उदाहरण के लिए, इन्फोकॉम की जेड-मशीन में बैकग्राउंड कलर सेट करने या साउंड बजाने के लिए ओपकोड होते हैं। इसलिए मुझे यह पता लगाने की आवश्यकता है कि वीपी में ओपकोड्स बनाम संकलक के रूप में कितना जाता है जो एक स्क्रिप्ट (भाषा टीबीडी) लेता है और इससे बायटेकोड उत्पन्न करता है, लेकिन इसके लिए मुझे यह समझने की आवश्यकता है कि मैं वास्तव में क्या कर रहा हूं।
Modern मुझे पता है, आधुनिक तकनीक मुझे मक्खी पर उच्च स्तरीय स्क्रिप्टिंग भाषा की व्याख्या करने की अनुमति देगी। लेकिन इसमें मज़ा कहाँ है? :) यह Google के लिए थोड़ा कठिन है क्योंकि आजकल वर्चुअल मशीनें अक्सर VMWare-टाइप OS वर्चुअलाइजेशन से जुड़ी हैं ...
do { switch(opcode) {case OP1: ... case OP2: ...} while (nextop);
फिर शायद एक कंपाइलर ... और फिर मज़ा शुरू होता है - अनुकूलन इसे वास्तव में काम करने के लिए
Quake 3
वर्चुअल मशीन कितनी सही है ?