آلة Z
آلة Z هي آلة افتراضية طوّرها جويل بيريز ومارك بلانك عام 1979، واستخدمتها شركة إنفوكوم في ألعاب المغامرات النصية . قامت إنفوكوم بتجميع شفرة اللعبة في ملفات تحتوي على تعليمات آلة Z (تُسمى ملفات القصة أو ملفات شفرة Z)، وبالتالي استطاعت نقل ألعابها النصية إلى منصة جديدة ببساطة عن طريق كتابة تطبيق لآلة Z خاص بتلك المنصة. مع العدد الكبير من أنظمة الحواسيب المنزلية غير المتوافقة المستخدمة آنذاك، شكّلت هذه ميزة مهمة مقارنةً باستخدام الشفرة الأصلية أو تطوير مُجمِّع لكل نظام.
التاريخ والتصميم
التسميات والاتفاقيات
يشير حرف "Z" في Z-machine إلى لعبة Zork ، وهي أول لعبة مغامرات من إنتاج شركة Infocom. استخدمت Infocom امتدادات الملفات .dat (بيانات) و .zip (ZIP = برنامج مترجم Z-machine)، لكن الامتداد الأخير تعارض مع الاستخدام الواسع النطاق لامتداد .zip لملفات الأرشيف المتوافقة مع PKZIP بدءًا من التسعينيات، بعد أن أغلقت شركة Activision شركة Infocom.
أنتجت شركة إنفوكوم ستة إصدارات من جهاز Z-machine. يُعدّ الإصداران الأول والثاني نادرين للغاية، إذ لا يُعرف سوى ملفين فقط لكل منهما من إصدارات إنفوكوم. يغطي الإصدار الثالث غالبية ألعاب إنفوكوم المنشورة. أما الإصدارات اللاحقة، فقد تمتعت بقدرات أكبر، وبلغت ذروتها بدعم بعض الرسومات في الإصدار السادس.
عادةً ما تنتهي أسماء ملفات Z-code الحديثة بـ .z1، .z2، .z3، .z4، .z5، .z6، .z7، أو .z8، حيث يُمثل الرقم إصدار جهاز Z-machine الذي يُراد تشغيل الملف عليه، كما هو مُحدد في البايت الأول من ملف القصة. [ 1 ] وكما ذُكر سابقًا، استخدمت ألعاب Infocom ما يُعادل .z1 إلى .z6؛ وقد تم اقتراح .z7 و .z8 واعتمادهما بعد إغلاق شركة Infocom.
قبل آلة Z
استُمدت لغة البرمجة MDL من لغة Lisp في معهد ماساتشوستس للتكنولوجيا على يد فريق النمذجة الديناميكية التابع لمختبر علوم الحاسوب (LCS) في سبعينيات القرن العشرين. واستلهامًا من لعبة Colossal Cave Adventure (1977)، قام أعضاء الفريق بكتابة لعبة Zork بلغة MDL ، وأكملوا النسخة الأولية بعد أسبوعين. [ 2 ] [ 3 ] : 5-6. ومثل لعبة Adventure ، بُرمجت Zork لجهاز DEC PDP-10 ؛ وتشغل النسخة النهائية 1 ميجابايت من كود MDL وتتطلب 512 كيلوبايت من ذاكرة الوصول العشوائي (RAM) للتشغيل. ولأن أجهزة الكمبيوتر المنزلية في ذلك الوقت لم تكن تمتلك هذه الموارد، فقد تطلب الأمر جهدًا كبيرًا لنقل اللعبة. [ 3 ] : 11. وفي النهاية، قسم المطورون لعبة Zork إلى لعبتين لأجهزة الكمبيوتر الشخصية. [ 4 ]
بدا ضغط البيانات اللازم لتشغيل لعبة Zork من أقراص مرنة بسعة تخزين تبلغ حوالي 80 كيلوبايت عائقًا كبيرًا أمام بلانك. أدرك بيريز أن لغة باسكال من جامعة كاليفورنيا في سان دييغو تستخدم نموذج الآلة الافتراضية لإنشاء ملفات تنفيذية يمكن نقلها بسهولة بين المنصات، وبالتعاون مع بلانك، وضعا متطلبات لآلة افتراضية خفيفة الوزن مُحسَّنة لألعاب المغامرات النصية، والتي تسترجع البيانات وتنفذ التعليمات حسب الحاجة من وحدة التخزين لتعويض صغر حجم ذاكرة الوصول العشوائي (RAM) في الحواسيب الصغيرة التقليدية. [ 3 ] : 11 استخدمت آلة Z الناتجة بنية شجرية للكائنات لعناصر اللعبة ومواقعها وشخصياتها وأسلحتها. [ 3 ] : 11 للمقارنة، يشغل محلل آلة Z مساحة 3 كيلوبايت من التخزين، بينما يشغل محلل PDP-10 الأصلي مساحة 44 كيلوبايت (10000 كلمة 36 بت ). [ 5 ]
زيل و زيب، زيلش وزاب
استكمالاً لآلة Z، طورت شركة إنفوكوم لغة برمجة عالية المستوى تُسمى لغة تنفيذ زورك (ZIL) من خلال تبسيط لغة MDL [ 5 ] . قامت أدوات تطوير إنفوكوم بتجميع ZIL إلى تعليمات آلة Z في عملية من مرحلتين؛ مما جعل تطوير ألعاب المغامرات النصية مستقلاً عن المنصة، ومكّن من نقلها إلى أنظمة مختلفة ببساطة عن طريق كتابة مترجم مناسب لآلة Z. [ 3 ] : 12-13. تألفت هذه الأدوات من مُجمِّع (ZILCH، اختصارًا لـ ZIL Compiler Hack) ومُجمِّع ( ZAP، برنامج مُجمِّع آلة Z). [ 6 ]
على الرغم من أن برنامج ZILCH لم يُصدر رسميًا، إلا أن وثائق ZIL لا تزال موجودة، وقد كُتب بديل مفتوح المصدر يُسمى "ZILF" [ 7 ] . بعد أن نقلت شركة Mediagenic مقر شركة Infocom إلى كاليفورنيا عام 1989، ذكرت مجلة Computer Gaming World أن "ZIL ... قد توقف عن العمل فعليًا"، ونشرت شائعات عن "محلل لغوي جديد كليًا قد لا يُستخدم أبدًا". [ 8 ]
غراهام نيلسون وإنفورم
في مايو 1993، أصدر غراهام نيلسون الإصدار الأول من برنامج Inform الخاص به ، والذي يقوم أيضًا بإنشاء ملفات قصص Z-machine كمخرج له، على الرغم من أن لغة المصدر Inform تختلف تمامًا عن ZIL.
أصبح برنامج Inform شائعًا في أوساط مطوري القصص التفاعلية . وتُشكل ملفات قصص Z-machine نسبة كبيرة من هذه القصص. وقد دفع الطلب المتزايد على إمكانية إنشاء ملفات ألعاب أكبر حجمًا نيلسون إلى تحديد الإصدارين 7 و8 من Z-machine، مع أن الإصدار 7 نادر الاستخدام. وبسبب طريقة معالجة العناوين، يمكن أن يصل حجم ملف قصة الإصدار 3 إلى 128 كيلوبايت، وملف قصة الإصدار 5 إلى 256 كيلوبايت، وملف قصة الإصدار 8 إلى 512 كيلوبايت. ورغم أن هذه الأحجام قد تبدو صغيرة وفقًا لمعايير الحوسبة الحالية، إلا أنها كافية لألعاب المغامرات النصية المعقدة.
خلال تسعينيات القرن الماضي، وضع غراهام نيلسون معيار Z-Machine استنادًا إلى دراسات تفصيلية لملفات Infocom الموجودة. يتضمن المعيار أيضًا امتدادات تستخدمها إصداراته الأحدث، بالإضافة إلى روابط إلى تنسيق موارد " Blorb " وتنسيق ملفات حفظ " Quetzal ". [ 9 ] في عام 2006، وسّع نيلسون نطاق Z-Machine ليشمل تنسيق Glulx ذي 32 بت لبرنامج Inform 7. تتولى مؤسسة تكنولوجيا الخيال التفاعلي ، التي تأسست عام 2016، إدارة جميع هذه المعايير. [ 10 ]
ZIL (لغة تنفيذ Zork)
تعتمد لغة ZIL على لغة MDL من معهد ماساتشوستس للتكنولوجيا. إليك تعريف فانوس زورك 1 النحاسي في لغة ZIL، مع تعليقات إضافية لتوضيح معنى كل سطر: [ 11 ]
<OBJECT LANTERN ;"يُعرّف عنصر الفانوس" ( LOC LIVING-ROOM ) ;"يُعرّف موقع العنصر الأولي" ( SYNONYM LAMP LANTERN LIGHT ) ;"يُعرّف المرادفات التي يمكن استخدامها بدلاً من كلمة فانوس"" ( ADJECTIVE BRASS ) ;"صفة اختيارية لتمييز هذا الفانوس عن الفوانيس الأخرى" ( DESC "brass lantern" ) ;"وصف مختصر في قائمة الجرد" ( FLAGS TAKEBIT LIGHTBIT ) ;"ما هي إمكانيات هذا العنصر؟ يمكن أخذه. إنه يُوفّر الضوء." ( ACTION LANTERN-F ) ;"روتين فرعي يُحدد إجراءات خاصة مع هذا الكائن" ( FDESC "يوجد فانوس يعمل بالبطارية على خزانة الكؤوس." ) ;"الوصف أثناء المواجهة الأولى" ( LDESC "يوجد فانوس نحاسي (يعمل بالبطارية) هنا." ) ;"وصف لاحق في مواقع أخرى" ( SIZE 15 ) > ;"يُحدد الوزن للحد من سعة المخزون"يُعرَّف الكائن المكافئ في لغة MDL على النحو التالي:
<OBJECT [ "LAMP" "LANTE" "LIGHT" ] [ "BRASS" ] "lamp" <+ , OVISON , TAKEBIT , LIGHTBIT> LANTERN () ( ODESC0 "يوجد فانوس نحاسي يعمل بالبطارية على خزانة الكؤوس." ODESC1 "يوجد فانوس نحاسي (يعمل بالبطارية) هنا." OSIZE 15 OLINT [0 >] ) >يُقدّم مثالٌ أكثر تعقيدًا يتعلّق بالقتال، إلى جانب نظيره في لعبة MDL Zork، في تدوينةٍ نشرها أندرو بلوتكين عام 2019. والجدير بالذكر أن آلة Z لا تدعم جمع البيانات المهملة ، وأن لغة ZIL لا تتضمن مفهوم نظام القوائم في لغة Lisp. [ 12 ]
مترجمون فوريون

