Кіріспе

Инфоком виртуалды машинасы (Z машинасы) – Джоэл Берез және Марк Бланк 1979 жылы әзірлеген және Infocom компаниясы мәтіндік ойын-сауық ойындары үшін пайдаланған виртуалды машина. Infocom ойын кодын Z машинасының нұсқауларын қамтитын файлдарға (оқиға файлдары немесе Z код файлдары деп аталады) компиляциялады, соның арқасында мәтіндік ойындарын жаңа платформаға тек Z машинасының нұсқасын жазу арқылы көшіре алды. Сол кезде қолданыста болған көптеген үйлесімсіз компьютер жүйелерінің санына байланысты, бұл әрбір жүйе үшін жергілікті кодты пайдаланудан немесе компилятор жасаудан маңызды артықшылық болды.

Тарих

Z машинасының "Z" әрпі Zork ойынын білдіреді, Infocom компаниясының алғашқы шытырман оқиғалар ойыны. Z код файлдарының атаулары z1, z2, z3, z4, z5, z6, z7 немесе z8 әріптерімен аяқталады, мұндағы сан – файлды іске қосуға арналған Z машинасының нұсқасы, ол файлдың бірінші байтындағы мәліметтермен беріледі. Бұл – қазіргі заманғы стандарт. Infocom өзі dat (Data) және zip (ZIP = Z машинасының интерпретатор бағдарламасы) кеңейтімдерін қолданған, бірақ соңғысы 1990 жылдары Activision компаниясы Infocom-ды жапқаннан кейін PKZIP форматына сәйкес келетін архивтік файлдар үшін zip кеңінен қолданыла бастағандықтан, қайшылыққа келді. Infocom Z машинасының алты нұсқасын жасады. 1-ші және 2-ші нұсқаларды қолданатын файлдар өте сирек кездеседі. Infocom компаниясы 1-ші нұсқадан тек екі файлды және 2-ші нұсқадан да тек екі файлды ғана шығарды. 3-ші нұсқа Infocom компаниясының көптеген ойындарын қамтиды. Келесі нұсқаларда көбірек мүмкіндіктер болды, ал 6-шы нұсқада графикалық қолдау да бар еді. Infocom компаниясының сюжеттік файлдарын жасау үшін қолданған компиляторы (Zilch деп аталады) ешқашан жарияланбады, бірақ ZIL (Zork Implementation Language) деп аталатын тілдің құжаттамасы, MDL-ге ұқсас Lisp отбасының тілі әлі де бар, сондай-ақ ашық кодты "ZILF" ауыстырушысы жасалды. Mediagenic компаниясы 1989 жылы Infocom-ды Калифорнияға көшіргеннен кейін Computer Gaming World журналы "ZIL функционалдық тұрғыдан өлі" деп мәлімдеді және "мүлдем жаңа, мүмкін ешқашан қолданылмауы мүмкін" талдаушы туралы қауесеттерді хабарлады. 1993 жылдың мамыр айында Грэм Нельсон өзінің Inform компиляторының алғашқы нұсқасын шығарды, ол Z машинасының сюжеттік файлдарын жасады, тіпті Inform бастапқы тілі ZIL-ден мүлдем өзгеше болса да. Inform интерактивті әдебиет қауымдастығында танымал болды. Интерактивті әдебиеттің көп бөлігі Z машинасының сюжеттік файлдары түрінде келеді. Үлкен ойын файлдарын жасау қажеттілігі Нельсонды Z машинасының 7-ші және 8-ші нұсқаларын жасауға итермеледі, бірақ 7-ші нұсқа сирек қолданылады. Адрестерді өңдеу әдісіне байланысты 3-ші нұсқадағы сюжеттік файлдың көлемі 128К-қа дейін, 5-ші нұсқадағы сюжеттік файлдың көлемі 256К-қа дейін, ал 8-ші нұсқадағы сюжеттік файлдың көлемі 512К-қа дейін жете алады. Бұл көлемдер бүгінгі компьютерлік стандарттармен салыстырғанда шағын болғанымен, тек мәтіндік шытырман оқиғалар үшін олар жеткілікті. 1990 жылдары Грэм Нельсон қолданыстағы Infocom файлдарын егжей-тегжейлі зерттеуге негізделген Z машинасының стандартын жасады. Стандартта оның жаңа нұсқалары қолданатын кеңейтімдер, сондай-ақ Infocom қолданған "Blorb" ресурстық форматына және "Quetzal" сақтау файл форматына сілтемелер бар. 2006 жылы Нельсон Z машинасының форматын Inform 7 үшін 32 биттік Glulx форматына кеңейтті. 2016 жылы құрылған Интерактивті әдебиет технологиясы қоры осы стандарттардың барлығын басқарады.

Аудармашылар

Z код файлдарының интерпретаторлары кең ауқымды платформаларда қолжетімді. Inform веб-сайтында 15 десктоп операциялық жүйесі (соның ішінде Apple II, TRS 80 және ZX Spectrum сияқты 8-бит микрокомпьютерлер, сондай-ақ "Unix" және "Windows" әрқайсысы ретінде топтастырылған), 10 мобильді операциялық жүйесі (Palm OS және Game Boy қоса алғанда) және төрт интерпретатор платформасы (Emacs, Java, JavaScript және Scratch) үшін тегін қолжетімді интерпретаторларға сілтемелер тізімі бар. Нельсонның сөзімен айтқанда, бұл «мүмкін, ең портативті виртуалды машина». Көптеген қолданушылар арасында танымал интерпретаторлар – Nitfol және Frotz. Nitfol Glk API-ын пайдаланады және Z машинасының 1-ден 8-ге дейінгі нұсқаларын, соның ішінде 6-шы графикалық Z машинасының нұсқасын қолдайды. Сақтау файлдары стандартты Quetzal сақтау форматында сақталады. Бинарлық файлдар бірнеше операциялық жүйелер үшін қолжетімді, олардың ішінде классикалық Mac OS, Unix сияқты жүйелер, DOS және Windows бар. Frotz 1995 жылы Стефан Йокиш C тілінде DOS үшін жазған. Кейіннен ол Unix сияқты жүйелерге, RISC OS және iOS сияқты басқа платформаларға көшірілді. Дыбыс эффектілері мен графиканың қолдау деңгейі әртүрлі болды. 2002 жылы әзірлеу тоқтап, бағдарламаны Дэвид Гриффит жаңартты. Кодтық база виртуалды машина және пайдаланушы интерфейсі бөліктеріне бөлінді, нәтижесінде виртуалды машина кез келген пайдаланушы интерфейсінен тәуелсіз болды. Бұл Frotz-ты әртүрлі платформаларға көшіруге мүмкіндік берді. Ең қызығының бірі – ең қарапайымдарының бірі: Frotz нұсқасының айналасына минималды I/O функционалдығымен оралған жылдам хабар алмасу боты, ол жылдам хабар алмасу клиенті арқылы көптеген Z машинасы ойындарын ойнауға мүмкіндік береді. macOS және басқа Unix сияқты жүйелер үшін тағы бір танымал клиент – Zoom. Ол Quetzal сақтау форматын қолдайды, бірақ файл құрылымының жиынтығы әртүрлі.