title: Z-machine
text: # Z-machine
  
  La Z-machine, o macchina Z, è una macchina virtuale sviluppata da Joel Berez e Marc Blank nel 1979, e fu usata da Infocom per le sue avventure testuali. Infocom compilava il codice dei giochi in file contenenti istruzioni per la macchina Z (chiamati story file, o file Z-code), e poteva quindi portare i giochi su una nuova piattaforma semplicemente scrivendo un emulatore di macchina Z per tale piattaforma. Con il grande numero di home computer in uso all'epoca, questo era vantaggioso rispetto alla scrittura di codice nativo.
  
  La "Z" di macchina Z sta per Zork, il primo gioco di avventura della Infocom. I file Z-code di solito hanno nomi che terminano in ".z1", ".z2", ".z3", ".z4", ".z5", o ".z6" (qualche volta in ".dat"), dove il numero è il numero di versione della macchina Z sul quale è previsto che il file venga eseguito, come è specificato nel primo byte dello story file.
  
  Per un certo periodo è stato comune usare l'estensione .zip (Z-machine Interpreter Program) per i file contenenti z-code, ma l'estensione è usata molto più comunemente per i file di archivio zip. I file che usano la versione uno o due dell'interprete sono molto rari; sono noti solo due file che usano la versione 1 della macchina Z, e due che usano la versione due. Le versioni successive permettono l'uso di funzionalità sempre più complesse, fino ad arrivare alla gestione di un po' di grafica nella versione sei.
  
  Il compilatore (chiamato Zilch) usato dalla Infocom per produrre gli story file non è mai stato reso disponibile, sebbene esista ancora della documentazione del linguaggio (chiamato ZIL, per Zork Implementation Language) utilizzato.
  
  Negli anni novanta, Graham Nelson ha stilato uno standard della Z-machine, basato su studi dettagliati dei file della Infocom.
  
  Nel 1993 Graham Nelson ha pubblicato la prima versione del suo compilatore Inform, capace di generare story file in formato Z-machine. La maggior parte dei file generati da Inform usano la versione 5.
  
  Inform ha avuto da allora un grande seguito nella comunità della fiction interattiva o delle avventure testuali e, di conseguenza, una grossa porzione di storie interattive prodotte attualmente è distribuito come story file per Z-machine. La richiesta di poter creare file di gioco più grandi ha spinto Graham Nelson a specificare le versioni 7 ed 8 della Z-machine, sebbene la versione 7 sia usata raramente. A causa di come vengono gestiti gli indirizzi, gli story file in versione 3 possono essere lunghi al massimo 128Kb, quelli in versione 5 possono arrivare a 256KB, e quelli in versione 8 possono arrivare a 512Kb. Anche se le dimensioni possono sembrare piccole per gli standard attuali, nel caso di avventure testuali queste dimensioni permettono di creare comunque giochi molto elaborati.
  
  I programmi di interpretazione di file Z-code sono disponibili per una gran varietà di piattaforme. In effetti, dal momento che ci sono interpreti disponibili per macchine molto vecchie (Apple II, TRS-80, Sinclair) e portatili (come Palm OS e Nintendo Game Boy) fino alla maggior parte delle piattaforme moderne, si può sostenere che lo Z-code sia uno dei linguaggi per computer più portabili.
  
  