Annotation of 43BSDReno/share/doc/ps1/15.yacc/ss.., revision 1.1.1.1

1.1       root        1: .\"    @(#)ss..        6.1 (Berkeley) 5/8/86
                      2: .\"
                      3: .EH 'PS1:15-%''Yacc: Yet Another Compiler-Compiler'
                      4: .OH 'Yacc: Yet Another Compiler-Compiler''PS1:15-%'
                      5: .\".RP
                      6: .ND "July 31, 1978"
                      7: .TL
                      8: Yacc:
                      9: Yet Another Compiler-Compiler
                     10: .AU "MH 2C-559" 3968
                     11: Stephen C. Johnson
                     12: .AI
                     13: .MH
                     14: .AB
                     15: .PP
                     16: Computer program input generally has some structure;
                     17: in fact, every computer program that does input can be thought of as defining
                     18: an ``input language'' which it accepts.
                     19: An input language may be as complex as a programming language, or as simple as
                     20: a sequence of numbers.
                     21: Unfortunately, usual input facilities
                     22: are limited, difficult to use,
                     23: and often are lax about checking their inputs for validity.
                     24: .PP
                     25: Yacc provides a general tool for describing
                     26: the input to a computer program.
                     27: The Yacc user specifies the structures
                     28: of his input, together with code to be invoked as
                     29: each such structure is recognized.
                     30: Yacc turns such a specification into a subroutine that
                     31: handles the input process;
                     32: frequently, it is convenient and appropriate to have most
                     33: of the flow of control in the user's application
                     34: handled by this subroutine.
                     35: .PP
                     36: The input subroutine produced by Yacc calls a user-supplied routine to
                     37: return the next basic input item.
                     38: Thus, the user can specify his input in terms of individual input characters, or
                     39: in terms of higher level constructs such as names and numbers.
                     40: The user-supplied routine may also handle idiomatic features such as
                     41: comment and continuation conventions, which typically defy easy grammatical specification.
                     42: .PP
                     43: Yacc is written in portable C.
                     44: The class of specifications accepted is a very general one: LALR(1)
                     45: grammars with disambiguating rules.
                     46: .PP
                     47: In addition to compilers for C, APL, Pascal, RATFOR, etc., Yacc
                     48: has also been used for less conventional languages,
                     49: including a phototypesetter language, several desk calculator languages, a document retrieval system,
                     50: and a Fortran debugging system.
                     51: .AE
                     52: .OK
                     53: .\"Computer Languages
                     54: .\"Compilers
                     55: .\"Formal Language Theory
                     56: .CS 23 11 34 0 0 8

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.