Interpreter: Difference between revisions

From IFWiki

m (- Interpreters in alphabetical order (again))
(→‎Interpreters by Platform: Make the note about the old table less prominent.)
 
(8 intermediate revisions by 3 users not shown)
Line 5: Line 5:
Technically, interpreters are usually virtual machines.  They don't care about the higher-level language used to create the compiled code that is run on them.  The [[Z-machine]], for example, is usually programmed with [[Inform]], but Infocom, who created it, used a compiler and language called [[ZIL]]. [[Glulx]] is similar to the Z-Machine, but designed to remove some limitations of that design, and also is typically programmed with Inform.
Technically, interpreters are usually virtual machines.  They don't care about the higher-level language used to create the compiled code that is run on them.  The [[Z-machine]], for example, is usually programmed with [[Inform]], but Infocom, who created it, used a compiler and language called [[ZIL]]. [[Glulx]] is similar to the Z-Machine, but designed to remove some limitations of that design, and also is typically programmed with Inform.


== Interpreters by Platform==
One of the advantages to the Virtual Machine concept is cross-platform compatibility.  A story-file only needs to be written once and can be run on any computer on which an interpreter exists for similar story files.  This makes the interpreter the only piece of software that needs to be written for a specific platform.   
One of the advantages to the Virtual Machine concept is cross-platform compatibility.  A story-file only needs to be written once and can be run on any computer on which an interpreter exists for similar story files.  This makes the interpreter the only piece of software that needs to be written for a specific platform.   


There are interpreters for nearly every modern (and many not so modern) computing platforms.   
There are interpreters for nearly every modern (and many not so modern) computing platforms.   


Some interpreters are usable for most formats of interactive fiction.
== Interpreters by Platform==
* For Mac OS X there is [[Lectrote]] and [[Spatterlight]]
* For Unix systems there is [[Gargoyle]] and [[Lectrote]]
* For Windows there is [[Lectrote]]
* For Android and iPhone/iPad there are many choices [[Mobile apps for downloading or playing IF]]
* For Ubuntu Touch there is [[Gelek Vanilla]]
 
You can find a popular interpreter for your platform and IF format in the following table:
You can find a popular interpreter for your platform and IF format in the following table:
{{interpreter navbox}}