تتوفر برامج تفسير ملفات Z-code على مجموعة واسعة من المنصات. وقد قامت شركة إنفوكوم بنقل الألعاب بسرعة إلى أجهزة الكمبيوتر الجديدة لأنها لم تكن بحاجة إلا إلى كتابة برنامج تفسير. [ 13 ] اعتبارًا من يوليو 1984 نشرت الشركة ألعابًا لـ 15 جهاز كمبيوتر مختلفًا، بالإضافة إلى نظامي التشغيل CP/M و MS-DOS . [ 14 ] يُدرج موقع Inform الإلكتروني روابط لمترجمات متاحة مجانًا لـ 15 نظام تشغيل مكتبي (بما في ذلك أجهزة الكمبيوتر الصغيرة ذات 8 بت من ثمانينيات القرن الماضي مثل Apple II و TRS-80 و ZX Spectrum ، مع تجميع "Unix" و"Windows" في مجموعة واحدة لكل منهما)، و10 أنظمة تشغيل محمولة (بما في ذلك Palm OS و Game Boy )، وأربع منصات مترجمات ( Emacs وJava و JavaScript وScratch). ووفقًا لنيلسون، فهي "ربما تكون أكثر آلة افتراضية قابلة للنقل تم إنشاؤها على الإطلاق". [ 15 ]
من بين المفسرات الشائعة Nitfol و Frotz . يستخدم Nitfol واجهة برمجة تطبيقات Glk ، ويدعم الإصدارات من 1 إلى 8 من آلة Z، بما في ذلك الإصدار 6 الرسومي. تُخزَّن ملفات الحفظ بتنسيق حفظ Quetzal القياسي. تتوفر الملفات الثنائية لأنظمة تشغيل متعددة ، بما في ذلك نظام التشغيل Mac OS الكلاسيكي ، وأنظمة شبيهة بنظام Unix ، ونظام Windows . [ 16 ]
كُتب برنامج Frotz بلغة C بواسطة ستيفان جوكيش عام 1995 لنظام DOS. ومع مرور الوقت، نُقل إلى منصات أخرى، مثل أنظمة شبيهة بنظام Unix ، [ 17 ] ونظام RISC OS ، [ 18 ] ونظام iOS . [ 19 ] وكانت المؤثرات الصوتية والرسومات مدعومة بدرجات متفاوتة. بحلول عام 2002، توقف تطوير البرنامج، وتولى ديفيد غريفيث إكماله. قُسّم الكود البرمجي بين أجزاء الآلة الافتراضية وواجهة المستخدم ، بحيث أصبحت الآلة الافتراضية مستقلة عن أي واجهة مستخدم. أتاح هذا تنوعًا أكبر في نقل Frotz. ومن أغرب عمليات النقل، وأبسطها أيضًا، هو دمج روبوت مراسلة فورية مع نسخة من Frotz بأقل وظائف الإدخال/الإخراج، مما يُتيح تشغيل معظم ألعاب Z-machine باستخدام برنامج مراسلة فورية. [ 20 ]
يُعد Zoom عميلًا شائعًا آخر لنظام macOS والأنظمة الشبيهة بنظام Unix . [ 21 ] وهو يدعم نفس تنسيق حفظ Quetzal ، ولكن تختلف طريقة تغليف بنية الملف.
انظر أيضاً
مراجع
- ↑ "وثيقة معايير آلة Z" . inform-fiction.org . تم الاطلاع عليها بتاريخ 26 مارس 2018 .
- ↑ ليبلينغ، ب. ديفيد؛ بلانك، مارك س.؛ أندرسون، تيموثي أ. (أبريل 1979). "زورك: لعبة محاكاة خيالية محوسبة". مجلة الكمبيوتر . 12. جمعية مهندسي الكهرباء والإلكترونيات: 51-59 . doi : 10.1109/MC.1979.1658697 .
- 1 2 3 4 5 بريسينو، هيكتور؛ تشاو، ويسلي؛ غلين، أندرو؛ هو، ستانلي؛ كريشنامورثي، أشوين؛ تسوتشيدا، بروس (15 ديسمبر 2000). "التراجع من قمة النجاح: قصة شركة إنفوكوم" (ملف PDF) . دورة معهد ماساتشوستس للتكنولوجيا 6.933J/STS.420J (هيكلية الثورات الهندسية) . تاريخ الاسترجاع: 3 يناير 2025 .
- ↑ ليبلينغ، ب. ديفيد (ديسمبر 1980). "زورك ومستقبل محاكاة الخيال الحاسوبية" . بايت . ص 172-182 .
- 1 2 بلانك، مارك س.؛ جالي، إس دبليو (يوليو 1980). " كيفية وضع برنامج كبير في جهاز صغير أو كيفية وضع الإمبراطورية السرية العظيمة على سطح مكتبك" . الحوسبة الإبداعية . ص 80-87 . تم الاسترجاع في 7 يناير 2025 .
- ↑ بلوتكين، أندرو. "كتالوج إنفوكوم الشامل للغاية" . eblong.com . تم الاطلاع عليه في 3 يناير 2025 .
- ↑ ماكجرو، تارا. "ZILF" . zilf.io. تم الاطلاع عليه بتاريخ 18 أبريل 2026 .
- ↑ "داخل الصناعة: خطوة إنفوكوم نحو الساحل الغربي تثير الجدل" . عالم ألعاب الكمبيوتر . العدد 63. سبتمبر 1989. ص 10.
- ↑ "Inform - ZMachine - Standards" . inform-fiction.org . تم الاطلاع عليه بتاريخ 26 مارس 2018 .
- ↑ "مواصفات Glk و Glulx و Blorb" . مؤسسة تكنولوجيا الخيال التفاعلي. 16 نوفمبر 2022.
- ↑ ماهر، جيمي (7 يناير 2012). "ZIL وآلة Z" . The Digital Antiquarian . تم الاسترجاع في 3 يناير 2025 .
- ↑ بلوتكين، أندرو (17 أبريل 2019). "ما هو ZIL على أي حال؟" . زارف .
- ↑ مايس، سكوت (2 أبريل 1984). "ألعاب مع نوافذ" . إنفوورلد . ص 56. تم الاطلاع عليه في 10 فبراير 2015 .
- ↑ "نموذج طلب إنفوكوم (BB-84)" (ملف PDF) . متحف تاريخ ألعاب المغامرات الحاسوبية . تم الاطلاع عليه بتاريخ 19 فبراير 2026 .
- ↑ نيلسون، غراهام. "حول المترجمين الفوريين" . موقع إنفورم الإلكتروني . تم الاطلاع عليه بتاريخ 7 نوفمبر 2009 .
- ↑ "if-archive/infocom/interpreters/nitfol" . تم الاطلاع عليه بتاريخ 29-10-2016 .
- ↑ "ملف README الخاص بـ Frotz على Gitlab" . تم الاطلاع عليه بتاريخ 19-02-2019 .
- ↑ "الصفحة الرئيسية لنظام التشغيل RISC OS Frotz" . 18-09-1999. مؤرشف من الأصل في 15-10-2021.
- ↑ "Frotz على متجر التطبيقات" . متجر التطبيقات .
- ↑ "ملف Frotz DUMB على Gitlab" . تم الاطلاع عليه بتاريخ 19-02-2019 .
- ↑ "تكبير التحول المنطقي" . تم الاطلاع عليه بتاريخ 29-10-2016 .
روابط خارجية
- وثيقة معايير آلة Z
- دليل تعلم ZIL على موقع Wayback Machine (تمت أرشفته في 7 أغسطس 2010) (PDF) هو دليل Infocom ZIL من عام 1989
- وصف برنامج ZIP على موقع Wayback Machine (مؤرشف بتاريخ 9 مارس 2012) (ملف PDF) وبرنامج مترجم لغة Z (وثيقة داخلية لشركة Infocom) من عام 1989
- مترجمون فوريون
- يتناول كتاب "كيفية وضع برنامج كبير في آلة صغيرة" عملية إنشاء وتصميم آلة Z.
- محركات الخيال التفاعلي
- الآلات الافتراضية
- إنفوكوم
