Parser
- See also parser-based interactive fiction. For the German publication, see The Parser.
A parser is a computer program or portion of a program that analyzes a string of characters in order to recognize grammatical units. Joseph Weizenbaum's Eliza (1966) and Terry Winograd's SHRDLU (c.1970) are two of the best-known early interactive programs that had parsers.
Early IF, including the original Adventure, used a two-word parser that only looked at the first few characters of each word. More recent IF parsers, following the lead of Dungeon aka Zork, have an Infocom-type parser that can understand longer words and more complex commands, but the genre is still a long way from using natural language processing to achieve complete understanding of all English inputs.
Modern IF programming languages include a parser as part of the authoring system, removing the need for the programmer to write a homebrew parser. Authoring systems for writing parser-based interactive fiction include Inform 7, Quest, TADS, and ADRIFT, among others.
Links
- Discussions about parsing on the rec.arts.int-fiction newsgroup
- Survey of IF systems on the TADS 3 mailing list (dead link 🔍) (now the Technical Blog - for TADS 3).
- Parser / execution system of TADS2, Inform 6 and Finch
- Parser / execution system of TADS3 (as of July 2005)
- if yr cmptr cn rd ths... (archive) by Shay Addams for Computer Entertainment, August 1985. Details the mid-80s "parser war" between various publishers of text adventures.
- So, Do We Need This Parser Thing Anyway? by Emily Short, June 2010. An overview of the accessibility problem with parsers.
Responses to Emily's article: - Hybrid Interfaces: Texture; Contrition (Porpentine); Spondre (Jay Nabonne) by Emily Short, December 2014.
- Experimentation in the Parser Domain by Emily Short, January 2016.
- Writing Novice-friendly Parser Games by Emily Short, April 2016.
- Narrow Parsers by Sam Kabo Ashwell, May 2016. Discusses narrowing the range of available verbs in a parser game.
- Text Parser at TV Tropes Wiki.