{| class="wikitable"
''Note: The old table of interpreters that used to be on this page can be found at [[Interpreter table archive]].''
!
!Zcode
!TADS<sup>1</sup>
!Glulx
!Hugo
!ADRIFT
!Alan2
!Alan3
|-
!Story File Extension
|.z5, .z8,.z3,.zblorb .zlb (other .z# or .dat, rarely)
|.gam, .t3
|.ulx, .blb, .gblorb .glb
|.hex
|.taf
|.acd/.dat
|.a3c/.a3r
|-
!Android
|[[Fabularium]], [[JFrotz]], [[Incant]], [[Son of Hunky Punk]], [[Text Fiction]], [[Thunderword]], [[Twisty]], [[ZMPP]]
|[[Fabularium]], [[Son of Hunky Punk]], [[Thunderword]]
|[[AndroidIF]], [[Fabularium]], [[Incant]], [[Thunderword]]
|[[Fabularium]], [[Thunderword]]
|[[Fabularium]]
|[[Fabularium]], [[Thunderword]]
|[[Fabularium]], [[Thunderword]]
|-
!DOS
|[http://mirror.ifarchive.org/if-archive/interpreters-infocom-zcode/frotz/DJGPPFrotz240.zip DOS Frotz]
|[http://mirror.ifarchive.org/if-archive/interpreters-tads/tadsexe_259.zip DOS TADS]
|[http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/git/dosgit-1.0.4.zip Git for Dos]
|[[Hugo]]
|[[SCARE]]
|[http://www.ifarchive.org/if-archive/programming/alan/executables/arun281dos.zip ARun], [http://www.ifarchive.org/if-archive/programming/alan/executables/glkarun-2.86-dos-2.zip Glk ARun]
|(none)
|-
!Java
|[[ZPlet]]
|?
|[[Zag]]
|?
|[[JAsea]]
|?
|(none)
|-
!Linux
|[[Gargoyle]], [http://mirror.ifarchive.org/if-archive/interpreters-infocom-zcode/frotz/frotz-2.43-3.i386.rpm Frotz (redhat binary RPM)], [[Lectrote]]
|[[Gargoyle]], [[QTads]]
|[[Gargoyle]], [[Lectrote]], [[Zag]]
|[[Gargoyle]], [[Hugo wxGTK]], [[Hugor]], [[Lectrote]]
|[[Gargoyle]], [[SCARE]]
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan/executables/glkarun-2.86-linux-i386-2.tar.gz Glk Arun]
|[http://www.ifarchive.org/if-archive/programming/alan3/executables/alan3_0alpha5.linux.x86.tgz ARun in Full Distr], [[Gargoyle]]
|-
!Mac OS 10.12 Sierra
|[https://github.com/erkyrath/garglk/releases/tag/zarf-mac-20161021 Gargoyle (unofficial build for MacOS 10.12)], [[Lectrote]], [[Spatterlight]]
|[https://github.com/erkyrath/garglk/releases/tag/zarf-mac-20161021 Gargoyle (unofficial build for MacOS 10.12)], [[Spatterlight]]
|[[Lectrote]], [[Spatterlight]]
|[[Lectrote]], [[Spatterlight]]
|[[Spatterlight]] (up to Adrift 4)
|[[Spatterlight]]
|[[Spatterlight]]
|-
!Mac OS X
|[[Gargoyle]], [[Lectrote]], [[Spatterlight]], [[Zoom]]
|[[CocoaTADS]], [[Gargoyle]], [http://www.hypertads.org/downloads/HyperTADS-140.sit HyperTADS]<sup>2</sup>, [[Spatterlight]], [[QTads]]
|[[Lectrote]], [[Spatterlight]], [[Zag]]
|[[Spatterlight]], [[Hugo]], [[Hugor]], [[Lectrote]]
|[[Spatterlight]] (up to Adrift 4), [[SCARE]]
|[[Spatterlight]]
|[http://www.ifarchive.org/if-archive/programming/alan3/executables/alan3_0alpha9.macosx.x86.tgz  Arun in Full Distr], [[Spatterlight]]
|-
!Mac System 9
|[[MaxZip]], [[Nitfol]]
|[http://www.hypertads.org/downloads/HyperTADS-140.sit HyperTADS]
|[http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/glulxe/Glulxe-034.hqx Glulxe for Mac]
|[[Hugo]]
|(none)
|[http://www.ifarchive.org/if-archive/programming/alan/executables/MacAlan-2.8.2.1-Binary.sit.hqx ARun], [http://www.ifarchive.org/if-archive/programming/alan/executables/MacGlk-Alan-020.sit.hqx Glk ARun]
|(none)
|-
!Palm
|[http://mirror.ifarchive.org/if-archive/interpreters-infocom-zcode/frobnitz/frob10.zip Frobnitz]
|(none)
|[[CellarDoor]]
|[http://mirror.ifarchive.org/if-archive/interpreters-other/hugo/executables/hugov31_palm.zip Hugo Palm]
|(none)
|(none)
|(none)
|-
!PocketPC
|[http://mirror.ifarchive.org/if-archive/interpreters-infocom-zcode/frotz/pocketfrotz_04b.zip Pocket Frotz]
|[http://mirror.ifarchive.org/if-archive/interpreters-tads/PocketTADS-01.zip Pocket TADS]
|[http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/git/pGit-0.5.zip Git PocketPC]
|[http://mirror.ifarchive.org/if-archive/interpreters-other/hugo/executables/hugov31_wince.zip Hugo WinCE]
|(none)
|(none)
|(none)
|-
!RISC OS
|[http://mirror.ifarchive.org/if-archive/infocom/interpreters/frotz/RiscOSFrotz132.zip Frotz], [http://mirror.ifarchive.org/if-archive/infocom/interpreters/zip2000/Acorn_Zip2000_141_Std1.0.spk Zip2000]
|[http://mirror.ifarchive.org/if-archive/programming/tads2/executables/AcornTADSruntime.spk AcornTADS]
|(none)
|[http://mirror.ifarchive.org/if-archive/programming/hugo/executables/AcornHugo25.zip AcornHugo]
|(none)
|(none)
|(none)
|-
!Symbian
|Frotz 1.08 uiq
|?
|?
|?
|?
|?
|(none)
|-
!Windows
|[[Filfre]], [http://mirror.ifarchive.org/if-archive/infocom/interpreters/frotz/WindowsFrotz.zip Windows Frotz], [[Lectrote]]
|[[Gargoyle]], [http://mirror.ifarchive.org/if-archive/interpreters-tads/htads_playkit_HT20.exe HTML TADS Playkit], [[QTads]],
|[[Filfre]], [http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/git/wingit-1.0.6.zip Git], [http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/glulxe/WinGlulxeInstaller.exe Glulxe], [[Lectrote]], [[Zag]]
|[http://ifarchive.org/if-archive/programming/hugo/executables/hugov31_win32.exe Hugo Multimedia Interpreter], [[Hugor]], [[Lectrote]]
|[[ADRIFT Runner]]
|[http://www.ifarchive.org/if-archive/programming/alan/executables/arun286bwin.zip  ARun], [[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan/executables/arun287-5-glk-win32-ix86.zip Glk Arun]
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan3/executables/winarun3_0alpha6.win32.x86.setup.exe  WinARun]
|}
 
: <sup>1</sup> As of April 2012, only QTads is compatible with TADS 3.1 games. Other TADS interpreters are compatible with TADS 3.0 games, but may not support HTML TADS graphic and sound features.
: <sup>2</sup> HyperTADS isn't native to MacOS X yet, but runs in the Classic compatibility environment.
 
 
These are not all the interpreters available, just some of the most popular ones for the most popular platforms. The IF Archive has a fairly comprehensive, if not exactly friendly, list of interpreters that you can download:
 
* http://www.ifarchive.org/indexes/if-archiveXinfocomXinterpreters.html
 
Also see [[Websites for downloading or playing IF]], and [[Mobile apps for downloading or playing IF]].
 
==Types of Interpreters==


* <b>[[Glulx]]</b><br>This is something of a redesign of the Z-Machine with many new features.
==Contributing an interpreter to the wiki==
* <b>[[Hugo]]</b><br>This is a system designed by [[Kent Tessman]], somewhat inspired by Inform and TADS but designed to be easier to work with.
Please [[Special:CreateAccount|create an account]], then:
* <b>[[TADS]]</b><br>This is a system designed by [[Mike Roberts]] in the late 1980s. TADS2 is well established and TADS3 is a redesign.
* To add an interpreter page, use [[Form:Software]].
* <b>[[Z-machine]]</b><br>This is the one that Infocom invented in the late 1970s.
* To edit an existing interpreter page, use the "Actions - Edit with form" option.


[[Category:Interpreter]]
[[Category:Glossary]]
[[Category:Glossary]]

Latest revision as of 05:05, 20 August 2023

An interpreter (or terp, for short) is an application program ("app") which reads a story file and presents the game contained inside that file to the player. The interpreter itself is not part of the game, although it may provide shortcuts to make the playing more convenient. Many interpreters allow the player to enter commands (i.e., LOOK or GO NORTH) by pressing a single key combination (a "hotkey"). In addition, some interpreters allow the player to tweak display options to his liking (i.e., fonts and colors).

The interpreter's function in interactive fiction is akin to that of a movie projector in motion pictures. It translates the "raw material" of the work into a more palatable format for humans.

Technically, interpreters are usually virtual machines. They don't care about the higher-level language used to create the compiled code that is run on them. The Z-machine, for example, is usually programmed with Inform, but Infocom, who created it, used a compiler and language called ZIL. Glulx is similar to the Z-Machine, but designed to remove some limitations of that design, and also is typically programmed with Inform.

One of the advantages to the Virtual Machine concept is cross-platform compatibility. A story-file only needs to be written once and can be run on any computer on which an interpreter exists for similar story files. This makes the interpreter the only piece of software that needs to be written for a specific platform.

There are interpreters for nearly every modern (and many not so modern) computing platforms.

Interpreters by Platform

You can find a popular interpreter for your platform and IF format in the following table:

Interpreters
By format ADRIFTAdvSysAGTAlanGlulxHugoMagnetic ScrollsTADSZ-code
By system BrowserAndroidiOSLinuxmacOSWindows
Browse Recommended interpretersSearch formDrilldown
Other software Authoring systemsUtilities

Note: The old table of interpreters that used to be on this page can be found at Interpreter table archive.

Contributing an interpreter to the wiki

Please create an account, then:

  • To add an interpreter page, use Form:Software.
  • To edit an existing interpreter page, use the "Actions - Edit with form" option.