A "six-tuple" (V,X,l,d,S,F) where:
Get ready to do something: "Initialization", "Prologue" Do something: "Main process" Cleanup and get out: "Termination" "EOF processing"
PROLOGUE: Specify some things about the PERL environment Open a file of text to process Get an expression to look for from user PROCESS: read each line check for pattern print line and part of line which matches pattern TERMINATION: Finish up (stop the program)
"...phonological alternations are treated as direct correspondences between the underlying (or lexical) representation of words and their realization on the surface level." Example from English orthography spies = spy + -s (plural allomorph)
Lexical Representation: ` s p y + 0 s Surface Representation: 0 s p i 0 e s(where ` indicates stress, + indicates a morpheme boundary, and 0 indicates a null element):
(i.e. there are two tapes...one for each representation. As the transducer moves along one tape, it creates the other...
Rules must be written to account for the special correspondences `:0, y:i, +:0, and 0:e. For example, the two-level rule for the y:i correspondence looks like this (somewhat simplified):
y:i => @:C___+:0A PC-KIMMO description of a language consists of two files provided by the
Main components of PC-KIMMO +-----------+ +-----------+ | RULES | | LEXICON | +----+------+ +------+----+ |-------+ +-------| | | v v Surface Form: +------------------+ Lexical Form: spies ------->| Recognizer |----> `spy+s +----+-------------+ [N(spy)+PLURAL] | v +------------------+ spies <-------| Generator |<----- `spy+s +------------------+The rules and lexicon are implemented computationally using finite state machines. For example, the two-level rule shown above for the y:i correspondence must be translated into the following finite state table for PC-KIMMO to use:
|@ y + @ |C i 0 @ --+------- 1:|2 0 1 1 2:|2 3 2 1 3.|0 0 1 0