In the context of interactive fiction, source code is usually text which describes a game in terms a computer program can understand. Source code is usually processed by a compiler such as Inform 6, Inform 7, or TADS, which produces a story file which may then be played in an interpreter. Some compilers, such as ZILF and Infocom's original compiler Zilch, compile the source code into an intermediate assembly code which is then passed to an assembler to make the finished product. Many games are published without their source code; however, some games do have their source code published. Source code of complete games is useful for learning purposes. In general, anyone who possesses the source code for a game can change that game in any way he likes, although republishing such a changed game is usually not a good thing to do, unless the original game was released under a license which grants this permission. Also, in most cases, if the author of a game has lost its source code, and that source code has not been published, it becomes impossible for the author to modify that game in any meaningful way.